Galactic Warzone

Galactic Warzone was my first successful BBS door game and predated Land Of Devastation.  It was a Trade Wars style game, with many enhancements and additional features. I think I began the project some time in ’88 or ’89, but I don’t recall the exact data. The last version I released, 7.6, was released in August of 1990.

Download: GALWAR76.ZIP

Galactic Warzone was very popular in it’s time, more people remember my collection with it than any of my other projects, including LOD. I didn’t do a very good job of marketing (i.e. the ill-fated honor system based registration), but I did receive a few thousand dollars in donations which was pretty good since I was in high school at the time. I eventually became bored with the project when I got into LOD, and sold it to another author.

Everything I remember about the history of Galactic Warzone…

It occurred to me today when discussing Galactic Warzone with someone that I’ve probably forgot more than I remember, so I really ought to jot some of these things down before I completely forget everything…

I started using BBSes some time around age 13 or 14. With the BBS came the door game, and one of the most popular games at the time was Trade Wars 1000 by Chris Sherrick and Alan Davenport. I had of course played this, I’m sure on other BBSes, but perhaps also set it up on my own. At some point I recall installing a Trade Wars clone called “MOTU”. While playing MOTU one day I realized that I could just go ahead and write this myself.

I was a Turbo Pascal programmer, so I set out to write a Trade Wars style game in Turbo Pascal. To my knowledge at the time, TW games were typically written in Basic, suffered from limited memory availability, and this limited both the complexity of the game and the number of sectors and other data structures. Turbo Pascal on the other hand was a pretty full featured language, able to maximize the capabilities of the IBM PC / DOS environment. Turbo Pascal even offered “overlays” if there was too much code to fit in memory at any one time.

I think I started with 2000 sectors, though I can’t recall for sure. Not having any existing Trade Wars source code, I pretty much wrote this from scratch. I do recall one complication — I had no idea how to write the autopilot code. I was a relatively advanced programmer for my age, and the high school programming class really hadn’t taught anything about data structures. The best I could come up with would have been slogging through the sector graph brute force, probably leading to an n! algorithm. Fortunately one of my friends, Greg, went to a different high school with a more advanced programming class and if I recall correctly, even a mentor who was a professional programmer. Greg knew about the single source shortest path algorithm, and coded it up for me. I wouldn’t be surprised if what persists to this day in the GW code is probably Greg’s implementation of that algorithm. The rest of the game was comparatively simple.

The basics of any Trade Wars game is ports, cargo holds, and fighters. You trade commodities (ore, org, eqp) between the ports making a small profit. Cargo holds are the limiting factor on how quickly you can make that profit. Figthers are used both offensively and defensively — you can leave them in a sector to defend the sector, perhaps protecting a particularly lucrative port. If you came across another player, you could pit your fighters against his, perhaps destroy him, and take his stuff. Basic gameplay is a balance between investing in cargo holds (to progress faster) or fighters (to keep from getting killed). Gameplay is quite repetitive, you find a pair of ports that earn a decent profit and you trade between them. Macros were commonly used to automate trading. Once the port’s inventory or demand is exhausted, you find another pair of ports.

From what I recall the first addition to galactic warzone over fighters was mines. These were dumb items that you could drop in a sector to blow up an unsuspecting pilot’s fighters and perhaps even his ship. I think I recall adding the ability to program the fighters and mines to execute different behavior. Mines could really ruin someone’s day. 

Team play was added so that you could team up with other people, and your deployed fighters and mines could protect each other. Rankings were displayed at logoff time, indicating each player’s standing as well as each team’s standing.

Future enhancements includes Planets, Outposts, and Starbases. Planets were created with the Genesis device and were resource producers — each night a planet produced some ore, org, and eqp which you could pick up and sell at a port. Reinvesting these items into the planet could up the production rate, thus allowing you to choose between instant gratification (sell stuff) and investment in infrastructure (increase production). 

If I recall correctly, outposts were an attempt to let players create their own ports, thus allowing greater player interactivity with the environment. I don’t think outposts were all that important.

Starbases were like super duper outposts. A player could log out inside a starbase, and the starbase’s shields and other resources would protect the player (and/or his teammates). Deciding where to log out and where do locate your planets and other infrastructure was always a critical part of the game — learning of “dead end sectors”, sectors which only had one entrypoint and therefore never fell on anyone’s autopilot course, were particularly valuable.

Over time the game grew increasingly complex as I added more and more features. Several special-purpose ports were developed in sectors 1-10, offering a bank, advanced weapons production, a casino, some kind of auction house, etc. Players were given slots where they could install additional equipment. One particularly beloved item was the “Emwarp Device”, which would warp the player to a safe location if he was about to be killed. Increasing game complexity allowed players to remain interested in the game, but also created some barrier to entry for new players.

DoorDriver

At some point I realized that the communications routines and such that I’d written for Galactic Warzone could easily be repurposed for other door games, so I separated out the communications library and called it “DoorDriver”. DoorDriver included the serial communication code, the routines for retrieving information (user name, etc) from BBS systems, etc. There were routines for dealing with ANSI escape sequences such as setting foreground and background colors. There was even stuff for recording and playing back macros (which may have been particularly useful for the repetitive nature of galactic warzone). This was used myself in various additional games and door programs, as well as used by a few other people in the community.

DDTerm

Galwar was also an experimental playground as I learned more about computer software. For example, I wrote a client terminal program called DDTerm. The idea was fairly straightforward — I would send certain strings across the serial communication to the user once, and then be able to replay them later. This was useful back in the days when modem connections were typically fairly slow — for example 2400 baud was not uncommon. In addition to speeding up the connection, DDTerm also had a few special bells and whistles such as being able to display pop up windows. Galactic Warzone didn’t require DDTerm, but it would automatically detect when DDTerm was used, and switch to the more efficient communication mechanism and the advanced features. I would later do a similar thing to implement graphics using GTerm on Land of Devastation.

Comments (1)

  1. Andrew Bennell says:

    Hi Scott

    I hope you’re well. I grew up through the 90’s playing Galactic Warzone, we even chatted via email a few times – that must have been 20+ years ago now, time really flies. Anyway, I had a peculiar idea recently. I don’t have any programming knowledge however I’m very much into Ai (ChatGPT, AutoGPT etc) and the thought crossed my mind – what if Ai was used to further develop this game? There is no particular use-case for this idea, just a curiosity of whether the Ai could do it easily, which I imagine it could.

    I’d be interested in hearing your thoughts. I could have a go at it sometime if you were able to explain in simple terms how I’d access the code which I understand was written in Turbo Pascal. I asked ChatGPT and it said if I pasted the code it could provide changes, it also suggested porting the code to a more modern language like Python or C# but I wouldn’t want to go too deep into this.

    Interested in hearing your thoughts.

    Cheers,
    Andrew

Leave a Reply

Your email address will not be published. Required fields are marked *