Algorithmic Thinking

I have had the good fortune to spend time with most of the great game designers, and I have noticed something common to them all: they share an algorithmic style of thinking. I think this is one of the secrets of success of the best game designers.

Algorithmic thinking concentrates on processes rather than facts. The algorithmic thinker wonders not about what things are, but how they work. The data of reality its facts and figures, numbers and shapes are of little concern, for the algorithmic thinker is confident that all those things emerge automatically from an understanding of the deeper structure of reality. Who needs to remember the speed of light when you can always calculate it from the permittivity constant and the susceptibility constant? Besides, what’s the point of worrying about light if you don’t understand how it springs from the interaction of electric and magnetic fields?

This curiosity about the whys and wherefores of reality is not, of course, limited to physics. Will Wright spent a lot of time worrying about how cities work before he could build SimCity. Whatever the subject matter, a good game designer spends most of his time worrying about the processes, not the dead facts.

Moreover, this algorithmic thinking is not merely qualitative; it must be quantitative if it is to be applied to a design. The great game designer takes his algorithmic thinking right down into the hard details. It’s not good enough to note that an airplane slows down when it climbs and speeds up when it dives the designer can’t write program code that vaguely. The program must know how fast it slows down as it climbs. The user will take the plane up and down, and if the designer has not gotten the basic behavior quantitatively correct, the game won’t feel right. The plane will float to the top of the atmosphere, the cops in SimCity will annihilate every last criminal, the monsters in Doom will sweep over the player. The designer must be comfortable with the quantitative expression of his algorithmic thinking.

That means mathematics. Math is the great unequalizer, the sieve that separates good game designers from all the me-too losers out there. The good designers don’t consider what they do to be high-powered math; I doubt that there’s a single partial differential equation in any of them. But they all seem perfectly comfortable with simple linear equations. Most of them don’t even call it math. They just write up the formula and leave it at that. Who needs a label? But the reality is there: these guys don’t shrink from applying their high-school algebra.

The antithesis of algorithmic thinking is instantial thinking. There’s a lot of instantial thinking in many of the products being designed these days, and it always leads to poor designs. The instantial thinker works with specific cases rather than broad generalities. He comes up with great cut scenes, but lousy interactions. When he designs an adventure game, he loves to cook up strange dilemmas in which to place the player, but the idea of a dilemma-generating algorithm is lost on him.

This is not to say that instantial thinking is bad; there are plenty of tasks that require good instantial thinking. Any storyteller needs to be good at instantial thinking. The problem comes when good instantial thinkers attempt to apply their skills to interactive design. It doesn’t work.

Sadly, algorithmic thinking is so fundamental to a person’s outlook that I do not believe it to be a readily acquired skill. I’ve wasted a lot of time trying to help people think in more algorithmic terms, and I see little progress in mature individuals who are not already inclined in that direction. By the time you’re 20, either you’ve got it or you don’t. If you don’t grok algorithmic thinking, I suggest that you specialize in one of the support areas of interactive entertainment design, and I urgently implore you to please refrain from cluttering up the world with instantial designs. On the other hand, if you do have the inclination, cultivate it and apply it!