Dot War

Dotwar is like DOOM in morse code.

The idea was to connect a shared database and the time of day clock to a discrete event simulator to make a real-time, multi-user game. Real time in this case was real slow, like months.

There was a space hunt game, called startrek, that was popular at computer centers in the early '70s. Our computer center banned it because of all the system resources and terminal time it consumed. I wanted to replace it with a game that chewed up social-cycles, not cpu-cycles.

Now we all know that space travel takes time. So I figured that if we got a good real-time space game going then it would be a lot easier to find time on a public terminal. The idea was to plot strategy most of the evening down at the pub and only drop by the computer center on the way home to enter the next day's orders.

DotWar was called that because that is what you got; a ship was just a dot. But that dot had thrust and momentum and you could program a sequence of burns. Waging war was a lot like the postal game of Diplomacy.

The big war lasted several months. HarryChesley led the white force; GordonLetwin led black. Gordon's front-end battle computer prevailed, as it had in an earlier joust with me. In the end the dots were not all that suffered. Friendships were made and then lost as the degree of intrigue escalated.

I've located the original source for dotwar along with some documentation and a few game related emails.

My programming style was adapted to the needs of fortran and the realities of editing on punch cards. Careful readers will note that I was already object oriented but couldn't even spell global. -- WardCunningham


Just for curiosity, of course, are there any refactor points left in your code? (I am not a fortran reader, it looks too much like ASM for someone of my background.) -- WyattMatthews

Fortran of that era did not have the notion of a basic block. Newer Fortrans do and I would use them. The code is well structured for the time in that gotos were orderly (not spagetti code). In an object-oriented language I would make objects and events their own objects. Notice that I was already thinking that way. Of course then I'd have to generalize the persistence. -- WardCunningham


CategoryGame CategoryHistory CategoryGameProgramming

EditText of this page (last edited January 28, 2006) or FindPage with title or text search