Maze War
Maze, later expanded and renamed to Maze War, is a 3D networked first-person shooter originally developed by Steve Colley, Greg Thompson, and Howard Palmer for the Imlac PDS-1 computer. It was largely developed between the summer of 1972 and fall of 1973, at which point it included shooter elements and soon after was playable over ARPANET between multiple universities. It is considered the earliest first-person shooter; ambiguity over its development timeline has led it to be considered, along with Spasim, to be one of the "joint ancestors" of the genre.
Although the first-person shooter genre did not crystallize for many years, Maze War influenced first-person games in other genres, particularly RPGs. The Maze War style view was first adopted by Moria in 1975, an early RPG on the PLATO network, and further popularized by Ultima and Wizardry, eventually appearing in bitmapped form in games like Dungeon Master, Phantasy Star, Eye of the Beholder and countless others.
Gameplay is simple by later standards. Players wander around a maze, being capable of moving backward or forwards, turning right or left in 90-degree increments, and peeking around corners through doorways. The game also uses simple tile-based movement, where the player moves from square to square. Other players are seen as their names, figures or later eyeballs in the Xerox version. When a player sees another player, they can shoot or otherwise negatively affect them. Players gain points for shooting other players, and lose them for being shot. Some versions had a cheat mode where the player running the server could see the other players' positions on the map. The original MIT Imlac version had cheat keys to knock out a wall in the player's local Imlac maze copy, which made it possible to walk through walls as seen by other players. Occasionally in later versions, a duck also appears in the passage.
Innovations
Features either invented for Maze War or disseminated by it include:- First-person 3-D perspective. Players saw the playing field as if they themselves were walking around in it, with the maze walls rendered in one point perspective. This makes the game one of the first, if not the first first-person shooter. It also could be considered a very early virtual reality system.
- Avatars. Players were represented to each other as eyeballs. While some earlier games represented players as spacecraft or as dots, this was probably the first computer game to represent players as organic beings.
- Player's position depicted on level map. Representation of a player's position on a playing field map. Unlike the playing field of a side-view or second-person perspective, this is only used for position reference as opposed to being the primary depiction of play. It does not normally depict opponents. The combination of a first-person view and a top-down, second-person view has been used in many games since.
- Level editor. A program was written to edit the playing field design.
- Network play. Probably the first game ever to be played between two peer-to-peer computers, as opposed to earlier multiplayer games which were generally based on a minicomputer or mainframe with players using either terminals or specialized controls, in 1973.
- Client-server networked play. An updated version may well have been the first client-server game, with workstations running the client connecting to a mainframe running a server program. This version could be played across the ARPANET, in 1977.
- Observer mode. In the 1974 and 1977 versions, a graphics terminal could be used by observers to watch the game in progress without participating.
- Internet play. While not the first game to feature this, it certainly was a very early example running over the early Arpanet.
- Modifying clients in order to cheat at the game.
- Encrypting source code to prevent cheating.
Versions
1973, Imlacs at NASA
It was originally written by Steve Colley in 1972–1973 on the Imlac PDS-1's at the NASA Ames Research Center in California. He had written a program for portraying and navigating mazes from a first-person perspective. The maze was depicted in memory with a 16 by 16 bit array. Colley, together with Greg Thompson, and Howard Palmer developed the MazeWars program at NASA in Jim Hart's Computation Division 2nd floor lab. Colley writes:1973, Imlacs at MIT
The original Imlac networked version was limited to two players, with the Imlacs directly cabled to each other. In the fall of 1973, Greg Thompson brought the game with him when he went away to college at Massachusetts Institute of Technology. There at J. C. R. Licklider's MIT Project MAC Dynamic Modelling Laboratory, Greg with Dave Lebling expanded Maze Wars into a full multiplayer game that could operate between Imlacs over the early ARPANET. According to Lebling, the version of the game Thompson brought did not have shooting in it yet: "you wandered around in a maze, and that was it." In addition to the network connectivity, they added the shooting, and Lebling wrote a maze editor where players could create mazes with a text file of '1's for walls and '0's for spaces. As described in the history of interactive computing book The Dream Machine:The clients ran on Imlacs which had 56 kbit/s serial connections, allowing them to communicate with a PDP-10 computer running MIT's Incompatible Timesharing System. A server program on the mainframe coordinated up to eight Imlac clients playing against each other. By using terminal servers, Imlacs at other colleges that were connected to the ARPANET could connect to the server at MIT and play against players located across the United States. The server program would also implement robot players and drive a playing monitor that would display a top-down map of the maze showing the locations of human and robotic players on an Evans & Sutherland LDS-1 Line Drawing System. Later a level editor was written so that different playing fields could have different designs.
1976, TTL at MIT
For a class in the fall of 1976, Greg Thompson, Mark Horowitz and George Woltman built a "hardware" version of Maze entirely from 7400 series TTL circuits, essentially creating a Maze computer with 256 16-bit instructions and 256 bytes of RAM, dedicated solely to playing Maze for up to 4 human players and 4 robots. Arcade games such as Pong had used this approach before. The TTL version of Maze used Tektronix oscilloscopes to display vector graphics. This was natural, since the Imlacs also used vector displays. This version introduced a full third dimension, by having a four-level maze with players able to climb up and down between levels. Robots players were also implemented in the firmware. Their skill level was controlled by simply adjusting the clock rate of the system. The game was so popular that even though it had been built as a MIT 6.111/6.112 class project it was kept assembled and operational for over a year.1977, Xerox
In 1977, Jim Guyton, a staff member at Xerox's Palo Alto Research Center rewrote Mazewar for the Xerox Alto and other Xerox Star machines. This was the first raster display version of Mazewar. It made use of the Alto's Ethernet network, using the Xerox PUP network protocol. The Data General servers used on the network were capable of gatewaying games to remote office locations, allowing people at several Xerox sites to play against each other, making Mazewar capable of being played in four different configurations: peer to peer with two Imlacs, client-server with Imlacs and a PDP-10, in pure hardware, and over Ethernet and PUP.Several programmers at PARC cheated by modifying the code so that they could see the positions of other players on the playing field map. This upset the authors enough that the source code was subsequently stored in an encrypted form, the only program on the system to receive this protection. This is interesting in light of the fact that this laboratory housed many of the most important programming developments of the time, including the first graphical user interfaces.
1986, Digital Equipment Corporation
In 1982, Jim Guyton showed Christopher Kantarjiev Mazewar at RAND.Kent later interned at Digital Equipment Corporation's Western Research Lab in Palo Alto during his Ph.D. studies. Several former PARC employees worked at WRL, and one of them, Gene McDaniel, gave Kent a hard copy of the Mesa source code listing from the Xerox version of Maze, and the bitmap file that is used for the display.
The X Window System had been newly released as a result of collaborative efforts between DEC and MIT. Kent wrote a networked version of Mazewar, which he released in December 1986. This version used UDP port 1111, and could be played by Unix workstations running X Window across the Internet. This was probably the second game which directly used TCP/IP, and the first which could be played across the Internet.
1992, Oracle SQL*Net
Using Kent's code and earlier code from MIT, Jack Haverty and others at Oracle created a version of Maze running over Oracle SQL*Net over TCP/IP, Novell SPX/IPX, DECnet, and Banyan Vines at Fall Interop 92 on a number of workstations, including Unix machines from Sun, IBM, and SGI, as well as DEC VMS workstations and MS-Windows. Attendees could play against each other at stations placed throughout the Moscone Convention Center in San Francisco.Other versions
- 1982, Snipes by SuperSet Software. This used semaphores in a shared file which resided on a network drive. It was written as a demonstration program for SuperSet's local area network system, which became Novell NetWare.
- 1987, MacroMind MazeWars+ for the Apple Macintosh computer. Fully 3D and could be played over AppleTalk networks. It was distributed by Apple with new Macintosh computers for some period of time. Later the 1993 title Super Maze Wars by the Callisto Corporation was distributed with some Macintosh computers.
- A version has been written for NeXT computers
- A version has been written for Palm OS
- A version has been written for iPhone and iPod Touch
Retrospective
Maze alumni
- Steve Colley subsequently worked on very early versions of Mars rover technology for NASA, and found that his 3D perspective work on Maze Wars was useful for this project.
- Greg Thompson subsequently was CTO at nCUBE, a Sr. Director at Cisco, CTO for Multimedia at Huawei, and is currently a mentor at the i-GATE Innovation Hub in Livermore CA.
- Howard Palmer later became a Senior Engineer at Netscape, Chief Architect at Resonate, and is currently a software developer at Stanford University.
- Dave Lebling went on to form Infocom in 1979, creating the space of text based interactive fiction games like Zork and Enchanter.
- Mark Horowitz became a founder of Rambus, Chair of the EE department at Stanford University, and is currently a professor at Stanford.
- George Woltman subsequently was a programmer at Data General and became famous as the founder of the Great Internet Mersenne Prime Search and author of Prime95 and mprime.