The philosophies on this page are what I used in the creation of The True Slime King. These philosophies may or may not work for other games. I just wanted to share with the world what my process was in creating this game.
This is the main philosophy that everything else stems from:
Create meaningful choices in the simplest way possible.
Now let me explain what I mean by that.
1) Keep it simple
Simplicity comes in many forms. My main philosophy of simplicity in game design is to not just throwing unnecessary complexity at the player for the sake of making things harder.
1.1) Simplicity of player mechanics.
Teach the player as many skills as possible through intuitive/apparent level design (without using tutorials), and then grow their skills by making them use those skills in more difficult situations and in combination with other skills the player's been taught.
To create depth in your mechanics, don't add a billion different power-ups that the player can use. Adding too much creates artificial complexity that does have depth to it, but isn't nearly as accessible to the player. That said, there are several genres of games where the core of the game is based around complex systems (like RTS games), so don't go around trying to make every game overly simplified. Just make sure that everything you implement is there to support the core of the game.
When I started making The True Slime King, the player had four abilities beyond jumping, and moving left / right. These abilities were:
- Air dash by pressing button X.
- Bounce off walls by holding button Y when colliding with a wall.
- Fast falling by pressing the down arrow key.
- Cling to ceilings by holding the jump button.
As I played around with all these skills, it became apparent that there was too much going on. The player had too many options, and many of these options weren't very meaningful.
Air dashing was an interesting way of traversing obstacles, but it also made it too easy for the player to get around. This led to the optimal strategy of solving a level to simply be air dashing as frequenter as possible. I didn't like that, because it mandated that the player play in a certain way if they wanted to be fast. More importantly, it gave the player an additional button/skill they had to master which didn't provide enough meaning to warrant its inclusion. The same is the case for bouncing off walls, and fast falling. Bouncing off walls allows the player to retain speed while bouncing off walls. So bouncing and fast falling are mandatory skills the player would have to use in order to achieve the fastest times. And like with air dashing, both skills add an additional button the player would have to utilize.
I ended up removing everything but clinging to ceilings. Sticking to ceiling utilizes the jump key, so it doesn't add any more buttons the player has to learn. On top of that, it doesn't make the player move faster, so it doesn't force the player to use it at every opportunity in order to get the fastest times. Sticking to the ceiling is a mechanic that is purely used to traverse the level in a different way, opening up more creative possibilities for the player.
1.2) Simplicity of environment
The main thing you should strive to do is provide a consistent environment for the player to interact in and grow their skills in. The player needs to be able to tell what is / isn't working and be able to tell why it's happening that way.
Throughout the creation of the game, I've tried implementing things like conveyors, bouncy walls, artificial gravity zones, etc. Many of these prototypes didn't stay in the game, because they either didn't fit well with the mechanics or they made traversing through levels too easy or too difficult.
It can be easy to want to add more elements into the game to increase difficulty and complexity, but adding too many elements that don't synergize well creates an artificial complexity that isn't nearly as fun of an experience for the player. Players often don't spend enough time playing a single game to be able master several very complex systems. When they do spend a lot of time with a game, it's usually because it was accessible to them through their skill progression. Having too many options overwhelms the player and they won't be able to exploring the depth of the system the way you intended.
There are quite a few different types of environmental elements in The True Slime King that the player gets to interact with. However, with each element I added, I tried to get as much out of that object as I could (by making a variety of puzzles around that object) before adding in a new object. Every new object you add gets to interact with all of the other objects you already had, so even with a small handful of objects, you will have a lot of possibilities. It's your job to explore those possibilities. Doing that just takes time.
1.3) Simplicity in conveying information
Often the easiest way to convey information to the player is to tell them with text or speech. However, whenever you can, strive to convey information to the player with visuals so that you don't have to even tell them anything. As an example, in the overworld of The True Slime King, there are goo piles that grow based on how many points you've gotten in a group of levels. To tell the players that getting points in the level corresponds to the goo pile growing, I have small globs of goo fly from the level entrances to the goo pile. For each goo glob, the pile increases in size a little bit. This visually conveys to the player what's going on, but an additional effect is that it allows the player to follow the goo glob in order to find the goo pile.
2) Create meaningful choices
There are many ways to create meaningful choices. For me, it all comes down to giving the player options to explore. In a puzzle environment, I want to get the player thinking, "Maybe I can do this. Maybe I can do that."
2.1) Creativity and discovery
Creating meaningful choices in puzzle design comes down to making the puzzles focus on the player's creativity and discovery.
In The True Slime King, many of the levels are about solving complex puzzles (making the player simply figure out how to reaching the end of the level). These puzzle-focused levels are inherently about the player's exploration of possibilities.
Some of the levels feature simpler puzzles. With these simpler puzzles, I try to give the player multiple paths they can take so the player has the opportunity to exercise whatever level of skill they choose. Since the game rewards points (which go toward unlocking the next section in the game) based on how fast the player reaches the end of the level, there is a clear reward for players who push themselves to achieve faster times.
Another thing that works well to facilitate creativity and discovery is to set up expectations and then throw the player a curve ball. Give the player time to become confident in doing something a certain way. Then, slightly change the situation so their old strategy doesn't quite work any more. This allows the player to become skilled through a natural progression, rather than stagnating and becoming bored, or having too much thrust upon the player at once to the point they get overwhelmed. By building up and destroying expectations, you free the player up to explore the depths of the game mechanics in a way that is rewarding for the player.
2.2) Limit the number of options
Creating meaningful choices is not just about maximizing options for the player. In fact, creating too many options is often just as good as having no options. This goes back to what I was talking about earlier with not having too many environmental elements: it creates an artificially complex system. Having too many options overwhelms the player and they won't be able to end up exploring the depth of the system the way you intend them to
3) Make levels flow well
Flow is how the player moves around in the level, as well as the pacing (exploration, action, waiting, etc.) of the level
The most difficult part of design is coming up with good core mechanics and environmental objects that provide a simple experience yet also offer depth in how the pieces are put together. If you can do that, then you can start to build together levels that have good flow. So what is good flow?
3.1) Section flow
The standard formula I use to construct a level in The True Slime King is to have one difficult section, a few moderate sections, and many easy sections (with the easy sections spaced in between the difficult and moderate sections).
The difficult sections are usually one of these two things:
- Something the player hasn't encountered before.
- A ramped up version of something the player has just recently encountered.
Presenting the player with one of these two situations puts them into an unfamiliar scenario, which allows the player to explore and be creative. The moderate sections exist to allow the player to continue to reinforce old skills. The easy sections allow the player to have pockets of comfort (and room for error) within a level so that no single level is completely overwhelming.
When first introducing an new situation to the player, I try to provide a clear means of interaction so the player can figure out how to traverse the obstacle. If you obfuscate a new situation then they player may not be able to figure out how to deal with this new situation. However, if you obfuscate situations the player has already encountered, it allows you to teach the player the depth of applications of the skills they already have.
The relative difficulty of a level needs to evolve over the course of the game as the player becomes more skilled, so the terms "difficult", "moderate", and "easy" are all relative.
One of the ways that I slowly ramped up the difficulty throughout the game was not only to require the player to perform harder maneuvers, but to start stringing hard maneuvers together with less space for rest in between. In other words, I would put fewer easy sections in between the moderate and difficult sections. By having movements with varying degrees of difficulty and turning them into strings of actions the player has to execute, you can produce a wide range of difficulties while still keeping things simple. If you make an individual action too difficult, it can become frustrating, but if you string together a bunch of actions of varying difficulty, then it becomes a surmountable challenge.
3.2) Movement flow
Creating good flow is about making a level the player can traverse in a way that maximally utilizes the mechanics the player has learned up to that point. Create sections in the level that have a rhythm to them. Create patterns and then break expectations.
Levels would get boring if you just move to the right the entire time and jump over obstacles. I try to make levels where the easiest way to traverse and obstacle is the slowest way, and the hardest way to traverse the obstacle is the fastest way. When you do that, you get a trade-off between risk and reward. It also allows more skilled players to take more calculated risks.
In The True Slime King, the player completes a level through a combination of turns, jumps, and sticking to the ceiling. What I try to do is make it so that each action the player performs can flow smoothly into the next action. I try to make it so that at optimal play, the player's movements allow them to fluidly traverse the level.
You can build up expectations of how levels are going to flow, and then you can break those expectations (but in a way where the level still flows well). This forces the player to learn new skills and slowly become a master of the game.
4) Actually building a level
It usually takes me 30 minutes to 2 hours to create a level. Some of the bigger levels took longer than 2 hours. There are two strategies I have for creating levels.
4.1) Object placement
I try to construct puzzles where as many elements as possible have multiple purposes. When an object has multiple uses, the player doesn't immediately know what order they'll need to interact with each object in order to reach the end of the level. This allows the player to creatively explore the level as they apply their skills and knowledge toward solving puzzles within the level.
4.2) Build around a specific puzzle
Sometimes I go into the level with the idea for a puzzle in my mind. I'll get that concept into the level and then start playing around with it to see if it works the way I imagined. Once I get it going, then I start trying to figure out what else I can build around it that might be interesting. A lot of the time the levels I start building around a specific puzzle continue being developed from the perspective of the puzzle. Often times I don't build this kind of puzzle from starting location to ending location, I just fill in gaps until it's complete. The final task of building this kind of level is going back through and tweaking things to make sure the level flows well.
4.3) Emergent level design
Sometimes I just start placing blocks and let the level emerge. I jump around with the character to see what flows well and what feels good. I tend to build these levels from starting location to ending location, because I already have a sense of how the level flows, and I don't want to break that up. I try to insert puzzles as I'm building the level, because inserting them once you're done will mess up the flow. Once I reach the end location of this kind of level, there's often not much to do, because testing the flow of the level has been a part of the creation process.