· Mail Bag
· 2.01 D source
· Stewart's D version
· Empire 1.31
· 1.31 C++ source
· PDP-10 Empire
· VAX/VMS Empire
· PDP-11 Empire
· PC/PCjr Empire
· C/C++ compiler
· D compiler
A Brief History of Empireby Walter Bright Copyright (c) 2000
Empire draws inspiration from many sources. One is the 1968 classic war movie "Battle of Britain". In it, you'll see a scene of the British staff pouring over a very large table which has a map painted on it. Clerks move counters around on it representing airplanes, ships, etc. Another inspiration is the RISK board game, one I enjoyed playing very much.
The very first Empire game was done in 1971 on a 4*8 sheet of plywood. I laboriously made a grid on it, painted a map, and manufactured playing pieces. The game was a total failure. It was completely impractical, requiring too much data to keep track of, and another person who was willing to sit down for many hours totally dedicated to being my opponent. I shelved the idea.
While in high school, I learned to write simple Basic programs on punched cards. One that interested me was printed in a book of Basic game listings, called Hamurabi. I punched it in, and started to modify it.
Then, off to Caltech. I took my Hamurabi card deck with me. Caltech offered free computer time to students in those days, and I quickly signed up for it. Access was via hardwired terminals in the Jorgenson Lab. I spent many nights playing Nstar and other bad & forgettable early computer games, until one day I just got sick of them. I got the operator to load in my Hamurabi deck, renamed it to King, and spent the next semester learning how to enhance it.
First VersionsTiring of King, I remembered that old game I'd invented as a kid. It occurred to me that the computer was the ideal solution to the problems I'd had with it - a computer could handle all the bookkeeping automatically, and if I had the computer be the opponent, there would always be a tireless player ready to play any time I was. The 60 * 100 map came from the largest grid a Decwriter could print on a sheet of paper. I started coding away in Basic. After a while, it became apparent that Empire would never work in Basic, the language just was too limited. I needed to learn FORTRAN, a well-implemented language on the PDP-10. Writing Empire and learning FORTRAN went hand in hand. (Many variable names in the FORTRAN source show their Basic heritage.) My good friends Mark Stroberg, Shal Farley, and Dave Rolfe helped teach me how to program with generous and patient donations of their time. Since the terminals we had available in Jorgenson were 300 baud Decwriters and 110 baud ASR-33's, unimaginably primitive, Empire was designed to work with a hardcopy terminal. Unfortunately, it just never did work out on them. The game progress stalled until fast glass terminals became available - at last, a screaming fast 1200 baud terminal! Empire became a screen oriented game.
After a year or so of sporadic work on it, it became a fully functional game. I even got the computer to play a credible strategy for the other side, dreaming up how it would work one Christmas vacation. There were amusing bugs like armies that would "fall" to one corner of the screen. The downside of the computer strategy (later grossly overvalued by calling it an "AI") was that it was a memory and CPU time hog on the timesharing PDP-10. Other students started playing Empire too, so the sysops decided to clamp down on "gaming" during school hours and later, during finals week. The hours one could play games on the "10" were steadilly restricted. Naturally, this chafed, and so I renamed Empire to "test" and ran it whenever I wanted to. This went on for months until the sysops caught on that this program named "test" that hogged the system resources had the same memory footprint as Empire. They were nice about it, though, and I agreed to desist.
Some people at Caltech disliked Empire - even blaming it for a couple students flunking out because they got addicted to the game and neglected their studies. One even threatened me because of this (incredible, hmm?).
Later Caltech ProjectsOther old programmers may remember that these were the years when the original ADVENT (short for Adventure) came out. It caused a sensation. Nobody had seen anything like it. ADVENT was a very clever game, written entirely in FORTRAN. The later game Zork was derived from ADVENT, but ADVENT invented the whole "adventure game" genre. I decided to write my own adventure game, called Castle. It was far too ambitious, and I ran out of steam and gave it up.
I earned money while in college writing games for Mattel's Intellivision home video game system. Empire just would never fit into that tiny machine, nor into other personal computers available at the time like the Commodore Pet. It's possible it could have been recoded into the Apple II, but I never tried it.
The PDP-11 VersionWising up, I got a "real job" doing mechanical engineering, and forgot about Empire (but fortunately I saved a copy of it, available for download from this site). After a couple years of that, I got the itch to get back into programming. Being rather stupid, I bought an H11 (Heathkit's version of Dec's PDP-11) for $6,000. It was a fine machine, well suited to implementing Empire on. The only trouble was that DEC never figured out that they'd invented the PC, and the machine never penetrated the hobbyist market. If I'd had a brain, I'd have bought an Apple II. But, I had the H11, and I recoded Empire into PDP-11 assembly code (you can download that from here, too). Proudly finishing it, I announced it to the world via BYTE magazine in April 1983, and sold exactly two copies. Discouraged, I abandoned Empire again for another "real job".
The IBM PC VersionIn that next job, we were working on a large project on an early IBM PC. I discovered the C programming language, and it might as well have been called EIL, for "Empire Implementation Language." The PC could easilly handle Empire, C was an easy language to implement it in, and best of all, the PC was popular! Off I went to make it work. It even worked on the ill-fated IBM PCjr. Being too chicken to pony up real marketing money, I took advantage of BYTE's new product announcements, and was astounded by the flood of orders that came in. I'd sit on the living room floor, sorting xeroxed manuals, copying disks, and stapling them into envelopes. It was fun, but I thought that with some real marketing, it could sell even better. Time to license it to a major game company for royalties.
InterstelSo off I sent it to the big game companies of the time. They all rejected it. See the attached letters. Only a tiny company, Interstel, showed any interest, and we quickly reached a deal. Interstel hired Mark Baldwin to update the game with a graphical user interface, and the game was a spectacular success in the market, exceeding all my expectations.
Meanwhile, Back at the RanchUnbeknownst to me, after I left Caltech, some person hacked through the protections and acquired a copy of the source to Empire. It moved around from person to person, system to system, at one point losing the copyright and authorship notices, and eventually all traceability vanished. Jacobs and Mitton apparently found it on a computer in Massachusetts, and ported it to the VAX/VMS system, submitting it to DECUS under the pseudonyms DeNobili and Paulson. It became something that DEC technicians would just install on VMS along with the operating system. A college friend of mine told me it was being distributed by DECUS, and so I checked into it in July 1983. A few phone calls later to DECUS, and I managed to prove to their satisfaction that I was the original author and copyright holder, and DECUS agreed to note that on the catalog description and the source code. The URL to the DECUS version is on this site.
Peter Langston EmpireThere is another Empire game that was originally developed by Peter Langston. Langston Empire and my Empire were conceived and developed independently in the 1970's, each of us had no knowledge of the other. Several websites assume that one is based on the other, these statements are simply not true.