Engine Tech: Concurrent world editing

Summary

A small team with limited manpower, we wanted a low-effort way to use our existing version control system (svn) to facilitate concurrent world editing for our open-world 3D game (i.e. we desire that multiple users can edit the world at the same time and merge their changes).  We developed a system wherein the data for each entity is stored as an individual text file.  This sounds crazy, but it works well: the use of individual files gives us robustness in the face of merge conflicts, and despite the large number of files, the game starts up quickly.  Entities are identified using integer serial numbers.  We have a scheme for allocating ranges of these numbers to individual users so there is no overlap (though this scheme could certainly be better).  The system seems now to be robust enough to last us through shipping the game, with seven people and one automated build process concurrently editing the world across 18 different computers.

We don’t know whether this method would work for AAA-sized teams, though it seems that it might with some straightforward extensions.  But for us the method works surprisingly well, given how low-tech it is.

Read More »

Posted in Engine Tech | 37 Comments

Architecture in The Witness

This summer, we began working in earnest with architects, to bring further sophistication to the design of locations in The Witness.  Before this time, we had a game that was fully playable, but buildings and the areas around them tended to be placeholders, developed only enough to make the basic gameplay possible.  We began working with two architecture firms, FOURM design (for buildings and such), and David Fletcher Studio (for landscape architecture).  Both firms are located in the Bay Area, so it’s easy for us to meet regularly.

When we sat down to start working with the architects, one of the first things we did was put together a history of the island where The Witness takes place: how long has the island been there?  What groups of people lived there, and what kind of structures did they build?  How did later civilizations use the structures built by earlier groups?

Quickly we developed a running theme of sites that are old and have over time been used in two or three different ways.  When entering a new location, you probably first notice the most basic elements of its structure: where you can walk to easily, versus where you can’t; what puzzles or goals are calling for your attention, and what walls or doors might be preventing you from getting to them.  If this is all you care about, you can then play through the area in a very utilitarian fashion.  But if you have an eye for detail, you may notice the elements of modern construction shoring up the design of an older structure with a different purpose.  The design of the new structure tells you something about what the newer guys were doing there, and how it differs from what the older guys were doing there.  And if you look really closely, you can see traces of the original footprint of the site (perhaps these are very subtle, some bricks just rising above the dirt in a few places), and infer the purpose of this very old site too.

If you see the different civilizations that came to this island as embodying different philosophies; and you see the structures they built as representative of the way these philosophies led them to interact with the world; and you see further that when they replaced a site, it represents the rejection of some older worldview that they consider no longer useful, then perhaps you start to get some idea of the amount of backstory that can be encoded into the world, nonverbally.

All of this backstory is also directly relevant to the main story — who you are, why you are on this island, how you may get back home.  So, to put it another way, the game is constructed so that the more you pay attention to tiny details during your travels, the more insight you will have to the central story, even though it may not be obvious at any given time what a particular detail has to do with that story.

Having smart architecture, it seems, really helps this process work, brings it alive.  If you build a game where people are supposed to pay attention to details, but the details are wrong or naive or just don’t have much thought put into them, then at some level the game just won’t work.  Even if you don’t know the first thing about architecture, you have been in enough buildings in your life that the deeper parts of your brain have distilled plenty of patterns about those buildings.  Your brain knows the difference between a real building and a nonsense building that wouldn’t occur in the real world.  It can feel the difference in veracity between carefully-thought-out structural details — on the one hand — versus stuff that was just placed by a level designer to look cool.  When I showed a recent build to a friend, who had already played an earlier build of the game, he said the new structures made the game feel deeper, more serious.

I was a little surprised by this statement but should not have been, since really, that is what we are aiming for.  Thoughtful design of these structures and landscapes gives the game further gravitas.

The most-recent issue of Game Informer printed an article that showed some of the first screenshots of the newly-architected areas appearing in the game engine.  It is an interesting article; pick up the issue if you haven’t!  They also put up a companion article online (but which not as extensive) here:

(Summary article at Game Informer)

