Doing My Level Best

Joel Haddock

May 28, 2024

It’s probably not much of a surprise to say, but the thing that’s taken the most time in building a puzzle-platformer has been the level design.

For me, it’s been a fascinating and educational challenge throughout the creation of Station Zeta. As a kid, I spent endless hours doodling my own Super Mario Brothers levels on the backs of schoolwork, or sketching out the coolest palaces I could think of for even more Adventures of Link. Given the benefits of hindsight, I’m going to assume most of those would not hold up under any sort of playtesting.

It really wasn’t until the days of the Wolfenstein and Doom level editors that I began to apply any sort of real critical thought to what it meant to put together a level. Still, even then, most of them ended up being “what would be the coolest thing to have to run through?” as opposed to any sort of consideration of what a player might enjoy the most.

Doom screenshot
My DOOM levels tended to be much boxier

I put down the level design tools for a while, but picked them back up again years later as I tried by hand at Team Fortress 2 level design. This, in many ways, was an enlightening experience. The gameplay of TF2 demanded thought be put into every map. Different game styles had different requirements, the different unit abilities meant thinking about what would give each class a chance to show their stuff on the level. But even more importantly, I was part of a community that actually played the levels I was creating, and they were not shy about giving their feedback.

It was these lessons I took into Alight, the first real 2d level design I would put into production. But the mechanics for Alight were relatively simple, and the idea of making levels that combined both challenging platforming along with enough puzzles to make a player stop and think - that was something very new for me.

Alight screenshot
My first real platform design work on Alight

That’s all a very long-winded way of saying I started the level building process in Zeta as, while not quite a novice, still from a place of having plenty to learn. In this devblog, I want to walk through how I handle coming up with a Zeta level from start to finish, and how I’ve honed that process throughout development.

A Blank Canvas

Let me preface this by saying the way I do this is exactly that - my way. It works for me, maybe it will work for you, but by no means is it the One True Way to design levels.

The first thing I do when designing a new level is think about the “main” obstacle I want the player to have to overcome to get through the level. For the early levels in the game, this is mostly a matter of thinking of individual mechanics I’m introducing and giving the player a chance to try them out. Once they understand the basic principle of how pushing crates around works, for example, they are ready to use that in later levels in more and more complicated scenarios.

The level I’m building today is intended to be a mid-game level, so it’s one where I’m looking to mix in a variety of mechanics in order to build the puzzle. With that in mind, the seed of inspiration is the idea of having the player have to cross a wide gap on the top of a few towers of carefully stacked crates. This gives me the opportunity to use Spawners (objects that can generate a set number of other objects), which I haven’t heavily featured in many levels, as well as the chance for players to drop crates on themselves (which is always fun).

To start, I sketch out what I imagine will be the central feature of the level to see what size the crates need to be, as well as to test the physics to make sure nothing crazy happens.

Tweaking the platforms

As thrilling as three piles of crates is, unfortunately it doesn’t present much of a challenge to the player. But now, having the theoretical “final” configuration for the puzzle, I can work backwards to figure out how we get there.

The very first challenge will be to find a way to turn the Spawners on. That by itself, however, isn’t very exciting.

So next I want to introduce a more critical obstacle - something that the player will have to deal with one way or the other to get us towards this final step. In this case, I decide to start with a Plunger - an object that pushes other objects - set on automatic that will happily knock over one of our crate towers.

So long as the plunger is operating, the towers will tumble. So, now we have our first main challenge which is finding a way to turn that plunger off.

Since this is meant to be a more challenging level, I decide I need at least one more element of disruption for the player to overcome in order to get to the final configuration. In this case, I decide to go with an outgrowth of a mechanic the players have already seen on previous levels: moving crates with Platforms.

So now I’ve got the players having to deal with the rogue Plunger as well as positioning the platform in tandem in order to create the optimal solution.

With these main elements in mind, I put together a very rough initial sketch.

As you can see, this isn’t particularly exciting on its own (nor does it even work entirely). But just from this sketch I can now see some opportunities to expand the core into something more meaningful.

Puzzling It Out

The first thing I need to do is figure out how the Plunger will be deactivated. That by itself creates opportunities for more “mini” challenges around the central challenge.

Piston Puzzle

What I decide on is a switch behind a laser barrier that can only be deactivated via a blaster shot. The player will start near this, so visually it should be a feature that will draw their attention right away. A critical thing to keep in mind here is that the second I introduce a blaster-activate switch, I have to provide for the possibility the player came into the level without any ammo remaining. This actually gives us a nice opportunity to reward players who have been judicious in shooting robots along the way, as they can just go right ahead and turn off the barrier (in the green below). Players who need ammo can find it close by (small red circle in the image), but will have to face a minor challenge from the two motion-turrets to the right (large red circle).

