General game design
One-liner notes
Section titled One-liner notes- Octalysis is a gamification design framework that lays out the drives for motivation (e.g. empowerment, ownership, unpredictability, etc.).
Inventing things from scratch
Section titled Inventing things from scratch(writing this in late 2024)
For most of my hobby/career, I’ve generally tried to invent where I can. It’s impossible to completely forget every game you’ve played, so I recognize that I was subconsciously influenced by others, but I didn’t lean into it.
As games have gotten more complex and as the market has gotten more saturated, I don’t think it’s such a great idea to create games “from scratch”. It may result in something unique, but it takes a ton of iteration to get to something fun. I look at it sort of like how I see doing technical interviews without studying—you’d be inventing algorithms from scratch that took computer scientists years to arrive at. E.g. just imagine trying to make an RTS without thinking of something like StarCraft as you do so; even just defining fun gameplay would be tough. It’s why Bot Land was so hard to design for me; I hadn’t seen another game like it, and I wasn’t a good enough designer at the time to predict the problems I would have with a real-time 1v1 automation game (this was before the autobattler-style games like Auto Chess had come out).
Instead, I think it can possibly be better/easier to start with a pitch like “my game is like Game X but with <1-3 differences>“. Think of popular games through that lens:
- “Terraria is like 2D Minecraft with more of a focus on combat”
- “Vampire Survivors is like Crimsonland themed like Castlevania”
- “Elden Ring is like a harder/darker Breath of the Wild”
- Any sequel (e.g. “Diablo 2 is like Diablo 1 but with more classes/skills/loot”)
The nice thing about doing it is:
- It helps define your invention. There’s still a ton of creativity you can apply, but you have some guardrails in the form of the comparison point.
- It gives potential players a clearer hook. “I like the sound like a darker Breath of the Wild, so Elden Ring sounds great!”
- It gives you a clearer idea about the potential success.
”YAGNI” applies to game design, too
Section titled ”YAGNI” applies to game design, tooYAGNI (“ya ain’t gonna need it”) applies to game design, meaning you may design entire systems that you just never end up needing because they don’t seem to fit once your game is more concrete. Keep this in mind when designing so that you don’t answer questions too deeply. E.g. in Skeleseller, we designed a resistance system that we still haven’t coded ~4 months into development because we think elemental attacks would add unnecessary complexity.
Testing for “fun”
Section titled Testing for “fun”You test that a game is fun by making a prototype and playing it. If the game is multiplayer, then you have to simulate other players in order to test if it’s fun. Without that, you’d need to find real people, teach them the game’s rules, make sure they’re all appropriate skill levels, coordinate their schedules, etc. That’s still important at some point in testing, but the prototype should still be fun with bots.
Ideally, the bots act similarly to smart human players. Think of good games like Super Smash Bros. or StarCraft:
- AIs aren’t just performing random inputs
- AIs aren’t often doing really stupid things (like getting stuck on walls)
- AIs aren’t performing the same inputs in every situation, so they’re not as predictable
I’m adding this note because I remember stupidly trying to test the first iterations of Bot Land (the realtime version in ~2017 or whatever) with real people. I spent way too much time to learn that the game loop wasn’t very fun.
Designing a brand new game
Section titled Designing a brand new gameI think these are good ideas for when you’re starting on a brand new game:
Questions to ask:
- “What kind of gameplay do I want to encourage?”
- E.g. if you want players working together, then your incentives need to align toward that.
Things to do:
- Start jotting down any concrete system that will satisfy a game-design need. E.g. if you’re making an RPG and you want character differentiation, simply go with a talent tree even if it’s not the best. The point isn’t to come up with the final system, it’s just to give a concrete comparison point for future systems, that way you’ve narrowed down the infinite possibilities.
- Also, that was just an example, but skill/talent trees in particular have hundreds of successful incarnations in the history of gaming, so try not to get too caught up with what works unless you plan on having >100 skills per character or something.
- Especially decide to move on when a system or mechanic wouldn’t take that long to change. For example, suppose you can upgrade buildings in your game, and you’re deciding between whether buildings should be upgraded linearly (“Lv. 1: +1 troops, +1 food”, “Lv. 2: +2 troops, +2 food”) or selectively (“Choose one: +1 troops or +1 food”). The difference in coding those two choices is pretty negligible, so just pick one and move on.
- Sections to make in a document:
- Overview: what is the game about at a high level? This is great when you start having tens of game design documents.
- Ideas: things that might be fun but may not fit in with the game
- Questions: <see the “Systematically list and answer questions” section>
- Design: the so-far finalized design decisions.
- Scratch: random thoughts you have as you’re thinking about the questions you have. This is intended to be used to arrive at conclusions for the “Design” section.
- Systematically list and answer questions. E.g.:
- “What does the endgame look like?”
- “How long do matches last?”
- “How many people play in each match?”
- …then, pull out one of those questions to a scratch pad and plan things out. “How long do matches last?” “Well, if they’re 10 minutes, then people can play in a single session. If they’re 30 minutes, then the strategies can start to show more depth. If they’re a day long, then players would only be able to check in a few times per day, so maybe we’d be hurting the experience for players who want to be active for the entire game.”
- Don’t hesitate to say “we’ll have to figure this out through prototyping”.
- Make many simplification passes. A simpler game is easier to get into and easier to understand. After designing most of your game, you probably changed several assumptions.
- Is this system needed? What value does it provide?
- Is there a way to provide the same value with a simpler system?
Good ideas:
- Design without a deadline, that way you can pump any “residual creativity” into it. Sometimes, after stewing over an idea for a week, I come up with something good to add, and it’s much easier to add that thing when early in the design process. The design should make enough sense as a complete game before starting to prototype.
- Involve others! They don’t need to be professional game designers themselves, they just need to be willing to work with the information you give them and help spark creativity.
- Designing almost anything totally alone has almost always led to worse results in my experience.
Some effects only seem equivalent
Section titled Some effects only seem equivalentConsider “double your life” vs. “take half damage”. In total isolation, they have an identical functional impact (you’ll take twice as long to die), but they interact with other mechanics differently:
- Absolute (as opposed to percentage-based) healing effects are essentially doubled if you’re taking less damage per hit
- Percentage-based effects (e.g. “gain attack if at <30% life”) can be easier to achieve if your life is doubled
My conclusions from this:
- Simple effects can sometimes combine to form more interesting systems
- Some effects only seem like duplicates at first glance
Memorable differentiation
Section titled Memorable differentiationTake any card game like MTG or Hearthstone and imagine no graphics/SFX. The cards themselves are VERY boring:
- 2-mana 2/3 with “beast” tag
- 2-mana 3/2 with “beast” tag
- 2-mana 2/4
- 2-mana 4/1 with stealth
These sorts of minor tweaks are hard to keep track of until you add names, graphics/animations, and SFX. Then, River Crocolisk immediately stands out from Razorfen Raptor even though the only change is that their attack and health is swapped.
I think the lesson here is that if you’re going to have ten weapons in your game that vary only in damage or attack time, find some other way to memorably differentiate.
Systems
Section titled Systems- Don’t add systems until they’re actually solving a problem.
- Not every RPG needs an inventory, crafting, trading, exploration, and skill trees. Maybe just battling is enough, and maybe it’s not.
- Game vs. system
- Sometimes it may seem like you’re designing a game, but you’re really just designing a system or mechanic. E.g. I thought of a deck-based auto-battler, but that’s not actually a game, it’s just a battle system.
- Tacking on another game
- Sometimes, having multiple entirely different games within a game can work. E.g. Nonograms Katana is a mobile game with nonograms and then a city builder (you build stuff, send adventurers to a dungeon, farm, craft, etc.). The two games are connected sort of loosely—solving puzzles gives you resources like wood and gold, then the city building can give you items that help you solve puzzles (e.g. reveal a 3x3 section of a nonogram). Then, the city building can give you goals that you otherwise wouldn’t have pursued on your own. E.g. I like 15x15 puzzles, but I get expeditions that require me to do upwards of 40x40 puzzles. The whole combination works.
Magnitude of numbers
Section titled Magnitude of numbersI think that incredibly large numbers are hard to understand for users, e.g. doing damage in clicker games eventually gets to “You did 5*10²⁴ damage!“. On the other hand, very small numbers (“You did 1 damage!”) can sometimes be underwhelming; I felt that as I was playing Paper Mario for the first time.
There’s one other consideration that caused me to write this note though; in Bot Land, some players missed that they earned in-game currency by winning a game. The amount that they’d win per game was 1 Botcoin. By having the number be the lowest possible positive integer, it’s less obvious if you were to animate the number rising since it’s only changing by one.
Currency vs. tokens
Section titled Currency vs. tokensThis is just a random thought, but suppose you have an in-game currency that can buy practically anything. It may still be worthwhile for you to have “tokens” that can only be spent on specific things. Reasons:
- A token can’t be spent on anything else, so the impact to economy-based balancing is easier to calculate.
- A token can be given as a reward when granting the in-game currency would be too general.
As an example of the above pros, imagine a game like World of Warcraft where respecializing your talents costs gold. If you give a player gold, then in general, they are much more likely to spend it on something “more important” like gear, skills, items, etc. However, if there was a “respecialization token”, then it could be a fun reward since you may not have prioritized respecializing enough to spend money on. It’s just like real life; you may not go to Shop X or Restaurant Y unless you receive a gift certificate.
Balancing
Section titled BalancingWhen it comes to balance, make sure there are knobs to tweak. E.g. a weapon that has “freezes target” is hard to balance because it’s all-or-nothing. Instead, a CHANCE to freeze the target can be something that you can balance, that way you can make it only happen every so often.
9/9/2017 - it’s an interesting thought experiment sometimes to say “why not make this infinite?” For example, a game called Redungeon that I tried out is a tile-based infinite runner with a bunch of different characters. One of them has a “gold magnet” that draws in coins from either 1, 2, or 3 tiles away depending on its level. Given that it’s a tile-based game and only so many tiles can even render on the screen, if they ever had a fourth level, it may as well just say “draws in all coins on the screen” (i.e. an “infinite” range as opposed to a 4-tile range). It doesn’t always make sense to have an infinite range and sometimes it can be confusing to the player, but it can help you as a game designer to determine the function of a particular ability/balancing.
Objectives
Section titled ObjectivesSometimes there should be tension between different objectives. For example, expanding your base in StarCraft costs money, which means you’re usually expanding your base at the cost of army strength since you’re not spending your money there. You want to make expanding your base appealing (in this case, it’ll increase your earning capacity), but you also want to make harassment/attacking appealing (in this case, it’ll win you the game).
Items
Section titled ItemsItems in games almost always need a function beyond selling them. That function can be quite simple, e.g. healing or raising stats in an RPG. The more functions an item has, the more the player has to think about how they want to use that item:
- Do I use it for battle?
- Do I turn it in for a quest?
- Do I augment it in some way?
- Do I get rid of it in pursuit of wealth (e.g. sell to a player, sell to an NPC, trade with a player, break down for crafting materials)?
If items have no function beyond selling them, then they’re just proxies for money. In that case, the conversion of the item into money has to be fun or interesting in some way. E.g. in Skeleseller, you can scrap the item for quick cash or sell it in a shop. Then, the selling itself is the main focus of the game, and there are ways to add shop displays, increase how many customers exist, make them move faster, etc. Even with that, the player expectation is still that there’s some purpose for the items (lots of people requested equipment since there’s also a battle system in the game).
Note that crafting on its own isn’t a function if you can’t do anything different with the resulting items. E.g. if I combine an item A worth 200 and get item C worth $300, I haven’t really made an interesting decision as a player.
Relatedly, I’d always toyed with the idea of making the WoW auction house into a standalone game. As outlined above, the main problem is that buying/selling isn’t really fun in WoW, it’s that items and money are useful, so players engage with the auction house. Only a few players are concerned with exploiting the market to make a profit without actually using the items themselves. So a game named “The Auction House” probably wouldn’t appeal to many players unless you could make buying/selling fun somehow.
New-player experience
Section titled New-player experienceEarly in development, I think it’s better to prioritize the new-player experience over UI “professionalism”. For example, suppose you eventually want 100 items/quests/widgets, but for now, you only have 5. It’s a good idea to add a note to the UI saying “There are only 5 widgets for now. More are coming in later versions of the game!”
This looks sort of unpolished, but it can do a lot to alleviate player confusion.
As a concrete example, when I didn’t have an intro/tutorial for Skeleseller, I just added a “(help)” label to the skill UI, and when you hovered over it, it would tell you how you got skill points and that you could right-click to unassign them for free.
Polish
Section titled PolishThe presentation of a game has a huge impact on how much fun players seem to have. I feel like the core gameplay of Bot Land didn’t change for about a year and a half, but the presentation just kept getting better and better to the point where new players hit fewer road bumps each time the game got an update.
Juice
Section titled JuiceThis article does a great job of including visual examples of how to make your game feel responsive/juicy:
- Make controls responsive: the game should react to input immediately even if it’s just to queue an animation
- Ease vs. lerp: use easing instead of linear movement
- Idle animations: when nothing is happening, the screen shouldn’t be 100% static
- Don’t abruptly delete objects: fade them out, show a smoke burst, etc.
- Add gravity to primary actions: a primary action can be given many secondary actions, e.g. screen-shake, particles, wind, pieces of a target monster flying off, etc.
- Send a clear message: cut down on unnecessary UI. When UI is needed, draw attention to something with animation/motion.
Inspiration
Section titled InspirationPlaying even a vaguely similar game to one that you want to make can be great for coming up with ideas. I don’t want to go into tons of details here, but in planning for a particular RPG, I happened to be playing Skyrim a lot, and I would come up with ideas for enemy fights, spells, etc. as I played. What’s more is that they weren’t copied from Skyrim; they were just obliquely related.
It’s also helpful to talk to a friend who is both capable of helping and enthusiastic about doing so.
Finally, this isn’t something I’ve proven, but I have a feeling that ideation can be aided by playing music.
Automation games
Section titled Automation gamesWriting this mostly for myself.
- Fully automating a character (like in Bot Land) means that the game becomes about automation rather than just involving it. You need a suitable interface for automation (scripting and/or a visual system) and then some way of debugging that system. It’s generally tedious, so these games are best done as puzzles or educational games.
- Anything short of full automation means that the player should be providing some kind of input at regular intervals or else they’ll feel like they don’t have any control over the game. E.g. even Ogre Battle 64 had fully automated battles, but you were constantly positioning units, using items, etc. Even within a battle, there was a limited set of manual actions you could perform.
- Automation that doesn’t have to be perfect will always lead to the automation “smoothing over” any bumps in the game. For example, imagine automating Pokémon. The difference between an optimal battle and just a winning one isn’t such a large difference, so most players would accept “good enough” and probably follow very simple rules in their automation.
User research
Section titled User researchIt’s crucial to see how users actually interact with your game. While developing a game, I try to ask friends to play it. General guidelines:
- Ask them to think aloud
- Consider ahead of time whether you want to interrupt to ask questions or try to stay silent for as long as possible.
- If you plan to interrupt, you could ask questions like “how would you accomplish
some scenario
?” or “are you having fun?” - If you stay silent, the person will be more likely to share their stream of consciousness.
- If you plan to interrupt, you could ask questions like “how would you accomplish
- I find it easiest to conduct the sessions over a call where my friend shares their screen, that way they don’t have to worry about recording, and we’re both at computers that are familiar to us.
Solving problems with your game design
Section titled Solving problems with your game designSuppose something just isn’t working when someone (including you) plays your game, and it’s not something that you would say is a bug. It may be hard to identify where exactly the problem is.
For example, with Skeleseller, we had designed a system where you would get +1 max level for each of your adventurers every time you beat a boss. That meant that two things:
- Each time you beat a boss, there’s only one level to differentiate them in power from the last boss. For that level to matter, it would mean increasing stats by a significant amount (or taking level difference into consideration when it comes to battling).
- After you obtain that level, the only thing you could do to increase your power level was to change your skills, but the battles didn’t provide granular enough feedback for us to expect players to do this.
It took a long time to plainly state those realizations. What helped was jotting down ideas free-form in a document without any judgment. It’s what a lot of creative/comedy writers suggest—turning off your analytical brain while you brainstorm. Make a new document entirely or a section named “Scratch” so that you don’t feel like the ideas have to be perfect, then just type away. Challenge any assumptions you’ve already made in your game design (contrived-yet-extreme example: “what if we removed battling from the game”), list wild and fantastical ideas, and see if that process helps you isolate what exactly is wrong with your game design so that you can figure out how to move forward.