[Archives] Level Design Process for Visual Out

Archives, Game Development

Hey all!  Now that the Visual Out demo is live I wanted to talk a bit about my level design process.

It’s fairly basic, and I’m still working on it, so it’s probably not anything too revolutionary, but I thought it’d be fun to share.
I’ve uploaded some scans of my level design notebook (really just some graph paper that I was given loose-leaf and I had bound together).  I’m sorry for a lack of clarity in certain areas, the top of my scanner doesn’t push down hard enough so the center of the book was blurry.

Anyway, as for how I go about designing rooms (this also applies to the overall map, though to a lesser degree)…
I start by blocking out the shape and size of the room.  You’ll see on the image with the map that each room is on a grid based on the size of the game’s viewport, 854×480.  This makes it easy to divide rooms into chunks, though all rooms will be wider than they are tall.  I’ve also determined how big I want to draw each chunk, given my 64×64 in-game grid.  This is the “full size” and “half size” measurements you see above the map.  I went with half-sized rooms for all the levels, since I could fit more on a page that way.  This meant that each 64×64 block took up half of one grid size on my graph paper (a 32×32 block took up a quarter of a grid, etc).

After determining room size, I blocked out where each of the doors would be, and added a 64×64 (aka half a grid) boarder around the whole room, excluding the doors.  That was the minimum wall thickness for each room.

Keeping in mind the purpose of the room (ie. to act as a setpiece, to contain a puzzle or ability, or to be a hallway you traverse multiple times) I brainstormed what sorts of components I would put in the room.  For example, in the room where you get the PlusJump, I wanted to include a way to get to the PlusJump after solving a puzzle, and then an easy way out of the room that utilized double-jumping.  So I made a floor you ride across using a block you drag with the Current’s Tether, and the block also gives you enough height to jump onto the PlusJump platform.  There are then two blocks in the air you can reach by double-jumping so you can easily get out without touching the floor again after obtaining the ability.

For some of the larger rooms I drew a heatmap by lightly scribbling where I wanted the player to go.  This helped shape a path that I could construct blocks around.  I did this, for example, in the room where you get the Jammer.  It’s such a large room that it would have been easy to fall into decision paralysis without a starting point such as a heatmap.  This heatmap technique is also what I use to develop the map as a whole, and determine which rooms were going to be traversed numerous times.

After determining the purpose and path through the room, I drew an outline of where I wanted blocks to be placed, keeping in mind that the character’s base jump height is 64 pixels, and to use 128-pixel high jumps where I wanted to gate the player to using the double-jump.  I filled the blocks in with color and marked any abilities, puzzles, enemies, or obstacles in the room with a symbol.  In some rooms I sketched in some decorations if I knew I wanted it to contain a setpiece.  I also labeled the room, labeled each door, and drew dotted lines at any separation between room chunks.

And that about finishes it!  I hope that was interesting. =]
Also I forgot to mention, but the weird X-check-thingies are when I was marking off when I completed a room’s design and then aesthetic, so they’re not really important. heh.