Chapter7.gif (951 bytes) Designing Computer Games

The Spec

Keep in mind that a computer does what you tell it to do not what you want it to do. Unlike people (some people, anyway) you can't just tell a computer what you want done and expect your request to be carried out. Computers require explicit instructions. These are called computer programs, or computer software. The terms program and software are often used interchangeably.

Programmers make their living by turning someone elses need for a computer to do something into a program that will make a computer do what is requested. The programmer, however, requires precise (or at least unambiguous) directions from the user of the program. In this case the user giving direction is the game designer. These directions are delivered in the form of a "specification" or "spec."

Specs come in many different forms. On one extreme you have many pages of flow charts (boxes of different shape connected by solid and dotted lines) showing which data goes where and does what. These flow charts are accompanied by equally voluminous instructions on how to set up data files (lists of information), what formulas to use and how the processed data should look when it is presented to the user (on the computer screen or printer). On the other extreme you have some verbal instructions accompanied by a few notes scribbled on a piece of paper. My approach to a spec is somewhere in the middle, as I have found that the flow chart approach gets ignored (at least a lot of detail gets ignored) by the programmers while the other extreme leaves the programmer confused and inclined to invent whatever he needs and hope that it's what the user meant.

Naturally, I'm going to push my own personal version of what I think a spec should be, if only because it's a system I have used successfully for many years with dozens of different programmers. I count my approach a success because most of the programs worked well and most of the programmers are either still working for me or at least return my phone calls. What we are describing here is a spec for a computer wargame, any computer wargame.

The spec is divided into three parts.

Input/Output

First comes the I/O (input/output). In plain English, this means what the user sees on the screen (output) and what commands the user can give to the program to obtain a desired result (input). This is often called the "look and feel" of a program. The easiest way to prepare this is to do a mock up on the computer screen. These days, one of the many "paint" programs are used to, literally, draw ("paint") the various proposed screens. Some years ago I used a program called Demo (clever name, eh?) to build screens. The advantage the Demo program had was that you could make the controls on the screen active, to bring up additional screens and similar things. I stopped using Demo when I realized that for my purposes (my programmers didn't need THAT much direction), a much simpler method would suffice. So I just typed up what the input and output screens would look like. Games use more complex screens, often with lifelike terrain, vehicles or people on them. These don't have to be shown realistically, a simple notation will do. The important thing is to let the programmer know what will generally go where on the screen.

When you think about it (it's a good idea to think while specing a program), there are not that many screens involved in most games. There might be a lot of different graphics put on the screen, but this is just popping a new picture on to the same screen. Yes, that's one of the secrets of computer wargame design, move and vary a small number of items to make it look like a whole lot. Just like real life.

Databases

The foundation of any automated model are its databases. There are several database types which must be used in a computer wargame. Their use is similar to the use of this data in a manual wargame.

Internal Model Procedures

Otherwise known as algorithms in computerspeak. The manual model does not translate directly to an automated version. Some adjustments and design modifications must be used.

  1. Detect- Use sensors to determine if enemy forces are present and/or within range of weapons.
  2. Check for Damage- Can be enemy caused or from operational causes. If Damaged, Physical Effects- Degradation of system performance. Psychological Effects- Modify troops will to continue operations.
  3. Fire or Flee- System analyzes situation. If logic, or psychological effects, dictate, system withdraws from combat. Otherwise, continue.
  4. Record actions in "Diary" Database for report generation.
  5. Repeat Above- Continue until end of time period allotted for operations, or victory conditions specify ending operations.
  1. OB Status- Starting and finishing status of units.
  2. Terrain View- Which terrain configuration was used (Large/small scale via zoom).
  3. Victory Status-What the player is allowed to know, given intelligence constraints and other factors, about how close either side is to victory.
  4. I/O Routines- How to handle interaction between model and user. The user must be able to easily modify the following program instructions. This is done by setting up the routines in table format and programmed to prevent the user from doing anything that would crash the system. If the user does anything unintentionally silly, the system will simply display these actions on the screen, allowing changes to be made and their results observed until the user is satisfied.
  5. Movement-A combination of, historical movement capabilities, based on field tests and experience. SOP's (Standard Operating Procedure) for movement, right out of the book. Limiting factors, primarily psychological factors that don't make it into the field manuals or peace time soldiers knowledge.
  6. Combat- Similar to movement. In this case applies to the servicing of weapons.
  7. Intelligence- How much information of their own and enemy force
  8. does each side have at start and during each intelligence cycle time period. This time period is based on how long it historically took for new information to reach the commander and be acted upon.
  9. Other- As needed.

  Overview

  User Documentation


  Table of Contents

Chapter7.gif (951 bytes)  Chapter 7 Contents