Curiosity, a descendent of Spirit and Opportunity, launches from Earth, headed for Mars, in just a few short days. Read more at NASA’s MSL page here!
Based on everything I’ve learned about Mars while researching for our game, I would be thrilled but not shocked if this rover were to discover evidence of past life on the red planet. Good luck, Curiosity!
Building a Level for Waking Mars (A Detailed Explanation)
I’d like to show you a bit about what goes into building a level for Waking Mars. (I just call it Mars with all the name changes. We used to call it Descent.)
[NOTE: I’m only showing portions of this level, not the full thing.]
Each level begins with a place in the story/world. Randy Smith has spent a long time building up a planetary story (he knows more than you can imagine about Martian geological history), and each level is a chunk of his overall plan for the cave system you explore. Smith has an array of levels laid out in documents, on whiteboards, and in his head.
In addition, each level contains a gameplay hook. These vary from puzzles of dealing with the various aliens fighting for survival in the environment, learning a new tool, or the environment itself being exciting and dangerous. Smith plans out how these various game concepts can fit together with the environment and the story.
From there, Smith (or sometimes myself, as in this case) starts drawing out the world using an intuitive editor that David built. It has two parts: geometry and everything else.
Each level is constructed directly in the game-engine. Smith draws the level line by line. What he draws is the space that Liang and the other physical objects interact with. You won’t see it in the game, but whenever you run into a wall, you’re running into these invisible lines Smith has “drawn”.
After he lays out geometry, he switches to the regular editor, where he can place halid and zoa (plants and animals), hazards, fertile terrain, etc. He then playtests, messing with geometry, creature placement, biomass requirements for each space. As things feel better and better, he adds more game elements, such as invisible objects which change how the camera works as you move around levels.
When he is satisfied with how the level feels and plays, that’s where I come in.
(At this point, we actually set aside the level design you see above, and saved it for a later place in the game, as it was too difficult for players this early in the game. Then we went and built a whole new version of the level!)
I load spritesheets into the level that contain various formations and textures that will compose the level. These textures, painted by Amanda [Williams], I drop into the level, duplicating and arranging and rotating until I have the basic visual outline of the level. From there my work has only begun.
Once the foreground (the interactive layer) is complete, I go in and add more sprites, sprites that make up the background, midground, and super-foreground. Wait, super-foreground? That sounds cool, what’s that? Well, Randy O, that is the layer that makes it feel like you’re staring into an actual cave.
See, each sprite has a parallax value. This means sprites move at different speeds around the screen relative to each other. As I move around the level, I can tell a stalagmite or wall or boulder to have a parallax value such as -700. This means that particular rock or stalagmite thinks it is 700 units closer to the camera compared to the main interactive layer. Most games have parallaxing backgrounds (the background moves slowly compared to the gameplay area), but we also rely heavily on foreground parallax to capture a sense of realistic depth. This makes the levels essentially 3d, and my super favorite thing about Kalina’s engine.
(Look at all that depth!)
Each level is ultimately comprised of hundreds of images, unlike Spider, which contained only, at most, a few giant paintings of each room.
Now the level is almost complete, but not quite. Smith or myself finish up by adding lights, cinematics, events like collapsing boulders, triggers that cause the level to change or affect game progress, and then I add little things like particle effects and detail sprites.
Each level starts by feeling complicated, but each time it unfolds organically, and by the end we are left with what the level was meant to be. What the martian caverns demanded from us. Many novelists talk about just letting their characters speak for themselves, I feel like our martian caverns also have voices. I hope we’ve channeled them well.