Classic Computer Magazine Archive START VOL. 3 NO. 10 / MAY 1989

ON DISK!

SPACE WARS 2400

The Online Adventure Is Just Beginning

ARTICLE BY DAVID RAMSDEN
PROGRAM BY DAVID RAMSDEN AND JIM KENT


Space Wars 2400 is a uniquely customizable space game that can even be played over the phone lines. Now, if your brother refuses to play anymore, you can call up a friend in Nome or Tallahassee and blast him or her from afar. Space Wars 2400 requires a color monitor.

Destroy the Romulan invaders! Files SPACE.ARC and SPACE.SRC.ARC on your START Disk.

At the beginning of the 25th century, the uneasy truce between the United Federation of Planets and the Romulan Empire was suddenly shattered when an enormous star was discovered in a disputed area of control. Back on Earth, Federation ambassadors gathered at Star Fleet Headquarters to decide what actions to take about this potential threat.

Just a few miles from Star Fleet headquarters is the main office for Antic, InC. (Intergalactic Corporation), which has now been supporting Atari products for over four centuries. Rather than sending out expensive star cruisers and endangering hundreds of crew members' lives, the ambassadors voted to use a new type of ship (codenamed: "Cyberships") designed by Antic and controllable by a starship captain from Earth.

This is your mission as a starship captain: Destroy any hostile invaders who approach the star. The fate of the universe is in your hands.


Starting Up

