My involvement with the PLATO system covered the entire period that I was a graduate student at the University of Illinois. From 1973 to 1980, I worked as a research assistant and occasionally as a teaching assistant in the Medical Computing Lab at the School of Basic Medical Sciences in Urbana. While I was there, I did several things.
But first: Why are so many of the screen shots shown here in orange on a black background? The answer is simple: Through the 1970's, the dominant terminal used on the PLATO system was the Magnavox Plato IV student terminal. In an era when all other computer display screens used CRTs, this display used a neon-discharge plasma panel. Yes, this is exactly the same technology used in plasma flat-screen TV screens today, except without the phosphors, so there was only one color, orange.
My MS thesis, Run Time Support for the TUTOR Language on a Small Computer System (1976) documents the implementation of PLATO's TUTOR programming language on the Modcomp IV minicomputer. This includes one of the first descriptions of TUTOR's arcane semantics from an outsider's perspective.
The typography of this is rather poor by modern standards. It was printed on a Dataproducts chain printer attached to the Modcomp IV. I had to write both the text editor and the text formatting program needed to print it.
A year later, in May 1977, I revised the thesis slightly, adding an additional 7 pages, for release as Technical Report UIUCDCS-R-77-868 UILU-ENG 77 1719. This is presumably still available from various tech report repositories. I have not found an unbound copy in my files to feed through a scanner.
This thesis documents what became GIST TUTOR, after Global
Information Systems Technology was founded in 1980 to market
the Modcomp PLATO/TUTOR clone. GIST originally called their
clone Simpler, but later, after rewriting my interpreter in C,
they called it ACCORD.
The PLATO system was intended for computer-based instruction, but it was incredibly appealing to develop games on it. Some of those games were instructional. Airfight, the first multi-user 3-d graphical flight simulator, really did teach flying, even though the planes were all jet fighters and you could load them as you desired with fuel or ammunition up to the plane's weight limit. (There are many web pages that give pocket histories of the early development of computer games on PLATO. See, for example, Chapter 6 of The Complete Wargames Handbook.)
The relationship between the system staff and game developers on PLATO was a mixed one. On the one hand, games were a great test of the system. On the other hand, many games were resource hogs. PLATO was designed as a timesharing system. The machine could execute one MIPS (Million Instructions Per Second), this made it a supercomputer, by the terms of the early 1970's. If they wanted to support 200 users, the average user load had to be under 5 TIPS (Thousand Instructions per Second). Most games, particularly first-person shooters like Airfight, ran at well over 10 TIPS.
My job developing a TUTOR implementation for the Modcomp IV computer required that I explore the TUTOR language thoroughly, and it was natural for me to try writing a game. I set out to design a game that had the appeal of an arcade game, and along the way, I decided to make it run in under 5 TIPS.
The Result was HiVolts, the Game of Electric Fences, with the title screen as shown below. My artwork for the title survived unchanged through years of evolutionary development by later authors who worked on the game. The core of the game is not entirely original. Greg Chesson had recently demonstrated Unix on campus -- it is noteworthy that Illinois was the first licensed Unix site outside of Bell Labs; UNIX license number 1 was granted to Illinois in 1974. One of the things Greg demonstrated in passing was the suite of games that came with Unix. My memory of seeing him briefly demonstrte one of those games was the root inspiration for the game I wrote.
This game has been preserved as hivolts on cyber1.org, from which the following screen shot was taken in 2008.
The preservation of HiVolts was not trivial. The credits in the title page are explained by this quote from Dirk Pellett: "The version of the Hi-Volts source I had on Accord (written in GIST's version of TUTOR) ... declares you, Douglas Jones, as the sole source of the game. I used that source to back-translate to PLATO TUTOR so that it would run on cyber1.org."
In short, each round of play in HiVolts involves dropping the player onto a random spot on a randomly created game board, a field surrounded by electric fences and with fences scattered here and there on the field. The field also contains semi-intelligent mhos (inverse ohms, a lame in-joke) that are attracted to the player and will eat the player if they come too close. The player can survive by manuvering in such a way that the mhos blunder into electric fences. You win the round if you survive without being consumed or electrocuted until all of the mhos have been electrocuted.
Josh Paley did a decent job of reverse engineering the game I finally produced. His specificaiton for the game is available on the web at http://charlotte.pausd.org/~jpaley/AP_CS/hivolts/.
I believe one of the later authors changed the graphics for the game itself, as illustrated above, replacing the alphabetic symbols I had used with graphics. The original version would have presented the above screen something like this:
# # # # # # # # # # # # # * # # * * # # # # # # # * # # # * # # # * # # * # # * # * # # * # # # # # * # # # # # O # # # * # # # # # # # # # # # # # #
# -- An electric fence
* -- A mho, an adversary
O -- The player
The appeal of HiVolts was somewhat of a mystery to me. It isn't a first person shooter where fast twitch reflexes lead to winning. Instead, the game is dominated by carefully and thoughtfully running away from the monsters in the maze. An experienced player has about even odds of surviving one round of play. Each round of the game was short enough that many game sessions involved multiple rounds, and as I realized this, I made the game compute the player's win-loss ratio for the session. Today, we would describe HiVolts as a casual game, and it is fair to say that it was one of the first casual games to achieve success in the PLATO world.
Flint Pellett, one of the authors of the legendary PLATO game DND, one of the first computerized spinoffs of Dungeons and Dragons, worked with me in the Medical Computing Lab. He said that his brother Dirk was interested in HiVolts, so when I moved on to other things, I passed the game to them. The game had already attracted a following, and this grew after Dirk added a record book to the game, so that the game computed (and displayed) a list of the best players, ordered by the win-loss ratios they had achieved.
Apparently, at some point after my involvement with HiVolts ended, someone else modified it. Dirk Pellett remembers "a version of Hi-Volts where the 'mhos' were lightning bolts instead of frowny-faces, there were double-lightning-bolts that could move twice, and the fences were NOT destroyed when a mho walked into it, all of which are different from the version ... re-created on cyber1." This alternative version doesn't ring any bells with me -- the double-mhos idea is particularly alien to my memory, so obviously, the game evolved on PLATO. I'm fairly sure I'd have given a copy of the source to anyone who asked for it back then. Computer games had yet to become important items of commerce at the time.
When Pac-Man came out, I wondered if the developer had ever seen the game of Electric Fences. The relationship between the Pac-Man player and the ghosts of that game has some similarity to the relationship between the player and the mhos of Electric Fences. Pac-Man, however has a static maze, not the random maze of Electric Fences, and Electric Fences has nothing analogous to the "food" dots that Pac-Man consumes.
Some students freeze up the first time they find themself in front of
a computer keyboard. We had this problem with medical students at
the University of Illinois School of Basic Medical Sciences, so in August,
1979, the Medical Computing Lab at the school produced a guide
for students on the use of computer assisted instruction using PLATO.
I drew this illustration for the guide, showing what the PLATO terminal
does not contain. It's a decent drawing of the Magnavox PLATO IV student
terminal. That's a flat plasma display panel in front, The bulk of the
volume is occupied by the folded light path of the rear-projection
microfiche reader in the terminal. The 6-inch wide margin around the
screen is because of the electronics around the edge of the flat panel.
Plato supported user-defined character sets. I knew a bit of calligraphy, so I decided to go out on a limb and try creating a character set that was emphatically not the usual computer-style character set. I called it gothic, not after the modern font, but in the older sense of the word, because it was very much the barbaric font, very unlike the humanist fonts from which most modern typography springs.
The writable character set of the Plato terminal had only room for so-many capitals, so I put in only 3, made of 6 characters each, where characters on Plato were 8 by 16 pixels.
You'll notice that the 8 by 16 matrix forced the M to be cramped side to side, and it forced the P to slip up a pixel or two. Those defects were fixed in the later scalable and rotatable lineset version of the character set.
The output of the instructional lesson I wrote on the use of the Gothic charset and lineset is available, as it existed around 1974 or 1975. The content of that lesson, in addition to explaining the use of the character sets, also makes it clear that this character set had already made it into the standard character-set library of PLATO by the time I wrote this lesson, but note also that the game of Hangman is not mentioned. Unfortunately, no machine-readable copy of this material appears to survive.
The output mentioned above was printed on paper using a PLATO graphics printer. This was a remarkable impact printer using a "wobble bar" that scanned a horizontal row of on the order of 8 print hammers rapidly back and forth across the page, allowing it to print each of the 512 lines of the screen in under a minute. I do remember this printer being loud. Craig Burson wrote on Nov. 5, 2010 to remind me that Art Carroll of the Plato Project built the prototype of this printer using an OEM shuttle-bar print mechanism (was it from Genicom?). It was later marketed by CDC at the 726-10 printer. We had one in the school of Basic Medical Sciences in Urbana.
The gothic character set was used in the educational game of Hangman (preserved as 0hangman on cyber1.org) to support a rather silly back story explaining why a man was being hung for not being able to spell. (Hangman is preserved as 0hangman on cyber1.org, from which the above screen shot was taken.) to support a rather silly back story explaining why a man was being hung Over a decade or so, I earned about the price of a pizza every year for this contribution to Plato, through the micropayment scheme Plato supported. Hangman is copyrighted 1976 and credits me as the designer of the typeface.
After I designed the Gothic lineset, someone asked me if I couldn't do something more useful -- design a legible character set that people would actually want to use. So, I designed a classical Roman lineset, with decent proportional spacing. The geometry is still basically octagonal, not round, but in the smaller sizes, it looks pretty good, and in the larger sizes, it is far more ligible than the standard PLATO dot matrix fonts.
The illustration here is a screen shot from cyber1.org, where my font is preserved in lesson linesets. I found two printed screenshots in my files that I made using the old PLATO graphics printer some time in the late 1970's. The paper is a bit yellow, but the scanner fixed that. If you zoom in on the PDF, you can see the impact marks of the print hammer for each pixel of the display. The second page of the old screenshot is a manual for the using the lineset.
One trick I used was to define backspace (shift space on PLATO) to be just the right size to kern lower case letters under upper case letters such as Y and T, so typing T(backspace)o or Y(backspace)es would print To or Yes with appropriate kerning.