Darwin was the earliest programming game, invented by Victor Vyssotsky in August 1961. The idea of the game was to write a program to out-replicate and disable all opponents.
Each program had a number of protected locations and interacted via three functions:
PROBE
- return the start, end and owner of a memory blockCLAIM
- reserve memoryKILL
- disable a program
If a protected location was
PROBE
d the current program lost control. A CLAIM
or KILL
could only be used on a location which had previously been PROBE
d.Douglas McIlroy coded Darwin on Bell Labs' IBM 7090 and the game slowly progressed until an unbeatable program emerged, designed by Robert Morris.
Robert's program used an adaptive search. If the program
PROBE
d an opponent and lost control it would avoid reusing the same offset. A successful offset would be stored then used for future PROBE
s and to initialise new copies of itself. Robert's program adapted to become a specialist killer.In 1972 ℵ0 (Aleph-Null) published the rules of Darwin in Software Practice and Experience, inspiring a number of new implementations. In 1987 Gerald Edgar published his 8080 version to accompany an article in Computer Language.
Unfortunately Darwin faced a major problem. Programs were written in machine language and could only compete against others written for the same computer. When A. K. Dewdney introduced Core War in 1984 he addressed the limitation by defining the MARS virtual computer and Redcode, a simplified assembly language.
Although Darwin has been consigned to the history book, I'll never grow tired of reading about it! Do you remember playing Darwin? If so, I'd love to hear the details.
References
- ℵ0 "Computer Recreations: Darwin"
Software: Practice and Experience 2 (Jan-Mar 1972): 93-96. - Dewdney, A. K. "In a game called core war hostile programs engage in a battle of bits" Scientific American 250 (May 1984): 14–22.
- Edgar, Gerald A. "Darwin: A survival game for programmers."
Computer Language (Apr 1987): 79-86. - Levy, Steven Artificial Life: The Quest for a New Creation.
New York: Pantheon Books, 1992. 317-319. - Vyssotsky, Victor A. Darwin: A Game of Survival and (Hopefully) Evolution.
New Jersey: Bell Telephone Laboratories, 1961.
Sounds like 'Computer Virus Programming Skills 101' to me....
ReplyDeleteThat's the idea, Francis!
ReplyDeleteI wish I would have gotten this deep into computer programming and game programming. I've made some good old fashioned games using basic and a few others, and I've experimented a lot with how computers work. But I've never done anything like this. It sounds like some of the best fun.
ReplyDeleteIs there any replica for that game? I want to try it.
ReplyDeleteOtli: unfortunately there isn't a modern version of Darwin. :-( The closest is Core War.
ReplyDelete