Charles Darwin used to have a special route in his huge garden in Down House, Kent which he would methodically route around again and again. Walking helped him to think and he was thinking big; really big. He was pondering the diversity of life and trying to understand it. Why were there so many variations of animal such as the many types of finches? How could he account for the strange fossilised creatures he and others had been unearthing? It was a vexatious problem.
What he (and some of his peers) eventually developed was the then ground-breaking theory of evolution by natural selection. Darwin realised that many more of each species would be born than the environment could support, thus some would live and some would die. What separated the two fates would come down to small advantages (such as a beak's shape) and that generation after generation, these small changes would mean that the survivors would become more and more adapted to their environment. What Darwin had done was to reverse-engineer the mechanism of evolution from the results he saw around him. He'd been able to intuit backwards so as to understand the process from which they had emerged. Genius, really.
"We are the software version of pigeon fanciers, selecting desirable traits to amplify and undesirable ones to eliminate"
But what has this got to with video games? These ideas will become more and more key to what we do. Let me explain; a number of people over the years have tried to apply Darwin's lessons from the natural world to the human realm. This is where we get stupid ideas like Social Darwinism from. It has also been applied to technology, economics and cosmology to name but a few. I've been researching its application to software in my PhD.
Darwin recognised that people could attempt to consciously mould evolution - he was a keen pigeon fancier and was well aware of how humans selectively breed in an attempt to encourage traits they liked and remove those they didn't. I'm interested in how we selectively breed software and which types live and which are fated to die. But to understand how this might work we first need to take a step back. Evolution works on the scale of the individual's genotype (their DNA) and how this expresses itself through their physical traits (phenotype) within the environment in which they live (fitness, as in your fit into the niche in which you live).
In software development, the individual is not each install of the software, for these are just clones from the same source code (or genotype). In software the individual is each iteration or version of the program in question. It is then the desirable traits that version displays (its phenotypes) such as functionality and gameplay which determine its fitness. The landscape is not the forests, fields or oceans but the mass of potential users with their functional, economic and political demands. It is their wishes and whims that create the environment in which each individual iteration of software is born and so may thrive or die. Two thirds of all apps released are never downloaded more than a tiny handful of times; to paraphrase Darwin, many more individuals will be born than the environment can sustain and so the differences between them will determine their fate.
Of the last iOS game I worked on, we are on the fifth iteration of it. It is in effect the great-great-grand daughter of the original one we released. Each time we have released a version, we've not had the resources to do everything we'd wanted but we've done our best to respond to the feedback from the environment and so attempted to mould it into becoming a better fit. We are the software version of pigeon fanciers (and our game also features one) selecting desirable traits to amplify and undesirable ones to eliminate. Each new birth has the ultimate test where we release it into the wild and see how it fares.
"We can see the semi-parasitic orbit of some freemium games. Multiple versions of the same game play with very little to separate them as each ingests the designs of the other"
So far you may be thinking this is just a fun analogy, but things are about to get even more bio-matic. These loops of environmental feedback and iterations have always existed in software, but before, they were slow, inaccurate and ponderous. With the environmental signifiers such as the AppStore charts, tweets, user ratings and metric data such as Flurry; the accuracy and speed of the interaction between environment and the ability to produce new iterations has become ever more potent. We can see moment-to-moment how our latest digital pigeon is faring and begin breeding its child for release based on this feedback. However this is still only the faster manifestation of what already exists; the new frontier is yet still more exciting and dangerous.
There is a method called 'Split A/B Testing', where smaller populations siphoned off a larger one are tested upon, normally without the subjects ever knowing. It works like this; I have a million online players of my game. I create two small sub-groups of 50,000 each. To one group I swap the current version for a slightly modified iteration and call that 'A'. For the second group I create a slightly different variation and call that 'B'. I then monitor the results of the changes I am looking at, for example a changed button position to see which of group A or B click on it more. Whichever gives me the most desired result I then roll out that change to the whole population of a million players. And repeat.
During the making of the last iOS game I worked on I recall arguing with my fellow developers about the best place to put a series of UI buttons; this method makes our passionate debates a distraction. In evolutionary terms I am able to hone my selective breeding to the nth degree. I can remove speculation and test new software individuals in the real environment without risking the whole population. I can, step-by-step, iteration-by-iteration, evolve the software species to become ever more efficient at my selected goals (monetisation, player retention, length of play session).
This method allows us to give the users what they want without having to directly ask them. It is an incredibly powerful means of development; arguments over heuristics can be resolved by data, the quirks of errant design and be ironed out by the environmental pressures. Development need not be front-loaded to completion, but can be phased into being. The release of a game becomes the start and not the end of a project. It is (and will) impact on how we design, plan, budget, produce, code, support and judge games.
But this is only half of the story and the reading of this situation using the tools of evolutionary biology allows us to peer into its future. This is valuable because our development environment is young, only a few years old. The lessons of biology go back epochs. Firstly we should note that evolution is blind. Species do not evolve towards a goal, change is only ever reactionary. It has no direction or desire and our attempts to mould it are only ever clumsy short-term attempts at best. Thus our creations become locked into our user's behaviour, which can result in a path down a genetic blind alley without us ever knowing until it is too late. Think of the Dodo, living on an island where it sat atop the food chain and so grew bigger and bigger, losing the use of, by then, pointless wings. Then humans arrived and its goose was cooked. Dare I say it? Zynga. You can see the blindness of its future in the ruthless short-term efficiency of its designs.
"Zynga: You can see the blindness of its future in the ruthless short-term efficiency of its designs"
Evolution is efficient to the point of stupidity. Incremental change is, by its nature, about the minimum effort in to get the maximum result. Thus it moves blindly along a path bit by bit unable to see that this route may lead to strange results because by the time the mistake is realised, the energy required to change what was once minor is now so major that it is simply not evolutionarily feasible to drive the alterations needed. The Giraffe laryngeal nerve is the classic example of this. In games we will see titles that appear to be successful and yet under the bonnet have major structural or design issues that are not apparent in the current environment, but a small shift in the play-space will result in exposure of these issues and so create major upheaval out of proportion to the environmental change.
Evolution is a game, not of thrones, but of colonisation; for one species to thrive, others must lose. This pushes the development of species into a variety of orbits such as predator-prey relationships, parasitical and of course co-operative ways of existing. Introduce one species into an ecosystem that it has not evolved for and chaos results. Rabbits in Australia anyone? We can see this today in the semi-parasitic orbit of some freemium games around set gameplay environments, thus there are multiple versions of the same puzzly bubble or gem type play with very little to separate them as each ingests the designs of the other in an evolutionary arms race for experimental space to grow. In the midst of the incremental battle for domination, larger scale innovation can be lost.