The design philosophies on this page are what I used in the creation of The True Slime King. These tips may or may not work for other games. I just wanted to share them in case someone finds them useful.
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 frequently as possible. I didn't like that, because it meant that if players wanted to be fast, they would have to constantly be air dashing, which didn't feel good. And thus, it didn't provide enough benefit to offset the debt of giving the player an additional button / skill they had to master. The same thing was the case for bouncing off walls and fast falling. Bouncing off walls allowed the player to redirect all their speed when colliding with walls. That meant both bouncing and fast falling would be 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. It was just a lot of complexity that wasn't adding to the core feeling I wanted to capture in the game.
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 understand why it's happening that way.
Throughout the creation of tThe True Slime King, 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 (mainly because of feeling inconsistent).
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 handful of objects, you will have a lot of possibilities. It's your job to explore those possibilities. Doing that just takes time. When you start playing with them, you'll approach them as a beginner, but over time, you'll learn to master them.
1.3) Simplicity in conveying information
Often the easiest way (as a developer) 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 and experiences so that you don't have to even tell them anything. The more a player can just experience things for themselves, the more connected they will feel with the environment. 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 boils 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 feeling overwhelmed with too much new information thrust upon them all at once. By building up expectations and then destroying them, 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.
3) Make levels flow well
Flow is how the player moves around in the level, as well as the level pacing (exploration, action, waiting, etc.).
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 piecing 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). That said, there are definitely exceptions to this in the game. It's good to mix things up every once in a while to knock the player's mind out of old patterns. This will make them think about things in a different way, keeping their mind engaged and learning. Engagement is entertainment.
The way I design difficult situations is ususall in one of these two ways:
- 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 hide a new situation behind too many choices, it's too easy for the player to not be able to figure out how to deal with this new situation. However, if you hide familiar situations behind multiple options or different presentations, it teaches the player to apply their existing skills to new situations (even if they are just slight variations to previous problems).
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 True Slime King 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. If you want to make that kind of game, don't even give the player the option to hold right; just give them the one jump button and make the character always move right. 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
For reference, 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 a few different strategies I like to use when creating levels:
- Key object placement
- Build around a specific puzzle
- Emergent level design
4.1) Key object placement
Sometimes I try to construct puzzles where as many elements as possible have multiple purposes (which I'll refer to for this section as 'key objects'). 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 toward solving the level's puzzles.
To build these levels, I start by outlining where the key objects should roughly be, and then I start filling in the rest of the level to facilitate those key objects as best as possible. Finally, there is a lot of tweaking to get everything just right, because when objects have multiple uses, it can be challenging to prohibit players from completely breaking 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 start by placing the puzzle concept into the level. The I play around with it to see if it works the way I imagined. Once I get it working the way I want, I figure out what else I can build around it that might be interesting. A lot of the time, these puzzles help dictate what the entire rest of the level should look like to make that puzzle shine best. Often times this means I don't build this kind of puzzle from a starting location to ending location; I just end up fill in lots of small gaps until the level is complete. The final task of building this kind of level is going back through and tweaking things to make sure the level flows well and can't be broken. Nothing is worse that giving a beautiful and exciting puzzle to a player only for them to find a simple way around it, because then they don't get to experience the "Ah ha!" moment you wanted them to have.
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. Then I place more blocks supporting and extending those fun experiences I discovered. I tend to build these levels from starting location to ending location, because the level has emerged from that flow of movements I've been doing, and I don't want to break that up. Along the way, 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 many polishing touches to do, because testing the flow of the level was a part of the creation process.
This kind of level design is great not only when you don't have any ideas, but when you want to try to break your own preconceptions about what is possible. During development of The True Slime King, sometimes I would just randomly place some elements around a level and start playing around to see if I could make any of crazy looking jumps. It allowed me to think like a creative player (rather than a designer / playtester), since I wasn't really the one who designed the random assortment of blocks I splattered on the level to start with.