Chapter7.gif (951 bytes) Designing Computer Games

Victory at Sea

This is a game on naval warfare in the Pacific during World War II. In effect, it's a strategic game of the entire war in the Pacific with the option to drop down at any time and fight it out ship to ship (or, more likely, aircraft to ship). It's the first of a series of games. Additional disks will be published later to cover other theaters of the World War II naval war.

Below is an extract from the introduction to the Victory at Sea spec, delivered on October 15th, 1991.

Notes on Game Components

The Map Displays

At the moment you have a list of ports and instructions to scan any Pacific region map into your paint program. Then implement latitude and longitude coordinates to overlay the posts list onto this map. Because a degree of longitude varies as the cosine of latitude, the length of a degree of latitude varies from 69 miles at the equator to zero at the poles. We don't go quite that far, but do reach two thirds of the way to the north pole (60 degrees north), meaning the degree of latitude in under 50 miles that far up. The map will have to be adjusted. That should be no problem as you will have the 140 principal location listed in terms of latitude and longitude. We can supply more as needed, although we don't want to crowd the map. We counted over 500 atolls and islands capable of supporting some kind of garrison (many at great expense in shipping, as even water would have to be brought in to some of the drier ones). Some of these were actually garrisoned by the Japanese (Tarawa). Once you have the map sorted out electronically, send it to me and we'll indicate the "atoll clusters." I thought it better to leave that complication for last. It will make some programmers life easier.


The interface Gordon and I worked out was earlier keyed to routines in the game. This has to be updated and I will do this in the next week. There's more than enough stuff for each existing screen mockup.


The databases are complete, although we'll update them right down to the wire as we uncover new stuff. Nothing radical, but there's always something. As all the databases are in spreadsheet files, we can put them in any form you want for uploading into the source. I do that a lot. I don't like it, but I've gotten pretty good at it.


Over 95% of the needed algorithms are done. Some of the key ones have been tested and proofed using a monte carlo system I've developed. However, it requires a bit of coding and screwing around to get them into a format where the monte carlo testing will work. You know what monte carlo is? If not, it's a model that tests an algorithm or, more often in my case, a series of algorithms over thousands of iterations and gives a reliable picture of what the system will do over many iterations. My system produces graphs as well as summary stats. I can then go back and tweak it until I get it to do what needs to be done. I will continue to test the game algorithms this way until they are cast in code, at which time we should monte carlo them again. The naval surface combat routines have gone through over 6,000 iterations like that. But many of the routines will not be fully testable until they are in code. The systems are set up so that I have a lot of numbers I can change to bring the system into the proper balance. Once you start writing code, give me initial executables with as much data in external tables so that I can tweak. I can use a hex editor to change ASCII data in a binary executable or overlay. Changing binary directly is a bitch. Could also use some monte carlo modeling capability, mainly the ability to have x number of iterations of a situations with both sides on AI and loss stats sent to an ASCII file in tabular format for analysis.

Artificial Intelligence

The keys to realistic combat AI are hidden information and randomness. If you have that, you can employ quite simple routines. As Clauswitz and Sun Tzu point out, even simple plans are difficult to execute in combat. The Artificial Intelligence data is presented in narrative form with the probabilities imbedded in the description of the routines. I'm still having some problem with the strategic AI, but nothing that a little more application won't solve.

General Advisory

This is the first time in nearly 20 years that I've had to deliver a spec to programmers I've never met. I usually do the programmer hiring, so I know what they are capable of and what they prefer to get in the form of a spec. It also helps that my programmers know I sign the payroll and bonus checks. In any event, I'm delivering the AI stuff in a pretty generic format so that the programmers can get a good sense of what it is going to do and then get back to me with whatever alternate format they might prefer. It won't take long to reformat it once I know the preferred format.

FootNote feature

We can cobble those together from notes, but for a full blown version we'll need a codicil on the contract to clarify the book contract Al and I are now negotiating with my publisher. The big version would, in effect, be a book on a disk and would be a great selling point that would add little to the production costs (an extra disk) and nothing to development (the bits that are already going into the FootNote feature would simply be larger). Tom says he's amenable to signing the agreement needed to protect the book copyright.


Until you figure out exactly how you're going to code this thing, you'll have a lot of queries. Since financial and military models don't mix, you won't be able to get ahold of me when I'm downtown (material here deleted as I don't want too many people to have an easy time tracking me down when I'm trying to get work done). Otherwise, leave a message on the answering machine. I will email confirmations on all phone discussions of spec changes, but do it via email as much as possible. Normally, I check email twice a day: between 4-8 AM and 4-7 PM Eastern time (1-5 AM and 1-4 PM Western time). If you alert me that you will be throwing a lot of queries at me, I can usually arrange to check mail between 11 AM-2 PM Eastern time (8-11 AM Western time). In most cases, I take care of email queries immediately (especially when I'm at home, where all the computer records and printed research material is available). This in over 80 percent of the cases you will have an answer in under six hours. On those I can't answer immediately, I usually pass on to Al Nofi (ANOFI on GEnie) and he usually gets back in 24 hours. I keep copies of all incoming and outgoing email and keep it indexed, so I can find anything within seconds. One helluva organized sumbitch, ain't I?

Spec Files

Files (with one exception, two versions of each, .WK1 is 123 spreadsheet version and .ASC is IBM ASCII version with CR/LF at the end of each 72 character line):

  • VASSPEC.NN- This note.
  • VASGAME- Game procedures. The game rules. Has a functioning menu system if you have a spreadsheet compatible with 123 macros (I used Quattro Pro in 123 mode).
  • VASSHIPS- The ship stats. This was larger until we took out the German, Italian and most of the French and British ships (the latter two nations did have some ships in the Pacific). The game information is on the left hand side. To the right is historical information, some of which is used to calculate game values so has to stay in place.
  • VASDIV- The ground and air units.
  • VASPORTS- The map information as well as capabilities of ports and bases.
  • VASAIR- Not really needed by the codemakers, just us showing off. We had to compile this one in order to come up with a dozen or so numbers for "average" aircraft stats by year for each side.
  • VASGUYS- The leaders, and all their stats.


  • Implementation Sequence (as I see it)
Strategic Display
Unit List
Strategic Movement
Tactical Display
Tactical Movement and Combat
Strategic Combat
Strategic AI
Tactical AI
  • Program Sequence
Load main executable
Player chooses scenario option
Program initializes scenario and begins play
Player input
Change production
Reroute supply
Movement orders
  • Computer Procedures
Strategic Search
Tactical Search
Strategic Move
Tactical Move
Strategic (Aggregated) Combat
Tactical (detailed) Combat
Strategy Selection
Tactics Selection

I used the above to guide my priorities in conditioning the enclosed material for delivery. Let me know how it's supposed to be so I can shift gears accordingly.

  • Resolution
One day Strategic
One Hour Operational
30 Sec tactical

A footnote on this project. While the official start date was July 15th, it was largely delayed for six weeks because a few days after signing the contract my co-pilot, Al Nofi, had to have emergency eye surgery. His eyesight survived, but it was not until early September that he could get into the research big time. You always have to make allowances for disasters.

[vas screen prototype illos]

Examples of the Victory at Sea prototype screens he put together while the spec was being put together.

  Hardware for Computer Wargames

  Hundred Years War

  Table of Contents

Chapter7.gif (951 bytes)  Chapter 7 Contents