FUNDAMENTALS OF GAME DESIGN, SECOND EDITION
Design to Make Tuning Easy
In the later stages of game development, you will spend a great deal of time tweaking and tuning your game to improve its balance and remove any dominant strategies or difficulty spikes that may have crept in. Here you'll find a few suggestions to make this process easier.
Chapter 10 explains that you should seek to generalize when you can, to create a set of mechanics that apply to a wide variety of entities rather than creating separate mechanics for each entity. So, for example, in any game that involves combat, try to create one set of mechanics that governs combat between units regardless of what types of units the combat involves. Not only does this simplify the program - ming—the developers can concentrate on implementing the core mechanics and then adding entities on top of those core rules, rather than coding each entity sepa - rately—it also simplifies tuning the design.
If each entity has its own mechanics, the mechanics for each entity must be tuned separately, which could potentially cause balance problems. If you use generalized mechanics as described in "Look for Patterns, Then Generalize" in Chapter 10,
then once you get them into balance in general, any tweaking you need to do should not throw off the balance in unpredictable ways.
This book is not about programming or development techniques, but one trick is so useful that it's worth including here: Separate the code from the data. This lets designers tweak the game by trying different values for attributes without changing the code. Toward the end of the development cycle, you will spend a lot of time play-testing your game and refining its balance by changing the values of entities' attributes. You can store these data in a database—or even just a plain ASCII file— during development, moving them into a proprietary format for the final release.
■ Modify only one parameter at a time. Adjust one parameter, then check the results, then adjust another parameter, and so on. This may seem tedious but it's very important. If you change more than one parameter at a time you will have no idea which change you made produced the results you got. A publisher will cancel a game if the developer can't get it tuned properly, and sometimes the problem is poor procedure.
■ When modifying parameters, make big adjustments, not small ones. Brian Reynolds of Big Huge Games suggests beginning by doubling or halving the value of a parameter and checking the effect. Small adjustments may produce such subtle changes that you can't detect them. Make a large change, then iteratively reduce and test, moving toward the ideal value. Changing by a large factor makes it easier to zero in on your optimum setting.
■ Keep records. Good testers keep close track of what they do so they don't end up wasting effort by trying the same thing twice. As a result, they can see the effects of the changes they've made and learn from experience.
■ Be sure your programmers use pseudo-random numbers. As Chapter 10 explained, pseudo-random numbers let you control the effects of chance and hold the mechanics steady while you change parameters and test the result.
You have learned how to design games that are fair, avoiding dominant strategies and using chance in such a way that your game rewards skillful play. You have also seen how to manage difficulty so that the player's abilities match his challenges and keep him in the flow state of peak enjoyment. You now understand the role that positive feedback plays in games and how best to use it and control it. All these factors play a role in balancing a game and if you keep them in mind, you should be able to adjust the core mechanics of your game to produce a challenging yet enjoyable experience for your player.