[In this reprinted #altdevblogaday piece, Microsoft game designer Daniel Achterman examines what developers should keep in mind when attempting to build powerful and flexible -- yet simple -- game systems.] Welcome back! My last article introduced my take on the craft of game system design. I identified the goals I believe designers should strive for, and broke down the component parts of systems. This article covers the process I use for designing powerful and flexible systems for games like RPGs and strategy games, and offers tips for each step. Recap Once again, the goals for system design are based on helping you design a consistent system that lets you create game content efficiently. A system should be:
Comprehensible: The parts of the system and how they interact should be understandable.
Consistent: Rules and content should function the same in all areas of your game.
Predictable: Designers should be able to predict how the system will behave in new circumstances.
Extensible: It should be easy to extend the system with new rules and types of content.
Elegant: Systems should strive to create rich situations from simple components.
The three components of game systems are parameters, rules, and content. The most intimidating part of designing a game system is getting started. I recommend breaking the task into the following steps:
Choose the parameters that your game uses.
Design rules that are no more complex than necessary to implement your game vision.
Define the progressions for how parameters change throughout the game.
Design content types that are as complex and interesting as you can manage.
Add new parameters, systems, and content types in layers as needed.
Let's walk through each of those steps in more detail. Choosing Game Parameters The golden rule of choosing what parameters to put in your game is to focus on parameters that impact the interesting choices players make. This is why it's so important to start by clarifying your gameplay – it informs the parameters your game should have. If your RPG has different combat styles, make statistics to allow players to define how their character fights. Starcraft has two resource types because when to start mining gas and how heavily is an interesting choice that players make.
Start with character statistics. Players view games through the lens of their characters. All other content revolves around how it effects characters, such as items, skill trees, and research bonuses.
Start with a small number of basic stats. Create only enough stats for players to define themselves within your intended gameplay. Lots of stats are not necessary for interesting gameplay.
Consolidate parameters that don't matter. Don't include something like "Physical Defense" and "Magic Defense" if players aren't meaningfully manipulating them to specialize their character or defeat content. "Defense" will suffice.
Be transparent. Ideally, players should be able to figure out what a value does and how it's determined from its name alone. "Armor" and "Strength" are transparent stats to today's players. "Attack Power" and "THAC0" are not.
The Legend of Zelda is a great example of a game with minimal, transparent parameter design. Its only character statistic is "health", which is represented by the simple visual of hearts.
A classic example of minimal, transparent parameter design.
Making Simple Rules Rules use the values of parameters to determine what happens in your game. To keep your system comprehensible and predictable, design the simplest possible rules that are sufficient to implement your game visions. For instance, many games don't have damage reduction from armor at all. In D&D, armor simply reduces your chance to get hit. The formula for damage reduction from armor in World of Warcraft is much more complex, but it's necessary to make high armor values scale correctly in the end game.
Keep formulas basic. Formulas should be more multiplication and addition and less exponents and logarithms. This makes it easy for your players to understand how things work, and makes it easy for you to model how your game works.
No tags.