This is the second in a series of development updates that I’m going to be posting roughly monthly to keep everyone apprised on the game’s progress, talk openly about how I’m trying to solve game design problems as a first time game designer, and hopefully elicit some feedback and excitement for things to come. This second entry covers my current work on level design.
If you’ve seen the trailer for The Technician, you may have seen a couple environments: one relatively plain/empty “Tutorial Room,” and one more detailed “Server Room” location. The Tutorial Room is relatively straightforward and was easy enough to make (and may not even appear in the final game), so I won’t bother talking about it too much here, but I do want to talk about my thought process behind the Server Room and how things have evolved since then.
The Server Room
My goal for The Technician has always been for it to invoke that under-pressure, keep-your-head-down, bullets-whizzing-by-while-you’re-trying-to-focus feeling. Initially, I tried to do this in part by having all of the hacking take place very low to the ground, basically placing all of the circuitry underneath a “desk” of sorts. Through a series of play tests with friends, I observed that this forced the player to be crouching down almost constantly; not only to dodge incoming attacks, but even just to get to the puzzle. While this did cause some of the desired feeling of being under pressure, it also quickly became clear that crouching down so much was very uncomfortable and made the entire experience unpleasant. With this play-test feedback in mind, I decided to ditch the always-crouching idea and designed the new Server Room with a few new ideas:
- Standing cover: The most prominent feature on the “server” in the Server Room is the large sliding racks on either side of the enclosure. When triggered by a specific component, these racks slide open to expose the main circuit area. The room is designed so that enemies can only approach from two directions, which means that these racks provide complete cover from incoming fire when they’re open. Standing behind these and leaning out to the side to fire at enemies is a much more comfortable experience than ducking the entire time.
- Some low cover: When the server’s racks are closed, this high cover is no longer available. Instead, the only protection are the low, cooling structures in between the enclosures. I still wanted to keep some aspect of ducking down/keeping low to encourage that under-fire feeling, so this seemed like an ideal mix to me.
- Multiple interaction areas: The original tutorial room was a series of serial, bite-sized puzzles presented in an obvious sequence – it introduced ideas in a building-block fashion. This is good for learning, but for actual game play I wanted to have larger puzzles, though still be able to separate them into smaller subsections and create a flow between them. Creating the server room was my way of introducing this flow by separating puzzles into sub-sections with challenges of different lengths and difficulties. The enclosure has one main front panel, two large side racks, and several horizontal drawers – all containing circuit surfaces, and all of which are controllable via special components.
In spite of these changes and improvements, it turned out there were a couple of things I didn’t like about how the Server Room turned out:
- Ducking: even when it’s infrequent, having to get down and stay there for really any significant period of time continued to be very annoying.
- Limited enemy ingress: enemies could only ever approach and attack from the two sides and were corralled toward the player down the narrow hallway between rows of enclosures, making them much easier targets and preventing them from attacking from multiple angles.
- Entirely static: The level was entirely fixed and, while the enclosure did provide a lot of circuit surfaces and several compartments that allow for a pretty lengthy puzzle, it was still only ever going to be a single-puzzle kind of space.
Introspecting and Improving
It took time and introspection, but I finally realized that the static nature of the Server Room highlighted a major Real World limitation: that fact that I can really only do so much. Not only is this my first time attempting to make a game, it’s also a completely solo endeavor, meaning that my biggest bottleneck is the amount of time it takes to generate content, particularly content that I’m not experienced at making (which is really just about anything that’s not code.)
In a world where I had more time and money, I would love for The Technician to take place in a bunch of different spaces, each with their own unique environmental interactions and gimmicks. In this world though, I’m rapidly running out of time to make a 2018 release, so I decided to try making one more level that would hopefully fulfill some new requirements I had:
- Easy to iterate on: Cover layouts, enemy approaches, circuit board locations, types of puzzles – because The Technician has tons of components that can be combined in different ways, I feel the constant need to tweak, reorganize, and improve in order to eventually (hopefully) create the experience that I’m aiming for. The server room didn’t allow for a lot of experimentation on these without also requiring a whole lot of work to reconfigure the level.
- Supports multiple puzzles: Obviously, a puzzle game needs more than one puzzle. Unfortunately, as I already mentioned, I just don’t have the bandwidth to develop multiple levels to match multiple puzzles. So, while the Server Room could only hold one puzzle (to which the player would have to load in, play, leave via either victory or failure, then load again), my new level needed to support all of my puzzles, and allow some sort of flow between them.
With these new goals defined, what did I do to try and fulfill them? The main point of this article is to introduce my new level, so let’s finally get to it and take a look at:
The Space Elevator
Right away you might see the fairly obvious solution to my “multiple puzzles” requirement here: each floor has its own puzzle, and solving it will take you to the next floor (and thus the next set of puzzles). I needed a way to make this mechanic obvious to the player so I also added a few new puzzle pieces, including an elevator override control and elevator locks. The Technician finds the locks and disengages them to enable to elevator override, then hits the override to advance to the next level.
This new set-up also helps solve my iteration problem – I designed the cargo elevator to make it easy to try different permutations of cover, enemy approach vectors, and types of puzzles. The circuits themselves are located in compartments of varied layouts on the elevator’s central column, and the tech’s play area is now surrounded by numerous boxes and crates being transported up the shaft along with the player. The crates make for natural cover, and it’s easy for me to move them around while I continue playing with the balance of “puzzle difficulty” versus “getting shot at.” The layout also provides a handy place for all of the technician’s tools and equipment.
Landing on the right in-game play space for The Technician has required a lot of iteration (and will still require much more,) but it was interesting to uncover how real-world constraints like time and expertise influenced the type of levels I ended up having to design. Play-testing with real humans helped this process along, as did thinking about how to make my goals achievable as a solo developer via changes in design. I think the space elevator strikes a good balance between “visually interesting for the player” and “easy to play with permutations of game mechanics.” Hopefully with a bit more iteration in this new layout, I’ll be able to get a satisfying flow of pressure and problem solving, with natural spikes in tension and adrenaline, as well as resting/recovery points for the player.
Thanks for reading, make sure to drop me some comments and let me know what you think. Next time look out for a post about the various Technician tools and equipment that I created for the game.