Game design Toolbox – Data Structures and Algorithms

As the design starts to make progress, it becomes increasingly important to develop the data structures. Those data structures are used to provide feedback to the user, probably mostly graphically. The actions of the users are algorithms applied to those data structures. The failure states are triggers applied when the data reaches specific levels. Progress is achieved in the design when we can convert all the actions of the user into algorithms that can be applied to the data structures.

I like this approach because it is often like a breeze of fresh air in thinking about the design. It enables the team to attack the problem from a very different angle, and it reconnects quickly what the programmers will need to do with the concept the designers are promoting.

In general I see a tendency of trying to define things in a too complex manner. It seems to many that artificial intelligence or simulation needs to be complex to be interesting. My experience is that you can never make it simple enough. Those things add up very quickly and if you have made the components too complex, you will most likely fail to get the basic behaviors work in a predictable way. This will prevent the user from creating a useful mental model of the inside of the game. When this happens, the game seems to behave erratically.

Here is an ordered set of options for defining how to represent a variable in the game:
1) Keep it fixed
2) Make it random
3) Make it 1 bit. (2 possible values)
4) Add one bit at a time, until you reach the granularity you need.

If you are using more than 8 bits, something is probably wrong. Try changing the scale of the variable from linear to logarithmic.
Sid’s also expressed that he has a rule about changing the values of variables. He always half or double them, never changes them by 10% for example. It is another way to say that there can be only so many meaningful bits.

Mark Skaggs when tuning Red Alert 2 also had a similar experience. It seemed that the only way to get the users to feel a difference in the tuning of the game was to make major changes (“cut by half”) in the fundamental variables of the units.