Darwin (programming game)

Last updated
IBM 7090 IBM 7090 computer.jpg
IBM 7090

Darwin was a programming game invented in August 1961 by Victor A. Vyssotsky, Robert Morris Sr., and M. Douglas McIlroy. (Dennis Ritchie is sometimes incorrectly cited as a co-author, but was not involved.) The game was developed at Bell Labs, and played on an IBM 7090 mainframe there. The game was only played for a few weeks before Morris developed an "ultimate" program that eventually brought the game to an end, as no-one managed to produce anything that could defeat it.

Contents

Description

The game consisted of a program called the umpire and a designated section of the computer's memory known as the arena, into which two or more small programs, written by the players, were loaded. The programs were written in 7090 machine code, and could call a number of functions provided by the umpire in order to probe other locations within the arena, kill opposing programs, and claim vacant memory for copies of themselves.

The game ended after a set amount of time, or when copies of only one program remained alive. The player who wrote the last surviving program was declared winner.

Up to 20 memory locations within each program (fewer in later versions of the game) could be designated as protected. If one of these protected locations was probed by another program, the umpire would immediately transfer control to the program that was probed. This program would then continue to execute until it, in turn, probed a protected location of some other program, and so forth.

While the programs were responsible for copying and relocating themselves, they were forbidden from altering memory locations outside themselves without permission from the umpire. As the programs were executed directly by the computer, there was no physical mechanism in place to prevent cheating. Instead, the source code for the programs was made available for study after each game, allowing players to learn from each other and to verify that their opponents hadn't cheated.

The smallest program that could reproduce, locate enemies and kill them consisted of about 30 instructions. McIlroy developed a 15-instruction program that could locate and kill enemies but not reproduce; while not very lethal, it was effectively unkillable, as it was shorter than the limit of 20 protected instructions. In later games the limit on protected instructions was lowered because of this.

The "ultimately lethal" program developed by Morris had 44 instructions, and employed an adaptive strategy. Once it successfully located the start of an enemy program, it would probe some small distance ahead of this location. If it succeeded in killing the enemy, it would remember the distance and use it on subsequent encounters. If it instead hit a protected location, then the next time it gained control it chose a different distance. Any new copies were initialized with a successful value. In this way, Morris's program evolved into multiple subspecies, each specifically adapted to kill a particular enemy.

See also

Related Research Articles

EDSAC 1940s-1950s British computer

The Electronic delay storage automatic calculator (EDSAC) was an early British computer. Inspired by John von Neumann's seminal First Draft of a Report on the EDVAC, the machine was constructed by Maurice Wilkes and his team at the University of Cambridge Mathematical Laboratory in England. EDSAC was the second electronic digital stored-program computer to go into regular service.

IBM mainframes are large computer systems produced by IBM since 1952. During the 1960s and 1970s, IBM dominated the large computer market. Current mainframe computers in IBM's line of business computers are developments of the basic design of the IBM System/360.

Software cracking is the modification of software to remove or disable features which are considered undesirable by the person cracking the software, especially copy protection features or software annoyances like nag screens and adware.

Wargame Strategy game that realistically simulates war

A wargame is a game that realistically simulates warfare, as opposed to abstract games such as chess. Wargaming may be played for recreation, to train military officers in the art of strategic thinking, or to study the nature of potential conflicts. Many wargames recreate specific historic battles, and can cover either whole wars, or any campaigns, battles, or lower-level engagements within them. Many simulate land combat, but there are wargames for naval and air combat as well.

IBM 1620 IBM scientific computer released in 1959

The IBM 1620 was announced by IBM on October 21, 1959, and marketed as an inexpensive "scientific computer". After a total production of about two thousand machines, it was withdrawn on November 19, 1970. Modified versions of the 1620 were used as the CPU of the IBM 1710 and IBM 1720 Industrial Process Control Systems.

IBM 7090 Second generation (c. 1959) scientific mainframe

The IBM 7090 is a second-generation transistorized version of the earlier IBM 709 vacuum tube mainframe computer that was designed for "large-scale scientific and technological applications". The 7090 is the fourth member of the IBM 700/7000 series scientific computers. The first 7090 installation was in December 1959. In 1960, a typical system sold for $2.9 million or could be rented for $63,500 a month.

IBM 709 vacuum tube computer system

The IBM 709 was a computer system, initially announced by IBM in January 1957 and first installed during August 1958. The 709 was an improved version of its predecessor, the IBM 704, and was the third of the IBM 700/7000 series of scientific computers. The improvements included overlapped input/output, indirect addressing, and three "convert" instructions which provided support for decimal arithmetic, leading zero suppression, and several other operations. The 709 had 32,768 words of 36-bit magnetic core memory and could execute 42,000 add or subtract instructions per second. It could multiply two 36-bit integers at a rate of 5000 per second.

IBM 700/7000 series Mainframe computer systems made by IBM through the 1950s and early 1960s