The area featured in this article is the one that we have taken furthest so far in terms of modeling and texturing.  Here are some other shots of it:

The Keep, before and after


The Keep, close-up 1


The Keep, close-up 2


The Keep, close-up 3


We’ve done basic planning for some of the other areas, so I thought it would be nice to show some screenshots of work in progress.  For each of these, there’s a ‘before’ version (when we had a fully-playable game, but basic placeholder structures) and after (once we have incorporated the architects’ designs, revised the site plans and in some cases even the puzzles, etc):

 

The Compound, before and after


Glass Factory, before and after


Peninsula, before and after


Vault, before and after


Don’t regard these “after” images as representative of what the game will look like!  They are still works in progress, and the final game will look substantially better: scenes like these will feel richer due to the placement of detail objects, further care put into the texture mapping and lighting, refinement of the still-rough-drafty terrain features around these structures, and many other bits of subtle game development magic.  But I wanted to show these now since they provide a good taste of the game’s flavor, and they show how much structural intelligence is brought to the table by working with the architects.  Yes, we could have started with the placeholder structures and made them more elaborate and better-looking, in a general video-game-level-design way, but that’s different from having well-thought-out ideas subtly embodied in the structures of the areas, which is what we are going for.

Posted in Development, Progress Shots | 49 Comments

My Screenshots folder

From time to time I take screenshots, to send in email to other team members, or for the architects’ reference, etc.  Today I glanced at my desktop and noticed it looked pretty cool.  So here it is (with some shots, that seemed a bit too spoilery, redacted):

 

Posted in Progress Shots | 20 Comments

New game: Q.U.B.E. will be released on December 16th.

In addition to working on The Witness, I am a partner in the Indie Fund, a group of successful indies who finance imaginative indie games under developer-friendly terms. Our fund has been around for almost 2 years now, and I am happy to announce that our first funded game is about to be released. It’s a first-person puzzle game called Q.U.B.E., made by some guys in England called Toxic Games. They are just out of school, this is their first game, and they managed to make it without a programmer!

 

Q.U.B.E. will be available on Steam.

(Web site for the game)

(Indie Fund announcement page)

Posted in Announcements, Other Games | 18 Comments

Update!

I am working hard on puzzles right now. We’ve had figured out, for a while, the basic set of locations you can travel to on the island, and what the puzzles are in each. These locations were defined to varying degrees of specificity, though. Sometimes we know what the puzzles are, exactly (they are all designed and implemented) but aren’t sure what the architecture is. Sometimes I have concrete ideas for some puzzles but only vague ideas for other puzzles, and it’s a case of “I will fill these in later on, when I have time to think about it and come up with something good here; but it is pretty clear to me that there will be something good here, so I am not worrying too much about it.”

Eventually, these things have to be figured out. Over the past month or so we’ve done some of that figuring. We nailed down the architecture for a couple of areas (including the all-important area where the player starts the game). We’ve done this in a way where the architecture and the puzzle ideas have synergy, which is always nice. In particular, there was one location that, from the beginning of development, was basically a big box with a window cut into it and some puzzles stuffed inside. For a long time (maybe 2 years!) I was never sure what to do with it, but eventually the architects suggested an idea for that location. I mocked it up and didn’t like it. They suggested another one. This one sparked an idea for how to make the structural properties resonate with the puzzle theme, and when I built even just a rough-draft of the building, I found the result to be strong. Lately we’ve been finalizing that location too.

So anyway, there are all these spots on the island that represented vague ideas, with puzzles there that were just in rough form, or that weren’t even implemented fully, but just served as reminders to do something there. I’ve been going through and filling in a bunch of those.

I have also been working with some other puzzles, which seemed “done enough to ship”, and thinking hard about how to make them better. Braid benefited from a lot of this kind of attention — a lot of games would have shipped with just early versions of the puzzles in that game, considering them to be just fine; but the more I worked with the puzzles in Braid, the more I found better, simpler, more-to-the-point versions of them. The same thing is happening here (though The Witness is a much bigger, more-complicated game, so sometimes it is challenging to get to that same kind of clarity.)