Un-ARC the file SPACE.ARC, following the Disk Instructions elsewhere in this issue. Set your computer to medium resolution and double-click on SPACE.PRG to start the game. (The files SPACE.RSC and SPACE.INF must be in the same directory as SPACE.PRG; for sound effects, you'll also need the files EXPLODE.SND, GUN.SND, BELL.SND and SUN.SND.) After the title menu appears, you will see five large icons on the left side of the screen (see Figure 1). To start playing the game, click on the top icon. Press the spacebar to restart the game in the middle of play. To return to the main menu at any time while you're playing a game, press the Esc key.

For a two-player game on one computer, you will need to replace your mouse with a joystick. You can then move the mouse cursor by holding down the Alternate key while pressing the arrow keys; click by pressing Insert with the Alternate key held down. Click on Quit under the file menu to return to the Desktop.


Going to War

As you enter the battle, you will see your starship and a Romulan battlecruiser (your opponent) hyper-zoom onto either side of a high gravity star. Plug a joystick into port 0 (the mouse port) to control your ship while your opponent uses a joystick in the other port. Both are armed with photon pixels, launched by pressing the fire button. You can move around by pushing the joystick forward to apply thrust.


Customizing the Game

Being the captain of a Galaxy-class starship is fun, but you can also design your own space ships for Space Wars 2400. If you have The Cyber Studio (from Antic Software), you can use the extrude tool in CAD-3D to draw a ship and save it to your game disk as an .XTR template file.

Then, while you're still on the opening screen of Space Wars 2400, click on the space ship icon and load your own ships. Because of the time required to draw the images on the playing field, your ships are limited to a maximum of ten points. The game begins to slow down with larger ships, so it will ignore any extra points in the extrusion (.XTR) files.

You can also redefine the game sounds by clicking on the loudspeaker icon. For each type of sound (sun, laser, etc.) you can load in a different sound file. If you'd like to create your own sounds, Space Wars 2400 will load files created with G.I. Sound Tool (also from Antic Software).

spacewars1.jpg The object of Space
Wars 2400 is to
blast any enemy
vessels in this region
of the galaxy. You
can play two-player
Space Wars at
home or over the
modem. If you get
tired of piloting
Romulan and Fed-
erated star ships,
you can create your
own ships using
CAD-3D.

Space Wars 2400 also lets you experiment with different gravity settings. Click on the OPTIONS icon at the bottom of the opening screen and enter any number between 0 and 99999 in the field labeled SOLAR GRAVITY. Higher numbers cause the star to "pull" more on your ship, while low numbers have the opposite effect. The Options Menu also has a button that brings up a dialog box for you to enter your names for the score display.

We've included several extra ships and sound effects files on your START disk in SPACE.ARC that you can use or experiment with in CAD-3D or G.I.S.T.


Reach Out and Blast Someone

Even if you've vanquished all of the opponents in your own house, you're still not finished. Turn on your modem and get your trigger finger ready, because Space Wars 2400 is also designed to be played over the phone lines!

Space Wars 2400 does virtually everything for you. If you're going to call another ST owner up to play Space Wars 2400, your friend first must boot Space Wars 2400, then click on the modem icon and select ANSWER MODEM from the menu that appears (Figure 2). Your friend should then click on OK if the modem settings are correct. This process can be aborted by selecting CANCEL or by pressing any key while the computer is waiting for a call.

In order to call the other player, click on the modem icon and then select DIAL MENU. Space Wars 2400 has a dialing directory (Figure 3) with room for five players and their phone numbers. To add a player to the directory, click on EDIT at the bottom of the dialing menu and select a directory entry with the mouse or cursor keys. When you finish typing in the name and phone number for a player, select PICK and choose the player that you're going to call by clicking on that person's name. The dialing process will begin when you select DIAL, or you can return back to the modem menu by clicking on EXIT.

Once you have connected up with the other player's computer, the program will automatically transfer any customized ships, sounds and playing options and then begin the game. The game sends custom features from the caller's computer, so make sure that you've set everything up before you call. You or your friend can abort the game and return to the main menu by pressing Esc, but this will cause the ship to go "dead" on the other player's computer. At the beginning of each game, you will see a message telling you that the program is trying to synchronize the game play before continuing. If the game gets "out of sync" for any reason (going to the main menu will also cause this), you will see the game stop in the middle of play and attempt to re-synchronize with the other player. This feature insures that you will both begin playing at the same time so that you won't be blown up before you have a chance to react.


Modem Settings

If you own a Hayes-compatible modem and a tone-dial telephone line you probably won't have to change any of the settings on the Dialing or Answer menus. The only settings that you must be sure to check are the connect strings on both menus. Make sure that you change them from "CONNECT 1200" to "CONNECT 2400" if you own a 2400 baud modem.

The dialing prefix is also a convenient place to add "*70" if you have call waiting and want to disable it when calling another player. Another setting that you might want to modify are the busy strings--if the modem returns either of these strings, then the program knows to redial the phone number that you selected. Some modems return strings other than "BUSY" or "NO CARRlER" and you can enter the correct busy strings for your modem.

The RING [ON/OFF] buttons on the modem answering menu have been included in case your modem cannot automatically pick up the phone and answer an incoming call. When a phone call is detected and the ring string is sent from the modem, the program will output the answer string that you have entered. If your modem has an auto-answer feature, make sure that this button is turned off. Several modems have DIP switches that must be set to turn on the auto-answer feature, but most Hayes-compatible modems will use the default setting of "ATS0=1, " which answers the phone on the first ring. Some modems use other commands, such as the popular low-cost Avatex modem. The less-expensive version of this modem is not 100% Hayes-compatible and uses "ATAA" instead.

If you encounter any problems while trying to call another person to play Space Wars 2400, check the manual for your modem to see if all of these settings will work correctly. Once you have everything working, use the Save Settings button on the Modem Control menu to save the information into the SPACE.INF file for later use.


Going Where No Modem Has Gone Before

A few companies have begun to see the potential for playing games over the phone using a modem: Flight Simulator II, Jet and Falcon are all examples of commercial software that can be played via modem. And as you've probably noticed, all three of these products are flight simulation programs. Let's look at a few possible ways to control a plane over the phone. If you would like to study the source code for Space Wars 2400, it is in the archive file SPACE.SRC.ARC on your START disk.

spacewars2.jpg Figure 1.
The icons on the
Main Menu give
you the chance to
customize Space
Wars 2400 to suit
your fancy. You can
change the shape
of the spaceships,
the sounds of your
space battle and
even the sun's
gravity.

The first problem that you'll discover is the inherent speed limitations with using a modem; a 300 baud modem can send approximately 30 characters per second (cps), a 1200 baud modem sends about 120 cps and a 2400 baud modem can transfer about 240 cps. These are "best possible" transfer rates, but in the real world of telecommunications, you can't always count on it being that fast because of random noise in your phone connection with the other computer.


Creating Your Own Game

Let's assume that you just want to be able to move your ship around on your screen while sending the joystick movements to the other player: we'll send N if there is no movement, U for up, D for down, and L or R for left or right. It sure looks nice and simple, right? This means that you could still send almost 30 moves in one second, even at 300 baud. But what would happen if Aunt Harriet picked up the phone upstairs or WQST Power Radio suddenly decided to start transmitting on your phone line? Because of the noise, the player on the other side would probably see your plane go into a nose dive and make a kamikaze run on the Statue of Liberty.

Anyone who's ever downloaded a program by modem has probably heard of the Xmodem transfer protocol. The computer transmitting a file sends 128 bytes, and when the other computer receives the data, it sends back a few bytes used for error-checking, called checksum data. If the checksum data sent back to the transmitting computer is not equal to the sum of the 128 data bytes added together, then it sends that block of data over again. This principle can be applied to computer games as well.

Instead of just sending a single byte of information that could be lost or garbled in the transmission, you can send a "packet" of information containing the plane movements and the error checking data. If the other computer receives the packet, adds all of the data together and it isn't equal to the checksum data that was sent, then it will ignore that move. Although this solves one problem, it brings up another one: What happens when your plane starts to move up, but the movement packet sent to the other player is affected by noise so it's ignored? Even if the rest of the movement packets are correct, your plane and the plane on the other player's screen are now out of sync; and if enough packets are wrong, then you could be heading north while the other plane is still heading south.

spacewars3.jpg Figure 2.
Space Wars 2400
has also been
designed to be
played over the
telephone lines. You
don't even need a
terminal program--
it's built into the
game. This is the
Answer Menu in
which you configure
the program to au-
tomatically answer
an incoming Romu-
lan's call.

This problem can be fixed by slightly changing the packet transfer method. Before your plane can move, your computer must receive some sort of acknowledgment from the other computer saying that the last movement packet sent was correct. While this still leaves the remote possibility that an incorrect movement could be made, it should work most of the time. This method is only useful in games that don't require rapid updates for the objects that the players are controlling. In a flight simulation, the movement of the plane can be updated occasionally by turning the plane to correct heading and placing it in the right position in the "simulation" universe. For Space Wars 2400, several of these ideas have been used.


Behind the Scenes

After you've connected up with another computer and started to play Space Wars 2400, the two computers begin rapidly exchanging information between each other. There's no time to wait and see if the last movement was correct, so more data is sent in the packet. Along with the ship's heading and speed, the X and Y coordinates of your spaceship are sent. If you've fired a shot or been killed, this information is also sent.

The packet actually consists of two unique starting bytes which signify the beginning of the movement data--these bytes could be virtually anything, since it's unlikely that the same sequence will occur frequently during the transmission. When the other computer sees this sequence, it knows that it's the beginning of a packet and it extracts the new ship data. Finally, two checksum bytes are sent which are equal to the sum of all of the data (except the two starting bytes) in the packet. If the checksum data that the receiving computer has computed is equal to the data sent, then it knows that everything is correct and moves the ship on the screen accordingly.

Now let's look at the problems encountered with the other methods. Since there's error-checking data in the packet, it's highly unlikely that a bad packet could ever get through to the other computer--and since the next packet would fix any errors by placing the ship in the right position with the correct heading and speed, then one bad move wouldn't make any difference. And if a bad packet is received, the ship will already have been set to a specific heading and speed so it will keep moving. Also, there's no waiting for the other computer to synchronize your movements, so the game is still running at full speed. The only drawback to this method is that more data must be sent, so fewer moves can be made in a second.

spacewars4.jpg Figure 3.
The calling player in
Space Wars 2400
uses this menu to
configure the pro-
gram correctly. You
can set up a dial
directory of up to
five victims (friends)
and automatically
dial them with a sin-
gle mouse-click.

While Space Wars 2400 would probably work at 300 baud, the game will be too slow to play. There is also a slight chance that a shot could be fired on one screen but wouldn't be seen on the other screen because the packet was lost or damaged. The packet tells both players if the other ship has been destroyed, so the shot would still be registered; the only drawback to this method is that the other player might get destroyed by an "invisible" missile. If this happens, you will probably see the "Synchronizing Game Play" message once or twice while the program tries to correct the problem.

There are many different kinds of programs that these ideas can be applied to, and with the growing popularity of modems it might be profitable to create more games which can be played with another person over the phone. The next time you head into Zork, someone might be controlling a grue from their house; or one day you might pull the lever on a wall and find another group of explorers down in the dungeon looking for you.

David Ramsden is the author of Cyber Texture from Antic Software. He wishes to express his appreciation to David Johnson and Norman Morgan for their help play-testing Space Wars 2400. Jim Kent is the author of Cyber Paint and Aegis Animator.


PRODUCTS MENTIONED

G.I.S.T. and The Cyber Studio, with CAD-3D, $34.95 and $89.95. Antic Software, 544 Second Street, San Francisco, CA 94107, (800) 234-7001.