Metaphorical level design
11 min read
This is a joint post from both of us because this is something we spent an equal amount of tears on.
AGENCY is a metaphorical game, one that communicates a message we genuinely think and feel is important. It does this using abstract layers of symbols and game mechanics. It trusts you, the player, to figure out the message. This is deliberate. We believe the experience will be more meaningful when you figure it out for yourself as opposed to us telling you what the game is about. The layers of abstraction are there to communicate the many nuances and facets of the message more effectively than text.
We faced a lot of challenges by opting to make a game like this.
In this post, we want to talk about the level design in AGENCY. This is a timely topic because a few weeks ago, we finally finished constructing every single level in the game. To us, this was the kind of milestoneAfter reaching this milestone, we went on a “vacation” for a week, where we either slept in or just walked around Toronto. We did not realise the extent of the stress we were under until half way through the break. that makes one go “phew.” The super hard work was finally done and there was no more uncertainty stemming from levels not yet implemented. What is left now is to iterate, fix bugs, polish up the visuals, and so on.
A quick background on level design
Typically, a video game is broken up into discrete sections called “levels,” like chapters in a book. The goal of level design is to make each discrete section engaging. Players should find the current level they are playing fun, and they should be motivated to continue on to the next level, which should also be fun. Ultimately, they should want to finish the game and not uninstall it halfway through.
Level design is generally difficult to get right for most games. Sometimes, the first few levels of a game are less interesting compared to the later levels. Sometimes, a game is fun until the player reaches a level that is significantly more difficult than the previous ones. Sometimes, levels in a game might feel repetitive.
It is exceedingly difficult to make a game or its levels fun for everyone. Even the most celebrated games have their detractorsOne of us enjoys Tetris, the other one hates it a lot.. So the aim is not to please everyone. However, it has to be fun for at least some people and the level design has to cater to those people. For example, if a level later in a game is considered too difficult for those who enjoyed the game so far, maybe that is a sign to tweak the difficulty of that level.
One way to appreciate the challenging nature of the task is to consider that the level designer starts with a blank slate. It is like writing a chapter in a book. The author might know the broad strokes of the story to be told but writing the chapter means actually putting words on paper to construct the sentences and the dialogue between characters. Similarly, the level designer has to figure out what the player should do in that level and they have to work out all of the details. They have to plan out the level and place the walls, the enemies, the treasure chest, and everything else the level requires in just the right place.
This is an open-ended task and having guidelines can help complete it. A popular guideline is to build levels around the game’s primary mechanic, which is the main game action that a player can do in the game. Such an anchoring provides the designer a more concrete idea of what the level should consist of. These guidelines do not magically make it easier to create fun levels; that will always be difficult. They merely set some boundaries on the open-ended task and let the designer think within those boundaries.
As an example, in Portal, the primary gameplay mechanic is creating blue and orange portals in different areas, and being able to seamlessly travel and move objects between the two. Therefore, the different levels in Portal are about solving puzzles by creating portals in smart, interesting, and fun ways. In Doom Eternal, the primary gameplay is in surviving rooms filled with monsters by fighting them. Therefore, the different levels in Doom Eternal consist of rooms of different sizes and monsters of different arrangements.
To be sure, we are simplifying both of these games and they have a lot more going on than what was just presented. The point is that a game can opt to have primary mechanics and have levels be built around those mechanics.
Back to our game and our struggles
With AGENCY, we chose not to have any central gameplay mechanic. If the game is going to be a metaphor that players interpret, then we need to have the freedom to think about each level very differently. Something that makes sense in one level might be inappropriate in a different level. We need the freedom to have different rules and mechanics in each level. We can rely on some things, like the fact that the game will be played from a top-down perspective. But beyond that, we decided that our main limitations were going to be our imaginations, our skill sets, and our resources.
Note that we do not want to spoil our game, especially since it is not out yet, and so we will have to be vague in some places belowPlay the demo!.
When we began development, we decided that the game should be split into eight levels, with each level given a different theme. We knew what the themes were and how they related to the overall metaphorical structure and message. In the first month, we created a skeleton for the first three levels, and the fifth level, and we were pretty happy with our progress. So then we decided to split up: one of us will work on the fourth level and the other will go back to the first level and iterate on it, to make it more than just a skeleton.
It was right about now that our collective confidence felt the first crack.
The first level felt too weird. As the first level, this was going to be one that gave players their first impression of the game and we worried that the weirdness would be extremely distracting. We talked and decided we needed a prologue level. The function of the prologue was to ease the player into the game and prime them for an unusual game with weird levels. However, it would still be part of the message and the metaphor. It was not to be a throwaway level.
The core idea of the prologue came together very quicklyWe got lucky here and it would have been nice if this creative speed had transferred into other levels. Spoiler alert: it did not.. However, we were not able to bring it to a close and call it “done.” There were details that we simply could not agree on: “What do we do if the player does this? Doesn’t this gameplay scenario break the metaphor? How does this relate to the next level? What about this other thing?” We did not know it at that time but we would end up repeating these questions to each other incessantly as we worked on subsequent levels.
Discarding ideas
The core tension, the one generating all these questions, is this: we need the level to be fun and we need it to communicate a message. Logic tells us that with two binary variables, we have four distinct possiblities:
- Fun and metaphorically coherent. (Grade A: Excellent)
- Fun and not metaphorically coherent. (Grade B: Try harder)
- Unfun and metaphorically coherent. (Grade C: Try harder, but different)
- Unfun and not metaphorically coherent. (Grade F: Unacceptable)
The prologue felt like a weak A. The core idea was fun but not every aspect of the level was metaphorically coherent. It was possible for the player to do something that was antithetical to the message. We were not able to resolve our disagreements over these details and decided to temporarily move on. We still had the rest of the game to work on and besides, look at us! We created a prologue fairly quickly! Surely we can complete the rest of the game quickly and then come back and fix the prologue.
Our collective confidence felt a series of cracks here.
The creative momentum we thought we had fizzled. What we previously did for the first level was objectively rubbishYes, objectively. You would have refunded the game if we kept that first level.. It hilariously paled in comparison to the prologue. F! Meanwhile, the fourth level could not even be classified because we had no idea what to do. The next few months were hell. One of us kept coming up with prototypes for the first level that were rejected by the other because they were either Cs or Fs. Concurrently, the other was creating ideas for the fourth level that were either Bs or Fs.
As you can see, the F grade was being tossed out quite liberally. We were not aiming for an F, of course. It was just that in those instances, the one playtesting the level would quickly find it unfun and they would ask or do something to trigger the ultimate question: “Is this really the message we want to communicate?”
For example, there was this concept level where one of the things the player had to do was collect some items while avoiding enemies that look like skulls, which move quickly and in a straight line towards the player. If they hit the player, there was a sound effect and a screenshake to convey the idea that the player did something incorrect. The playtester of this level deliberately ran into the skulls. It did not strike them that anything was wrong. When questioned why, they simply said: “Oh, I thought I should collect them.”
The designer of this concept level had take a nap to recover from the resulting psycho-emotional damageThis coping mechanism was used often throughout the development of the game.: “What kind of a message could we possibly convey when skulls look attractive enough to collect???”For some reason, this designer keeps bringing up the memory of this trauma to the tester, thus ensuring that they both relive it regularly.
We were disciplined during this process. We wanted to stick with the vision we originally had and we did not want to compromise on the quality of the game. We believed we could achieve it. It did mean that we had to discard a lot of ideas that did not meet the grade but such was life for us.
Discussions, talks, and elevated volumes
Initially, we treated our respective levels the way we might treat work that was individually assigned to us. Sure we would gently exchange ideas with each other but for the most part we worked on our levels silently. It was only when a concept level was ready would we work more closely to playtest the level. As we kept discarding idea after idea, our senses became heightened to our lack of progress. With each passing day, we were getting crankier and more impatient.
This utter lack of progress pushed us to have long discussions. With time, we started having more of them. We do not mean just polite conversations over coffee. Even if they began that way, they would become passionate and animated. Our vocal volumes would increase and inevitably, our internal mind filters would switch off. If there were pieces of paper unfortunate enough to be near us, they would be scribbled on furiously.
Looking back, we do not think it was any particular discussion, nor necessarily the content of these discussions, that helped us. Well, maybe they did. But what helped us most was just the act of talking. The thing is, working silently was not the right strategy for us in these creatively demanding tasks, especially when we had no starting point for ideas. Devoid of directions to think in and of any kind of input from a different person, the mind was free to descend into doubt and despair. And that is exactly what it did.
It is our discussions that gave life to the mind and fostered creative thinking. This helped generate higher-quality ideas which, in turn, became the bases of our levels. With iteration and playtesting, we built on these foundations to get to the levels we have today. We could work silently when we knew what we were doing and just had to do it. But when faced with a blank slate and a demand to do something creative, silent work was harmful.
Completing levels one and four repaired some of the cracks in our collective confidence. When we progressed on to the remaining levels, we oscillated between having discussions and trying to silently generate ideas on our own. While we intuitively knew that the discussions were helpful, which was why we were having more of them, the instinct to just silently work on things was strong and sometimes took over before we realized what was happening.
One interesting problem we had here was in deciding when to finish iterating on an idea. It was easy to keep discussing and working on an idea in the hopes of making it a stronger and stronger A. We came up with the following formulation: if we reach a point where any of our proposed changes seem to make the level worse, then we have done our best. We were not worried about being stuck at local maximums because the way we questioned our ideas gave us confidence that we were being thorough. We really like this formulation because it was concrete and felt natural each time we applied it.
It takes time
The previous mention of “local maximums” probably colours your impression of us. Yes, we are both software engineers. We have a lot of experience solving tough technical problems and we have developed our own individual strategies in tackling such challenges. The thing is, these strategies were rarely helpful with level design. We were not working on problems that will surely have different solutions with different tradeoffs.
No, this was something more creatively demanding, something that was much more open-ended. Our background helped with implementing ideas, but not with coming up with ideas or with making sure that those ideas were fun and appropriately metaphorical. Like in the case of writing a book, a mastery of the language does not mean that one knows how to write a good book.
In hindsight, the cause of our crankiness when we were struggling was our software engineering background. The expectation of constant visible progress was working against us. Highly creative work is different. More patience and more willingness to give ourselves the time to achieve results would have reduced the stress. Besides, it is not as if the pressure did much to accelerate our progress. Perhaps it was a type of a self-deception: “If we are not making progress, then we should feel bad about it. That way, we exhibit to the world that we are being well-behaved.”
It really is important to take the time to talk about ideas, to toy around with them, and consider them from different perspectives. Sometimes, even with our discussions, we would feel like there were mental blocks preventing us from proceeding further. However, when we observed them patiently, it would turn out that these blocks were deeply felt opinions on what we thought a level should and should not contain. These realizations would resolve the blocks and allow us to move forward with the creative process.
Where we are now
We feel relieved that the levels are done. We are proud of them. Choosing to have different mechanics for each level was challenging but it made each level new and interesting. We think some of the levels could even be expanded into their own games but that is a topic for another day.
We are going to be busy the next few months, iterating and improving the levels in all conceivable ways. The remaining work should be less open-ended in nature since we have already made much of the creative decisions. We are quite excited with AGENCY and we look forward to the day when we can share the completed game with you. Perhaps at a later time, after the game is released, we will share the specific struggles we had with each level.
If you enjoyed this post, please try the demo and wishlist AGENCY game on Steam. Thank you! 🙏