Timeline and history of the development of the online multi-player game, PLATO Empire. Notes written in 2008 by John Daleske with comments by Gary Fritz.
Empire 2 - Tactical
Summary of Empire 2 Features:
- A tactical game of
- Eight (8) teams of
- a maximum of fifty ships
- each shooting torpedoes
- in an 8x8 grid of sectors
- of 512x512 screen fulls.
It seemed that the ships needed more involvement. In Empire 1 they just automatically lumbered from one planet to another carrying the goods for trade. Each player was, in essence, managing affairs from on their own planet and didn't even have the option of moving themselves.
The single screen on Empire 1 felt too confining as well.
In late August of 1973 I redesigned Empire.
Change in Direction - Tactical
By 'tactical' I mean controlling your spaceship, flying on it, shooting from it. With a focus on the 2D virtual shooter (looking "down" from above the flat-land plane of space) action format, I scrapped the strategic command aspects. The players no longer concerned themselves with building an economy, ensuring fuel supplies, managing populations, attempting to take over other planets. They just flew around in 2D space and shot at each other.
It was a blast.
Empire II expanded from a single screen to a 'space' of 8x8 grid of sectors with each sector being a screen full.
When playing, you saw only the sector in which your ship resided, torpedoes and ships could move into the same sector at any time.
Your ship moved by rules of physics, accelerating, decelerating, and rotating. Once you started the ship moving, it continued at that rate until changed. It followed a modified set of real physics rules. One of those modifications was that if you reached an edge of space your ship's location wrapped around to the corresponding opposite edge and continued moving. Not exactly real.
To stop, you needed to rotate your ship in that direction opposite to your motion then fire your thruster.
If you fired a torpedo it moved in the direction you aimed and included the vectors of direction that you were moving. You could fire a volley of torpedoes which would travel into the next sector hoping to hit something there.
The game proved quite popular. I continued to optimize it, taking suggestions from players. The tough apsect of this development was that I was making changes to the live source code of the players playing the game at that time. If I made an error or added a bug, it could cause the game to end until I could figure out the fix. Add on top of this that I had no printouts. This required me to memorize the entire program; which block of source a section of code resided in, which lines that section of code were in that block.
Implementing the Game
The PLATO display screen was 512x512 pixels. This takes 9 bits to store the values 0-511 since 29 is 512. See power of two for a detailed description.
Empire II expanded from a single screen to a 'space' of 8x8 grid of sectors. This takes only 3 bits (23 is 8) to store, so it would only take 12 bits each for X and Y coordinates. I was not so worried about packing data into memory at this point in the development, but this is useful background for later.
The coordinates of the spaceships and torpedoes, user information, and other data needed to coordinate between the timesharing terminals was kept in common. Since the system enforced that only one user could access common at any time, interactions between the running instances of the game were simplified. If one ship's location was updated to a new position, everyone else's program could know that location and determine whether they would be able to see it or not.
A Matter of Space
PLATO provided up to 1,500 words of common memory and 150 words of individual user memory (each user's instance could access their own 150 words of 'student' memory and the 1500 words of common memory) and that is all.
During the first years a lesson (program space) could hold a maximum of six "parts", each part having seven (7) blocks of three hundred twenty (320) 60-bit words. The first block was required overhead to keep the directory information. That's 13,120 words or 96K bytes.
That's not a lot of space to develop a multi-player game in, let alone one as complex as Empire was becoming.
On the Control Data Cyber computers a word was sixty (60) bits, which could represent huge numbers. Most of the memory needed by the game was only the bottom eleven bits to represent an x or y coordinate. This greatly limited the number of objects that could be represented. Somehow, I had to squeeze the number of ships and the number of torpedoes that each ship could fire and the other coordinating paramters into 1,500 words. I decided on fifty (50) ships, one player to a ship, and each ship could fire no more than three torpedoes. This would leave some room for future growth. Players could align themselves with one of eight teams.
Character Set
Another limiting factor was the character set; we had a fixed number of icons (8x16 pixel) characters. PLATO ingeniously provided for an alternate character set that could be downloaded to the terminal memory of each user in a particular program. This meant that those objects could be displayed quickly and any where on the screen.
For each ship I determined that eight different directions would suffice in showing the general direction in which it was headed. Characters were 8x16 pixels, so if a ship were only eight pixels wide and was heading up or down it would only take one character position; if headed any of the other directions, it would take two character positions. I was able to fit four different spaceship types into the charset.
To see what the ships looked like go to The Plot Thickens on the next page.
At that early time there was no character set editor. One had to draw out a character on a grid of paper then convert the bit locations into octal values to then be placed into a character set location. A sample PLATO TUTOR command would look as follows:
char object1 o000000,o000000,o003401,o004377 o004000,o004377,o003401,o000000
The bit-values of these octal numbers indicate whether the pixel is on or off. Scary, huh?
PLATO and Empire Culture
PLATO had an established culture of openness and supporting creativity and interaction. New communication features improved how we interacted remotely.
For example, I worked with Silas Warner on the first version of Empire, to get the lesson space and to get his feedback, all without seeing him. We spoke once on the phone. Now today that may not seem at all remarkable, since we use the tools of the Internet to interact; remember, I was still having to use punched cards and tape for my Computer Science class work (though I quickly moved all of my projects to PLATO). This communication is how I later met my wife in early 1977.
I feel this safeness of remote communication helped those of us more shy people find others we could talk with.
Breaking and Entering
February 5, 1973--This is a letter of authorization for John Daleske giving him permission to work in Room 206B, the PLATO Terminal, after the 11:00 p.m. closing hour for as long as necessary and whenever necessary.
-- Trevor G. Howe, Professor of Education, Dean of the College of Education, Iowa State University.
The date of 1973 on this letter confused my research in that it was inconsistent with the other data I had. If this date was true, then Empire would have been written Spring of 1972; I don't have a recollection of that fitting. In addition, the Education 204 course I was taking is on my Spring 1973 transcript. I am convinced the department secretary must have mis-typed the year, since it was early in the year.
The reason for the official letter and key from the Dean of Education was that I had been working many (MANY) long hours late at night, often starting right after classes or dinner and lasting until PLATO shut down each morning for Preventative Maintenance (PM). PLATO was scheduled to shut down at ten-o'clock (10:00PM Central) each night to allow the systems programmers to run test systems. It usually returned by about 10:30. This gave a half hour to run out to get sustenance for the night.
One problem we had was the building was locked in the evening and if we did not get back from a snack attack or other activity we were locked out; that is, until I was shown how to use a small screwdriver to slide back the locking mechanism on a particular door underneath the main steps to the building.
At some point the Dean had become aware of this activity and my PLATO programming. I was summoned to his office and since this was my first summons, I was concerned I was in some big trouble. He had me sit, looking a bit stern. "Do you know why I asked you here?"
"No." I said.
"You've been breaking into the building and I am afraid that I may have to replace the lock. You seem to be wearing it out."
Then he handed me a key and the letter. Thankfully, he took the tack of supporting creativity.
Travel to Chambana
My first trip to Chambana or PLATO mecca was the weekend of October 18th, 1973. There I met Silas Warner in person, having interacted with him online early on for lesson space and as play tester. Now, I was almost six foot three inches tall and felt dwarfed by Silas. When he first entered the doorway to the commons area it caught my eye because the light diminished. Silas wore a nice brown suit with open collar; I felt a bit underdressed. He seemed to have kept multiple paperback books in his pockets, since when we were online and if he were waiting for PLATO to do something, he'd pull a book out and read.
One pet-peeve Silas loudly expressed was the little knobbies (bumps) on the "F" and "J" keys. At whatever terminal he would get, if those bumps were there, he would pull out his pocket knife and shear them off smooth.
PLATO IV terminals in CERL Room 203B, October 1973.
- 512x512 flat-panel plasma screen
- rear projected micro-fiche
- fixed and downloadable character sets
- touch screen
- external port supporting an audio disk player, the Gooch Synthetic Woodwind 4-voice synthesizer, and other devices
The plasma display was designed by Don Bitzer in the 1960s specifically for the PLATO project. Since the plasma glowed orange, the monochrome coloring was Orange on Black.
PLATO terminal controller in CERL Room 203B.
A terminal controller consolidated communications between a group of terminals and the central host system. It maintained the 1200 baud speed whether the terminal was locally wired or connected at a distance over a wired phone circuit.
Business card for the PLATO PATROL (Junior Programmers of group "p"), October 1973.