Space Travel (video game)
|Platform(s)||Multics, GECOS, PDP-7|
Space Travel is an early video game developed by Ken Thompson in 1969 that simulates travel in the Solar System. The player flies their ship around a two-dimensional scale model of the Solar System with no objectives other than to attempt to land on various planets and moons. The player can move and turn the ship, and adjust the overall speed by adjusting the scale of the simulation. The ship is affected by the single strongest gravitational pull of the astronomical bodies.
The game was developed at Bell Labs before the rise of the commercial video game industry in the early history of video games, and was ported during 1969 from the Multics operating system to the GECOS operating system on the GE 635 computer, and then to the PDP-7 computer. As a part of porting the game to the PDP-7, Thompson developed his own operating system, which later formed the core of the Unix operating system. Space Travel never spread beyond Bell Labs or had an effect on future games, leaving its primary legacy as part of the original push for the development of Unix.
Space Travel is a spaceflight simulation video game, presented in a two-dimensional top-down view, with monochrome graphics consisting of white lines on a black background. In it, the player controls a spaceship as it flies through a representation of the Solar System. The game has no specific objectives, other than to attempt to land on the various planets and moons of the system. The planets and most of the moons in the Solar System are represented to scale both in size and distance from each other, though the orbits are simplified to be circles. To land on a body, the player's ship must cross the line representing the surface while moving at a low enough speed. The player is able to control the ship to go forwards and backwards and turn. The ship moves at a constant level of acceleration relative to the scale of the screen, which the player can control; scaling the screen up high enough allows the player to travel across the Solar System in seconds, though they risk overshooting their target and becoming unable to find the Solar System again, and scaling down allows the player to be moving slowly enough to land. The ship is always in the center of the screen, facing the top; turning the ship right or left therefore rotates the Solar System around the ship instead.
Each planet or moon has a mass, and therefore a gravitational pull, though they do not affect one another and only the single strongest pull affects the player's ship. This sometimes results in odd behavior; for example, the gravitational effect of Mars is much stronger than that of its moon Phobos. This means that a player attempting to land on Phobos needs to allow the ship to fall below the moon's surface until it is close enough to Phobos's center that Phobos's pull becomes the dominant force, at which point the ship snaps back to be landed on the surface. The name of the planet or moon with the current strongest pull is displayed on the screen. Players are able to edit the program to change the conditions; popular variations by the original players were increasing the gravity level and thus the difficulty, or an adjustment to the coordinate display system so that, rather than the ship staying in the center of the screen and the planets moving relative to it, the current dominant planet would always be at the bottom of the screen, with the ship moving relative to it.
In 1969, programmer Ken Thompson worked for Bell Labs on the Multics operating system on a GE 645 mainframe. During his work, Thompson developed Space Travel on the system. Multics was a collaborative project between several institutions for an interactive, multi-user operating system that provided convenient access for programming. It was also growing very large and complex, and Bell Labs decided to exit the project in 1969.
Thompson then ported the Space Travel code to Fortran so that it could run on the GECOS operating system already present on the GE 645. Thompson and other Bell Labs employees, such as Ravi Sethi and Dennis Ritchie, played the game on the system. GECOS, however, used an "interactive batch" model, meaning that while several computer terminals were attached to the central computer, each terminal's program jobs had to be submitted in a queue, resulting in long pauses in the game while the GE 645 worked on jobs for other terminals. Additionally, the system required the user to type in commands rather than press buttons, resulting in the ship being difficult to control.
That same year Bell's internal computer departments were split, with the teams working on development put into a new computing research department, while the operation of the internal computing resources, including the GE machines, moved to the computing services department. As a result, computing services tracked the computer usage internally with a cost system, meaning that each session of playing the game cost US$50 to US$75 on the internal balance sheet.
Thompson learned that a neighboring department had an older, little-used PDP-7 minicomputer. This was equipped with a graphics terminal which gave it excellent graphics capabilities for the time. As this machine would solve the problems with playing the game, he ported Space Travel to this platform using a cross compiler on the GECOS system, writing the resulting machine code to punch tape and then loading it into the PDP-7. Thompson did not use any of the provided PDP-7 code, writing everything from scratch, including a floating point library and other low-level tools.
The tedium of moving the code between the two machines prompted Thompson to design his own simple file system based on some chalkboard ideas by Dennis Ritchie and Rudd Canaday, rooted in their experience with the Multics file system. This, in turn, demanded some way to start the process running once loaded. More features were continually added to print, edit, delete and move files. Before long, it had become a simple operating system of its own. Thompson then wrote an assembler for the PDP-7 to avoid using the GECOS computer entirely.
While Thompson continued working on the PDP-7, the original Multics team had concluded that as Bell had exited the Multics program, there was no reason for the company to continue operating the expensive GE 645, and they believed it would be removed within a few months. They repeatedly asked management for a new machine to continue their operating system work. This ultimately culminated in a lengthy proposal to buy some parts and rent others of DEC's new PDP-10 system, then US$120,000, but this too was rejected. Ritchie later surmised that the company had just exited one operating system project and was in no hurry to spend money to start another.
In 1970, however, DEC introduced the PDP-11, which cost $65,000 and could be operated directly by the team without support from the computing services department. The team also changed their proposal; the machine was not being requested to develop an operating system, but a system for "editing and formatting text", essentially a word processor. Management saw merit in this proposal and the machine was ordered in May 1970. By this point, the PDP-7 was already considered completely obsolete. The PDP-11 arrived in the summer, without a hard drive, and the entire team began porting the rudimentary operating system from the PDP-7 to the new machine. During this time it gained the slash-separated hierarchical directories and other features of the Unix system. When the hard drive arrived in December the rest of the basic features were added. The team was now committed to the new system, and Brian Kernighan gave it the name Unix, a "somewhat treacherous pun" on Multics.
Space Travel was one of the early mainframe games developed before the rise of the commercial video game industry in the early history of video games, and was never distributed beyond its initial locations. As a result, it had no effect on future video games, and its primary legacy is that of sparking the creation of Unix.
- Ritchie, Dennis M. (2001). "Space Travel: Exploring the solar system and the PDP-7". Bell Labs. Archived from the original on 2015-12-26. Retrieved 2016-02-04.
- Ritchie, Dennis M. (October 1984). "The Evolution of the Unix Time-sharing System". Bell Labs. Archived from the original on 2015-06-11. Retrieved 2022-07-17.
- Fiedler, David (August 1983). "The History of Unix". Byte. Vol. 8, no. 8. McGraw-Hill. p. 188. ISSN 0360-5280. Retrieved 2016-02-04.
- Ritchie, Dennis M. "Yes, A video game contributed to Unix Development". Harvard University. Archived from the original on 2015-12-10. Retrieved 2016-02-04.
- Abzug, Charles (2003-12-26). Bidgoli, Hossein (ed.). The Internet Encyclopedia, Volume 3. John Wiley & Sons. pp. 495–496. ISBN 978-0-471-22203-3. Archived from the original on 2022-07-21. Retrieved 2021-12-04.
- Raymond, Eric S. (2003-09-23). The Art of Unix Programming. Addison-Wesley. pp. 30–31. ISBN 978-0-13-246588-5.
- Milian, Mark; Chan, Marcus (2012-11-15). "'Pong' Turns 40, But It's Not the Oldest Video Game". Bloomberg. Archived from the original on 2015-02-16. Retrieved 2016-02-04.