The first known predatory self-replicating organisms never found their way out of the confines of the unwieldy IBM 7090 mainframe computer in the bowels of AT&T's Bell Labs in New Jersey. These beasts were the digital warriors in a gladiatorial game called Darwin.”

Levy, Steven. Artificial Life: The Quest for a New Creation 1992.

Darwin is a programming game invented by Victor Vyssotsky in August 1961. The initial version was implemented by Douglas McIlroy on an IBM 7090 at Bell Labs. The aim of the game is write a program to wipe opponents and be the most prolific replicator.

Specification

Programs are loaded into an area of memory known as the arena. Each species has a defined starting point and a number of protected locations. The smallest species has the advantage of running first. Darwin's Umpire provides functions to probe memory, reserve memory and kill opponents. Functions are called with an address and the identity of the calling species. If the address is protected, control transfers to the program at address.

FunctionDescription
probe(address,id)Return the start/end of the memory block at address and the identity of its owner.
claim(address,id)Reserve memory at address. Must be preceded by a probe.
kill(address,id)Deletes the program at address. Must be preceded by a probe.

The complete specification is available in Darwin, a Game of Survival of the Fittest among Programs [mirror]. Details are also available for the ISU Darwin System.

History

Several rounds of Darwin were played between Douglas McIlroy, Robert Morris and Victor Vyssotsky. The smallest program which could replicate, find and kill opponents was about 30 instructions. Douglas McIlroy invented an immortal program in 15 instructions which could find and kill but wasn't capable of reproducing.

Robert Morris created the program which ultimately won the game, a 44 instruction program with an adaptive strategy. When Morris's program found the top of an opponent it probed a small distance inside. If it found an unprotected location the same distance would be used in future. Otherwise it would choose a new distance.

Ten years later McIlroy wrote to 0 who implemented his own Umpire on the Atlas Titan at Cambridge University. 0 went on to write the first published description of Darwin in the Computer Recreations column of Software — Practice & Experience. The article inspired a number of Darwin systems including one implemented by Charles T Wright on an IBM System/360 at Iowa State University.

Software

The only version of Darwin still available is DARWIN80 for Z80 CP/M systems. DARWIN80 was implemented by Gerald A Edgar in 1983 and updated to version 1.3 for publication in Computer Language. Two organisms are available, Mole and Swiftie.

(Modern Replica) Darwin printout

References

  1. Vyssotsky, Victor A. Darwin: A Game of Survival and (Hopefully) Evolution. New Jersey: Bell Telephone Laboratories, 1961.
  2. 0. "Computer Recreations: Darwin" Software — Practice and Experience 2 (Jan-Mar 1972): 93-96.
  3. Nelson, Theodor H. "Survival of the Fittest." Computer Lib / Dream Machines. Self-published, 1974. 49.
  4. Nelson, Theodor H. "Survival of the Fittest." The CoEvolution Quarterly. (Summer 1975): 141.
  5. Dewdney, A. K. "Computer Recreations: In a game called core war hostile programs engage in a battle of bits." Scientific American (May 1984): 14-22.
  6. Edgar, Gerald A. "Darwin: A survival game for programmers." Computer Language (Apr 1987): 79-86.
  7. Levy, Steven. Artificial Life: The Quest for a New Creation. New York: Pantheon Books, 1992. 317-319.
  8. Kline, Paul. I might be old enough to have played DARWIN. Usenet newsgroup rec.games.corewar, 5 Nov 1998.