In the summer of 1961, a game was created. It was a programming game. Players would write programs that would compete against one another to try and copy themselves as often as possible, and attempt to deactivate the other programs.
Here are a couple of links with more information on the game.
In the previous episode we talked about cellular automata, and John von Neumann’s self-replicating system. While he used cellular automata with 29 different states for each cell, a much simpler game is capable of creating self-replicating systems. A British mathematician created his game of life in the 1950/s. In 1970, an article in “Scientific American” popularized his game. Since then self-replicating patterns, and universal computers have been created within his game.
As I mentioned it in today’s episode, here’s a link to my blog series on how computers compute.
John Von Neumann began considering the idea of self-replicating systems and machines in the 1940/s. Originally, he considered actual robots, who could build other robots that could build other robots. He quickly became bogged down by the complexity of real world machinery, and the expense of providing enough parts for a robot to build a robot. Instead of using real world machinery, he created cellular automata, which was a grid that changed according to a set of rules—each cell changing according to the state of its neighboring cells. Using this abstract model, he was able to construct self-replicating systems, machines that could build copies of themselves.
Here’s a copy of a report put out by NASA in 1980, considering the advantages of using self-replicating machinery to automate the extraction of materials, and the production of useful products. It was my introduction to self-replication and cellular automata.
Before Core Wars, or the computer game Darwin, just about as soon as a computer was built that could run the program, a rather obscure Italian scientist named Barricelli, did pioneering experiments in digital life. While his work remains largely unknown, it does demonstrate how people have been working on evolving computer code from the very earliest days of computers.
Here’s a link to the talk where I first heard of Barricelli.