With regard to the visuals (modeling and texturing), things have been coming along nicely as well. Pretty soon a high-profile game magazine will publish some screenshots of one of the most-finished areas of the game, showing the look we are targeting and giving a strong hint of what the game will be like stylistically. When the magazine is out there we will link it here.

(This has not been a particularly coherent update; just wanted to let you all know what is up!)

Posted in Development | 16 Comments

Designing to Reveal the Nature of the Universe

This talk was presented by Jonathan Blow and Marc ten Bosch at Indiecade on October 7, 2011.


Any system of interactivity can of course be explored: If X happens, what are the consequences? What are all the ways in which pattern Y expresses itself, and to what do those expressions lead? By inspecting the structure of a system in this way, we can find the core ideas of the system, and see how those ideas illustrate fundamental truths of our universe. We present a game design aesthetic that values looking for systems that express these truths in the cleanest possible way. We explain how this is different from more-traditional combinatoric design techniques; we show examples from our games and describe a method for applying the aesthetic in general.

Here’s a link to the Indiecade page, on which there’s also a presentation by Richard LeMarchand, and more to come.

Thanks very much to Ida C. Benedetto for recording the talk!

Posted in Development, Other Games, Uncategorized | 64 Comments

Saying hi.

Hi everyone. We haven’t posted anything in a while, but this is just because we have been working intensively on the game. These days we are doing a lot of working with the architects, integrating their designs with the gameplay. The result is coming out really well — the architectural designs add tremendously to the feeling of being in a world, and they also give us opportunities to make the puzzles richer. So as we do this the game just keeps getting bigger and more sophisticated.

I’ll post something more concrete before too long, but I wanted to at least say something, since it’s been a while.

Team-wise, we have just hired two people (a 3D artist and a programmer), and we plan to hire another programmer as well, once his visa clears and he can get into the country. This is a pretty big staffing-up, percentage-wise, and will allow us to make things quite nice. The new folks will be starting over the next couple of months (they need to wind down the things they are working on currently!)

Posted in Development | 16 Comments

Island Snapshot

It’s been a while since we did one of these:

The current puzzle count is 350.

Some parts of the island are pretty messed up in this screenshot. For the press tour, we made sure the whole game was more-or-less solid and playable. Just after that, though, we were free to tear things apart, move things around, change the sizes of areas, add new areas, and all that. We’re still in the middle of that process and not everything has been made playable again.

Posted in Progress Shots | 43 Comments

Interview on GameSpot’s HotSpot podcast

GameSpot’s podcast, HotSpot, had Jonathan Blow as a guest for the September 14th episode. There’s a bit of an interview, and chatting about various game topics; some discussion of Braid, some of The Witness, and what makes a good puzzle?

Here’s the link.

Posted in Uncategorized | 7 Comments

A pleasant lightmapping update

It’s been a little bit since the last post. We have been busy doing a lot of good things with the game. Here’s one of them: Ignacio just got back from vacation and implemented a simple lightmap encoding idea that improves the color resolution of our lightmaps, removing banding, like so:

The difference is not too pronounced in this scene, but with smoother-colored textures it becomes a lot more obvious (and I do want to use more smoother-colored textures, art-direction-wise!)

The situation is, the lightmaps are HDR (for some definition of “high”), so we needed a way to encode those values reasonably into a bitmap. We were using RGBM where M is just an overall brightness factor; you read RGB from the texture then multiply by M to get the output color. We used to just encode this naively, but the problem is, when M is less than 1 then it actually kills precision in your RGB, so the solution is, well, don’t ever let M go below 1; just clamp it. This is not rocket science and in fact is the kind of thing that is a little funny, as one starts wondering why we didn’t think of that a long time ago, but hey, that’s how it is sometimes. The results made me happy, though, so I am posting them.

The improved image quality may enable us to have higher dynamic range throughout the game (this is probably something we will evaluate later on), which would be very nice!

Posted in Development | 12 Comments
  • Archives

  • Categories

  • Meta