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.
Interface
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.
Databases
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.
Algorithms
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.
Communication
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
- Leadership
- Other
- Load main executable
- Player chooses scenario option
- Program initializes scenario and begins play
- Player input
- Change production
- Reroute supply
- Movement orders
- Strategic Search
- Tactical Search
- Strategic Move
- Tactical Move
- Strategic (Aggregated) Combat
- Tactical (detailed) Combat
- Logistics
- Strategy Selection
- Tactics Selection
- Etc
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.
- 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
Chapter 7 Contents