Laser Loop

Part of the reason I put this so close to the start is that, at this point, I’ve got a pretty solid idea of the path I’d like the player to take through the level. In the “perfect” sequence, the player will navigate through the level in sort of a large figure-eight pattern.

Level Loop

This gives the level a nice mix of horizontal and vertical movement, keeps the core challenge in the center, and keeps the player from having to do much backtracking. Also, if the player happens to ignore the Plunger at the start of the level, the first Spawner is set slow enough that they should be able to still descend and deal with it before things become completely unmanageable.

Tweak, Tweak, And Tweak More

In this state, I can give the level a basic playthrough. In doing so, I quickly notice a few issues.

Most critically, the spacing between the box towers and the Spawners is way too tight (especially the third tower on the lift) and makes it way too easy for the player to bonk their head and end up down on the floor. I also decide that it would be helpful to have a Teleporter from the area by the blue robot down to the lower level by the lift switch. This just prevents the player from having to repeat the tower jumps over and over again if they happen to mess up the platform placement. It’s one-way, so they’ll still need to use the leftmost lift to ascend, but it creates the continued flow of avoiding backtracking.

With the new tweaks in place, things are feeling pretty good! At this point, I stop to do some basic decoration, with a focus on adding in some visual cues to help direct the player. Throughout all of Zeta, I’ve aimed to create a pretty simple visual vocabulary to help the player understand how objects interact, as well as to help guide them towards the goals of puzzles and sequences. I’m be talking more in-depth about this in the next dev log, but for the moment, you can see an example of it with something like the teleporter switch here:

Visual Cues

The background pattern of the ridged conduit helps to show the direct connection between the switch and the teleporter, despite their separation physically. Additionally, the yellow warning track along the Spawner’s level is an indication for the player to watch out - something bad will likely be coming from here (in this case, crates on their head).

With the geometry where I want it, the puzzle fully functioning, and the basic visuals, it’s time to add a bit more flavor to the level. The next thing I focus on are the addition of collectibles. There are two main collectibles in Zeta: Starcoins and Crew.

While the player is able to completely ignore both these things and still finish the level, it doesn’t mean they are meaningless. Besides the obvious appeal to completionists and achievement hunters, both collectibles have a gameplay purpose.

Starcoins - nice, bright, easy to see - make a great tool for subtly indicating movement paths and options for the player. They can be used to highlight the arc of a jump the player might not realize they can make, or to show which of two directions might be more useful to go down first. Obviously these are not hard and fast rules - the player can just as easily ignore them. But it is just one more tool in the toolbox to help guide the player without shouting at them.

The Crew, on the other hand, are like a mini puzzle by themselves. While the player can just rescue them, a clever player will have realized early on there is always a way to “accidentally” kill them as well. Again, there isn’t a required reason to do this other than the joy of figuring out how to do it in each level (or some deep inner maliciousness).

Finished

I place the Starcoins, and for this level I keep the crew puzzle relatively simple - the player just has to actively make sure not to save the crew before activating the spawner and opening the trapdoor.

With that in place, it’s just a bit more tilework to spruce up the visuals, and then it’s time for a full playthrough test. (I hadn’t actually placed the Crew yet in the video below).

Wrapping Up

So with that, the level is fully playable, has all the required collectibles, feels like a good challenge level, and (to me, at least) is pretty fun. From my point of view, that wraps up the basic design process, and now it’s off to other people to try. This is probably the most important step, because as they guy making the game and designing the level, I know all the ins and outs of it. It’s how the unfamiliar player handles it that can really determine whether it works or not. With playtester feedback, I’ll make additional tweaks if needed, and then it will be added to the final game roster.

I hope this has been useful in giving you some insight as to how I’ve approached building levels for Station Zeta, and perhaps it’s given you some ideas for your own process. In the next dev diary, I’ll be delving more into the visual aspects of Zeta, specifically focusing on that “visual vocabulary” I mentioned.

In the meantime, make sure to pop over to Steam and wishlist Station Zeta today!

Run, jump, shoot, and think your way to safety in this retro-inspired 2D puzzle-platformer. Station Zeta is out of control, and you'll have to deal with crazed robots, terribly designed station machinery, and blatant safety hazards as you try to make your escape across over 35 levels.

<p>
    <a href="https://store.steampowered.com/app/2950320/Station_Zeta/">Station Zeta on Steam</</a>
</p>

Return to Home