The IBM 700/7000 series is a series of large-scale (mainframe) computer systems that were made by IBM through the 1950s and early 1960s. The series includes several different, incompatible processor architectures. The 700s use vacuum-tube logic and were made obsolete by the introduction of the transistorized 7000s. The 7000s, in turn, were eventually replaced with System/360, which was announced in 1964. However the 360/65, the first 360 powerful enough to replace 7000s, did not become available until November 1965. Early problems with OS/360 and the high cost of converting software kept many 7000s in service for years afterward.

The Multiface was a hardware peripheral released by Romantic Robot for several 1980s home computers. The primary function of the device was to dump the computer's memory to external storage. Pressing a red button on the Multiface activated it. As most games of the era did not have a save game feature, the Multiface allowed players to save their position by saving a loadable snapshot of the game. Home computer software of the early 1980s was typically loaded into RAM in one go, with copy protection measures concentrating the loading phase or just after it. The snapshot feature could be used after copy protection routines had been executed, to create a backup that was effectively unprotected against unauthorised distribution. Later models of the Multiface mitigated this by requiring the device to be present when re-loading the dumps into memory, making the dumps useless to people without a Multiface. Software producers also reacted to the threat by using routines that would prevent execution of the product if it detected that a Multiface was present and by loading the software in multiple parts, thus requiring the presence of the original, copy-protected media.

PEEK and POKE

In computing, PEEK and POKE are commands used in some high-level programming languages for accessing the contents of a specific memory cell referenced by its memory address. PEEK gets the byte located at the specified memory address. POKE sets the memory byte at the specified address. These commands originated with machine code monitors such as the DECsystem-10 monitor; these commands are particularly associated with the BASIC programming language, though some other languages such as Pascal and COMAL also have these commands. These commands are comparable in their roles to pointers in the C language and some other programming languages.

The Compatible Time-Sharing System (CTSS) was one of the first time-sharing operating systems; it was developed at the MIT Computation Center. CTSS was first demonstrated on MIT's IBM 709 in November 1961; service to MIT users began in the summer of 1963 and was operated until 1973. During part of this time, MIT's influential Project MAC also ran a CTSS service, but the system did not spread beyond these two sites.

<i>Core War</i> 1984 programming game

Core War is a 1984 programming game created by D. G. Jones and A. K. Dewdney in which two or more battle programs compete for control of a virtual computer. These battle programs are written in an abstract assembly language called Redcode.

Digital organism

A digital organism is a self-replicating computer program that mutates and evolves. Digital organisms are used as a tool to study the dynamics of Darwinian evolution, and to test or verify specific hypotheses or mathematical models of evolution. The study of digital organisms is closely related to the area of artificial life.

Cheating in online games Practice of subverting video game rules or mechanics to gain an unfair advantage

Cheating in online games is the subversion of the rules or mechanics of online video games to gain an advantage over other players, generally with the use of third-party software. What constitutes cheating is dependent on the game in question, its rules, and consensus opinion as to whether a particular activity is considered to be cheating.

Victor Alexander Vyssotsky son of the astronomers Alexander N. Vyssotsky (Russian) and Emma Vyssotsky (American) was a mathematician and computer scientist. He was the technical head of the Multics project at Bell Labs and later Executive Director of Research in the Information Systems Division of AT&T Bell Labs. Multics, whilst not particularly commercially successful in itself, directly inspired Ken Thompson to develop Unix. Later, he was the founding director of Digital's Cambridge Research Lab.

<i>Kriegsspiel</i> 19th century Prussian wargame

Kriegsspiel is a genre of wargaming developed by the Prussian army in the 19th century to teach battlefield tactics to officers. The word Kriegsspiel literally means "wargame" in German, but in the context of the English language it refers specifically to the wargames developed by the Prussian army in the 19th century. Kriegsspiel was the first wargaming system to have been adopted by a military organization as a serious tool for training and research. After Prussia's impressive victory over France in the Franco-Prussian War, other countries swiftly began designing Kriegsspiel-like wargames for their own armies.

<i>Bots!!</i>

Bots!! is a massively multiplayer online game (MMO) created by Acclaim Games as the company's launch title and most popular game, with the theme of robots fighting against computer viruses. Players choose from one of three basic BOTS and level up their character through gameplay and buying items with virtual credits called gigas. Three game modes exist for the game: Sector Battle, Player versus Player, and Base Battle. A Korean version of the game, called BOUT!!, also existed and was nearly identical, but received new updates earlier than the American version. BOUT!! was intended to be originally released on Xbox, but ended up being solely released on PC.

Cheating in video games involves a video game player using various methods to create an advantage beyond normal gameplay, in order to make the game easier. Cheats may be activated from within the game itself, or created by third-party software or hardware. They can also be realized by exploiting software bugs; this may or may not be considered cheating based on whether the bug is considered common knowledge.

The history of operating systems running on IBM mainframes is a notable chapter of history of mainframe operating systems, because of IBM's long-standing position as the world's largest hardware supplier of mainframe computers.

Emulator Hardware or software that enables one computer system to behave like another computer system

In computing, an emulator is hardware or software that enables one computer system to behave like another computer system. An emulator typically enables the host system to run software or use peripheral devices designed for the guest system. Emulation refers to the ability of a computer program in an electronic device to emulate another program or device.

References