Please send site comments to our Webmaster.
Stories from the Maze War 30 Year Retrospective
Jim Guyton's Story of Maze at Xerox (Alto and Star)
Jim Guyton's Story of Maze at Xerox (Alto and Star)In 1976 I was working as an IBM 370 systems programmer at RAND when several of my coworkers left to go work on some odd sounding "office automation" project at Xerox. I interviewed with Xerox at about the same time, but wound up working at RAND for several more months before eventually following them to Xerox. The "office automation" project was STAR, and all the initial development was done on Xerox Altos with 3-megabit ethernets.
While I was still at RAND, a friend of mine -- Mike Wahrman -- visited some friends of his at MIT and played a game there called Mazewar that ran on their PDP-10 and Imlac computers.
The Imlac PDS-1, was the closest thing to a "workstation" in those days. It was a vector display-list graphics station that was fully programmable. The general purpose CPU had an instruction set very similar to a PDP-8, but it shared memory with a graphics processor that continuously looped over commands in a display-list to refresh what was on the screen. Imlacs typically had 8K-16K bytes of memory for the entire system, and communicated with a host over a normal terminal (RS232) line.
Mike came back very enthusiastic about how much fun the game was to play, and had some ideas about how to improve the playability of the game.
By the time I eventually went to work for Xerox, Mike and I were well aware of the wonderful features of the Xerox Alto and 3-mbit ethernet, which seemed like they were designed as being *perfect* for Mazewar!
Mike (still at RAND) was able to get a copy of the PDP-10 and Imlac source from his friends, and he and I had several late-night design sessions working on the packet-based protocol for the game and the initial 3D graphics rendering code. Mike had recently completed a 3D graphics course at UCLA and was very familar with all the (new to me) matrix math needed to render the views.
I had done a lot of Imlac programming when I was in college, and Mike and I had both worked a fair amount on the PDP-10s on the Arpanet, so we weren't daunted by the prospect of porting the game to something else.
Over the next year I spent a lot of nights working on getting Mazewar running. In particular, performance was an enormous problem. Unlike the Imlac's vector display list, the Alto had a bitmap raster display. The general purpose 3D routines were fully functional, but much too slow.
Then one day Mike and I noticed that if we placed the player in the very center of a cell, then all the lines would be vertical, horizontal or a relatively simple 45 degrees. And the maze was small enough that we could precompute the visible vectors at each position/view combination and replace all the 3D routines with simple table lookups. After adding double-buffering to hide the work of the screen updates, the display took on the feel of really being inside the maze.
The real-time requirements of the game spawned a novel communcations protocol. The PUP-based protocols of 3mbit ethernet supported broadcast, unicast and inter-networking, but multicast was still off in the future. We really didn't want to use broadcast, so we wound up with a peer-to-peer protocol where each player's computer informed all the others of any change in their own state (moving, firing, dying, etc.). And rather than using a reliable transport (with all the complexity that implies), we decided "it's just a game" and made every packet contain the complete state of that player. If a packet happened to be dropped, it just wasn't a big deal as an updated packet with an even newer state would be coming along shortly.
I wrote the majority of the MESA code, but had the help of several others at Xerox. I'll no doubt omit someone, but I remember Steven Hayes (my officemate at the time) working on it a lot, and Bill Verplank did the artwork of the floating eyeballs. Jim Sandman (one of the MESA compiler guys) optimized some of the line drawing code, and he and Bruce Malasky worked to turn the game into something that could be "net booted" from the Data General Nova's that were used as boot servers and PUP gateways for the Altos.
While I kept the listing of the PDP-10/Imlac version of the game, I think the only things we retained were the basic idea and the layout of the maze itself. The rest of the Alto version was a total rewrite and redesign for multiple workstations over a LAN.
When the game was finally stable enough to let everyone play we installed it on the local netboot server. The very next day I got a polite visit from the guy that kept our Altos working. It seems they were completely flooded with trouble calls to repair keysets.
Every Alto was distributed with a mouse and keyset. The keyset was a small 5 paddle piano-style input device that was designed for 'cording' keystrokes into an editor. The basic idea was that you'd keep one hand on the mouse and the other on the keyset and only very rarely move your hands to the old fashioned QWERTY keyboard. This was just about the least popular feature of the Alto, and basically all of the keysets were simply stored under the display of the Alto (which had a nice stand with room underneath for storing the keyboard, mouse, and keyset). Being moderately fragile, most keysets were pretty seriously out of adjustment -- with one or more of their keys no longer functional. But Mazewar used the keyset keys to move around the maze, and when it showed up on the boot-servers everyone dusted off their keysets and flooded the repair folks with requests!
The very next version had a set of motion keys assigned on the QWERTY keyboard as well as the keyset.
Other than running and shooting at the other players, there wasn't any inter-player communication. But we'd often have an entire hallway of folks playing mazewar [after hours of course], and you could often get a little extra feedback by paying close attention to the screams.
Within a few weeks it was installed at Xerox Alto sites all over the US. I kept up with bug-fixes and new versions for another six months or so, and at least one version made it out to MIT, Stanford and CMU (which were basically the only sites outside of Xerox to have Altos and 3mbit ethernet).
I was the best Mazewar player at Xerox for about 10 minutes after it was released. It was pretty weird watching people flying down the hallways faster than I could ever hope to toggle my keys. And I wish I knew who the first player was that thought of running around backwards (to fool folks that would just get a glimpse, try and follow, but instead step in front of them and get blasted).
There were versions where I could cheat and see where everyone in the game was located, and where I could move through walls, but that wasn't much fun [other than for debugging]. There was a real problem (never solved) in keeping track of where the games were. It was easy to join a local game (local to your LAN), but if you wanted to play and the only active game in the "Xerox internet" was elsewhere it was darn hard to find it.
I stayed at Xerox for another year, but soon left to return to RAND. The STAR project was simply stressing my sanity too much and an excellent opportunity opened up at RAND. Within another year, STAR was announced, and the MESA source code to the game had leaked out. I never released it ... at the time I had visions of turning it into a product, but never quite got around to it.
I haven't tried to keep track, but all of the Mazewar versions I've seen since then are direct descendants of the Alto version. In addition to the obvious things, there's a subtle bug in the maze-viewing code that I've seen reproduced in many different versions :-)
Many years after leaving Xerox, I was relaxing after a tough day skiing at Alta (no, not Alto) and was chatting with a nice fellow and his son in the jacuzzi. Turned out he was Bert Sutherland, previously the head of the System Sciences Lab at Xerox PARC. He related to me the tale of how he'd watched someone at PARC playing this neat game and being impressed by the performance of the interaction. Then he learned that the other players in the game were in El Segundo and that the game was being played over the 9600 baud gateway and was seriously blown away.
Anyway, it was a lot of fun and I still run into people who got a big kick out of playing the game when they were in college. As far as I know it was the first real-time network based multi-user game. There was a multi-person 'trek' game for the Alto that came a couple of years later, but that was it for the Alto as far as I know.
I'm not sure what most of my fellow Mazewar authors are doing these days, but I know that Mike Wahrman somehow avoided ever working for Xerox, and instead went to Hollywood and (among other credits) earned a Technical Achievement Oscar in 1997 for his work in computer graphics.
Know any more about Maze? Contact us!