Evolutionary Games and Population Dynamics, by Josef Hofbauer and Karl Sigmund.
I won’t lie to you. This is a dense mathematical work full of theorems, proofs and exercises. I only understood about a third of it. After the first seven chapters I got lost and could only scan page after page of formulae. But what little I understood was very interesting and work sharing.
Fundamentally, this is a book about feedback loops. Game designers are familiar with the two simplest examples: positive and negative feedback which cause a game variable to grow or decay exponentially. Monopoly has a positive feedback loop: the more money you have, the more property you buy, the more rent you collect, the more money you have. Bar pool has a negative feedback loop: the closer you are to winning, the fewer balls you have on the table, the harder it is to find an easy shot, the slower your progress.
The mathematical ecologists to whom this book is addressed recognise a much wider variety of feedback loops with more complex behaviour. The simplest example is a predator/prey system. There exist two species: predators and prey. In the absence of predators, the prey have a positive feedback loop, the more there are the more they reproduce and the number grows exponentially. In the absence of prey, predator numbers decay exponentially from negative feedback.
The difference is how predator and prey numbers effect each other. The more predators there are, the slower the prey grow. If there are enough predators, prey numbers will begin to decrease as they are eaten faster than they can be born. On the other hand, the more prey there are, the faster the predators grow, as there is an abundance of food.
For the mathematically inclined, we can model this interaction using the Lotka-Volterra predator-prey equation:
dx/dt = x(a – by)
dy/dt = y(-c + dx)
where x is the number of prey, y is the number of predators, t is time and a,b,c,d are constants that control the different growth rates.
As you can probably already foresee, this system creates oscillating population dynamics. If x and y are both initially small, x will increase. When x is large enough, y will also begin to increase. When y gets large, x will start to decrease, and when x is small enough, y will decrease and the system will return to the initial state.
Ecologists report actual population dynamics like these in the wild, but for us it is worth thinking about this as a game dynamic. Consider a multiplayer game with player classes that corresponded to the “predator” and “prey” roles described here. It need not be as violent as this metaphor suggests; it simply needs to have one class which requires the other class to exist, at the detriment of that other class.
When lots of people play “prey” and there are few “predators” there will be an incentive for more people to switch to the predator role. As more and more people switch, being a prey is no longer a viable class and their numbers fall. Soon the predator players start suffering as there are no prey to support them, and they also diminish. This leaves room for for prey players to join the game and prosper, at least until predator numbers rise again.
Would this be a fun dynamic? It’s hard to say in abstract, but it would be interesting to explore. Perhaps it already exists in some games. After all, it’s no fun being a sniper if there is no-one to snipe. It would be interesting to do a long-term study of Team Fortress class choices and see whether dynamics of this nature arise.
Ultimately, games are dynamic systems. To design them we need to understand them. Fortunately there are many other systems in our universe to inspire and inform us. And there are people who have gone before us to do much of the mathematical heavy-lifting, such as the authors of this book. It is still not the lightest of loads, but if we build of muscles we will be better designers for it.