How to play the Game of life

Introduction

The original game of life was presented as a mathematical problem. Here a biological approach is followed.

World

The world is filled with cells which simultaneous reproduce to a next generation. These cells are placed on a grid. This can be a grid of squares, like a chessboard; or a grid of hexagons, like a honeycomb. The neighbors of a cell are defined in several ways. In a square grid all eight surrounding cells or only the four cells which share a border are considered. In a hexagonal grid every cell always has six neighbors.

Cell and genome

A cell is either alive or dead. In a new world all cells are dead. When a creature is released in the world it brings life to a group of cells which form its shape. Every generation a cell which is alive injects its genome into the cell and into all the neighbouring cells.

A  genome is a set of rules to decide whether a living cell will survive or a dead cell will come to life. Each rule takes the cell’s own state, alive or dead, and the number of living neighbour cells. The combination of these two decides whether the cell will survive to the next generation.

Every generation all cells which have a genome repeat the proces of spreading its genome and deciding on life or death in unison.

The genome for Conway’s game of life:

  • A cell is square and has 8 neighbors
  • A cell which is alive and has 2 living neighbors survives
  • A cell which has any state, alive or dead, and has 3 living neighbors will survive or come to life
  • Any other combination leads to the dead of the cell

The genome for self-replicating cell-patterns as I met on my introduction to IT by Paulien Hogeweg:

  • A cell is square and has 4 neighbors
  • A cell which has any state, alive or dead, and has 1 living neighbors will survive or come to life
  • A cell which has any state, alive or dead, and has 3 living neighbors will survive or come to life
  • Any other combination leads to a dead cell

Creature seeds

To start life a creature (pattern of cells) is placed in the world. The seed list offers some well-known patterns from Conway’s game of life. Also an elephant is included, this was used in my university days to demonstrate self-replicating patterns. Also the logo of my company is provided. The seed is displayed in the left box. Change the seed pattern by clicking cells to add or delete them. Flip the creature using the checkboxes.

The seed has a color to indicate a living cell and a trail color to indicate a dead cell which carries the genome of the seed.

The creature is positioned by clicking the desired place on the world. Note that multiple seeds are possible and that different seeds can have different genomes.

The size of a cell is 4 pixels by default. When working with large creatures, like the Gekko, it is recommended to decrease cells size. Changing the cell size will not erase the world.

Starting life

Life is controlled with the start- stop- and next buttons. The time between generations is set using the slider. While life is running new creatures can be placed in the world.

Every generation a living cell counts the number of living neighbours. Next the cell injects its genome into the surrounding cells. In case the surrounding cell is already alive the killer nature of the genome is taken into account. A killer will replace the genome with its own, else the existing genome is respected.

Experiments

Many different genomes are possible. Each consist of a set of rules. The maximum number of rules is 1 more than the number of neighbours. This set of rules can be edited in the genome box. When choosing a cell-type these rules are set to a default: Conway for 8 neighbours, Self-replication for 4 neighbours. It’s up to you to experiment with other sets of rules.

The main difference with the original game of life is that in this implementation the rule list (genome) is a property of the individual cells instead of the grid as a whole. This gives the possibility to have multiple creatures with different genomes interacting.

Technical requirements

The game is built using HTML5 and the latest version of Javascript. It works with latest versions of Chrome, Edge, Firefox and Safari. The game requires a lot of processor power. In a large world with a lot of living cells or on an older computer it will slow down.

Feedback

Over time I will add new and better functionality to the game. Specifically the support of hexagonal grids will be enhanced. Feel free to provide me with feedback.

Happy lifing

Peter van Ooijen