Conway’s Game of Life: Creating complex patterns from simple rules
Nowadays there’s a simulator for everything. You can pretend you’re a farmer, prison architect or a rollercoaster tycoon – heck, there’s even a Job Simulator for those who… can’t get it enough of it I guess? Fifty years ago there was only Conway’s Game of Life, which was (and arguably still is) an intriguing simulation game.
The Game of Life was first published in 1970 by British mathematician John ConwayWho’s still alive by the way. It’s based on a cellular automaton, a model of computation that had been around since the 40s, but hadn’t really caught on outside academia until then.
Its game world is pretty simple and consists of a two-dimensional grid of cells that can be in one of two states: dead or alive. The player can set the state of each cell before the start of the game.
Once the game starts, the world will evolve iteratively. Each cell in the grid has eight neighbours, which determine whether it makes it to the next generation:
- Live cells that have fewer than two live neighbours starve due to underpopulation;
- Live cells that have two or three live neighbours get to live on;
- Live cells that have more than three live neighbours starve due to overpopulation;
- Dead cells with exactly three neighbours spontaneously gain life.
You can see the third rule in “action” in the example below by clicking the “Play” button:
Absolutely nothing will happen, as long as you don’t touch any cells. The moment that you do, the patterns become unstable and start to evolve (which usually leads to their “death”).
The patterns in the example above are so-called still lifes, because they don’t change between generations. This makes for very boring patterns of course. There are also patterns that do evolve, but return to their initial state after a finite number of iterations. These are called oscillators.
The following example shows three common examples of oscillators:
Larger patterns also exist, like this one:
Note that messing with simulations by toggling cells on or off while it runs will usually lead to total starvation or stagnation. In the latter case, you’ll find that the world will often be left inhabited by a small number of still life and oscillator patterns.
Speaking of patterns, there’s another class of patterns called “spaceships”. Spaceships are a bit like oscillators, as they also evolve in a predictable way. There’s one major difference though: unlike oscillators, spaceships don’t stay in the same place!
The example below shows an example of a glider, the smallest known spaceship pattern. Click on “Play” to see it move over the grid. You can use the “Reset” button to move it back to its original position.
Over the years, people have found many more interesting patterns. Most of these have names.
Die hard is a pattern that consist of two tiny groups of cells that “collide” together and create a chaotic-looking animation, until they… well, die.
This following pattern doesn’t have a name yet I think, but can be easily obtained by screwing around with the first example in this article. It also behaves like an oscillatorIf you pretend the blocks are poop, it’s kind of like a dog that produces shit, eats it, and poops it out again, ad infinitum., but is a lot more interesting to look at, as it manages to mirror itself halfway:
The Gosper glider gun is where it really gets impressive. This thing is designed to shoot gliders at a block. Like, forever. And it’s still based on the four simple rules I’ve listed at the beginning of this article.
Now it’s your turn! Here’s a completely empty, sandbox that you can experiment with. If you need inspiration, the LifeWiki boasts a large catalogue of known patterns that you can reuse.