QuickBASIC programs

       Analog Dial             ROCKET         GALCON        PROGRAMS         

GALACTIC CONQUEST
also known as Galcon
 
This is a clone of the famous game by Rick Raddatz, written in QuickBASIC.

One of the best games I've ever played,  Andy (brother-in-law) and I would sometimes stay up till 4 AM playing "Galcon" in my basement. The actual name is GALCON24.EXE, written by Rick Raddatz. It's a game of domination, similar to "Risk" but  without borders, and without being able to see what your opponent is doing.

When you realize what mayhem your opponent has caused, it is too late. Hundreds of your ships are decimated, the screaming of your dying men can be heard in your head, and your planet is lost. Or perhaps it is too late for your opponent as the wrecked hulls of his ships pile up. They die, yet still they come, unable to be recalled, to meet with certain death. Certain death because of the strategy you used, anticipating where an attack will hit.
 

The speakers from the stereo in the living room were placed on the table in the basement, with the computer and monitor between them. With a case (or more) of beer next to us and most of the light bulbs in the ceiling unscrewed, we'd listen to "The Planets" by Gustav Holst as we carefully selected the "universe" in which we were about to battle each other. The music would then change to Genesis - every album ever made while Peter Gabriel was in the band (with the exception of "From Genesis to Revelation," which I didn't own). Sometimes Andy would bring a new CD with something different, and THEN the Genesis music would start.

There was just one problem. Occasionally a planet would revolt. We didn't like this aspect of the game. How would you like to be playing chess when suddenly a pawn changed to your opponent's color? We had a work around. We played on a Tandy TL-2 which booted to MS DOS in ROM. In other words, it didn't boot from the hard drive, so it would come to life almost instantly. At the end of every turn we'd save the game, and if there was a revolt we'd hit <CTRL> <ALT> <DELETE>, reboot and load the saved game back in.

There was much talk about the author, Rick Raddatz, while we were booting. He seemed to have disappeared. A letter to the address displayed at the end of the game went unanswered. We just wanted him to disable the revolts. We wondered what became of him. Was he even still alive?

Maybe he was on Skid Row! Yes, that must be it, years of playing Galcon and drinking beer had ruined his life. He had been destroyed by his own creation.


One cold wintery night, so cold that the snow crunched under our feet, we were setting up the game in my basement.
The Planets
by Gustav Holst was playing through the speakers and we each had a beer in hand. Cheese, crackers, Doritos,  and other snacks were standing by. They would be needed in a few hours.

While answering the questions at the beginning of the game, one of us hit a wrong key.
On the screen were the words, "
Redo from start ."

This had never happened before. We stared at the screen. We both leaned closer. We looked at each other, then back at the screen. That phrase had meaning. We both rather simultaneously exclaimed, "Holy shit! Rick wrote this in QuickBASIC!!!"

With that eye opening message came the idea that perhaps the game could be cloned in QuickBASIC, without revolts.


The "Redo from start" message in GALCON24.EXE.

THE GAME
For demonstration purposes, "Mike" and "Andy" are playing a five turn game. You can always add more turns.
Our names were never Mike and Andy during a real game, and we always started with 40 turns.

Andy is attacking Planet N

Andy invades Planet V

The situation at the end of the game

This doesn't look like much of a game in the pictures.
This needle with Heroin doesn't look like much in the picture either.
See what I'm sayin'?

I have not been able to derive how Rick Raddatz calculated the score but the way I did it gives a very realistic one. The score is the number of ships times the average kill, plus 50 points per planet.

In a real game you'd go after the entire universe and play about 40 turns or more. At some point you'd begin to attack each other, then the real battle starts. You'll each have thousands of ships. Taking your opponent's home planet will demoralize him.


Click on Charlton Heston to hear to your opponent bellow as his home planet is taken. 

Now the game has changed. Your opponent's priority is to retake his home planet. He is successful! But then, YOU TAKE IT AGAIN! Listen to him now!

Your opponent then renews his efforts to reclaim his home planet. Once again he is successful. However, because he moved too many ships against you in an effort to exact revenge, YOU TAKE IT A THIRD TIME!  Listen to his reaction this time!

 
A revolt has been put down. This was the very reason a clone of the game was written.
 
At the end of the game is the splash screen from Andy's bulletin board. The Internet killed off the bulletin boards.

 
 
GALCN152.BAS
 
GALCN152.EXE
Left-click* to download the QuickBASIC
source code.* Depends on your browser
Left-click to download the stand-alone executable version.
(Rename the extension to .EXE).
NOTE: This is "Galcon VER 15.2" dated November 27, 2018. This is the last QB45 version.
 

GALCN205.BAS

GALCN205.EXE
Click to download the QB64 version 2.05 Click to download the Windows version. Will run full screen.
NOTE: This is Galcon VER 2.05 dated November 28, 2018. This is the QB64 version.
 
Rename "GALCN205.RenameToEXE" to GALCN205.EXE. When you run it , Windows Defender may complain about it.
That's because you didn't pay for it at Microsoft's "store." Click on "More Info" and tell it to run the "app" anyway.

Hello! It's not an "app"! It's a computer program. I hate this "app" bullcrap from Microsoft. Would they have called GWBASIC an app??


Click to download GALCON24.EXE by Rick Raddatz.
 
Get DOSBox to run the EXE files. Click on the picture for the link.  You need this.
 
Listen to Gustav Holst while you read the rest. Click on the picture. I've been listening while typing this!

A little about the QuickBASIC code and the game:  I started this in 1996. I'm not a programmer but I had written a few simple programs in GWBASIC and made some additions to the ROCKET program on the previous page.

This game has two notable improvements over the Rick Raddatz version in that you can load a saved game from the first screen, and the names of the saved games are displayed in a menu. In the "real" version you have to know the name of the saved game and if you type it wrong, the game will crash.

The code is written in such simple terms that someone with no knowledge of QuickBASIC can tell at least half of what is going on in the game by reading it. The only caveat is that if you're looking at it in Notepad or a web browser you'll see that QuickBASIC lists all the subroutines alphabetically.

For instance, the first subroutine listed is "SUB AddTurns," however, "AddTurns" wasn't the first subroutine written and it isn't used till near the end of the game. Just look for SUB <some name> and see if it makes sense. You'll encounter END SUB, then the next SUB will be listed, etc. etc.

The game wasn't written in any structured way; it was done piecemeal. The first version is just a rectangle with dots in it. This would become "the universe." The next version took 40 "planets" and arranged them randomly on the dots. The next version assigned a production and kill ratio to each planet. The next version had you enter your moves. This went on and on till there was what appeared to be a working Galcon screen. Except it didn't work.
 
An early version. The "planets" are randomly drawn on top of the dots and each one is checked to make sure
no two planets are in the same spot. Notice some of the planets are in lower case, and one is planet "up arrow."
 
The first major roadblock was how to move the "ships." Now don't get the idea that I was glued to the computer, pounding out code while guzzling Coca-Cola. I was glued to the computer, but I was pounding Yuengling Lager. It was more like, "It's Saturday night, I've dialed up all my favorite Bulletin Boards, and now I'm bored. I think I'll work on THE GAME."

I couldn't figure out how to move the ships, but I don't think the beer had anything to do with it. Or did it. At any rate, I stopped working on it for awhile.

In 1998 I found Rick Raddatz! The Internet was exploding and Rick had a website. There was no contact info on it. I sent an email to rick at raddatz dot com, just guessing that would be an obvious email address, and he wrote back!! I asked him to turn off the revolts and email me a new version of Galcon. He told me he wrote the game in 1988 while in college and the source code for the game was lost. He said that as DOS faded away he just deleted it to close a chapter in his life.

According to Rick, The idea for Galcon came from a game named "Stellar Invasion," released in 1986 by Bearbyte Software, so he couldn't take credit for it.

Stellar Invasion circa 1986. More screen shots can be seen here.

At this time Rick worked for Microsoft. Go figure. Since the source code was gone, I asked him how to move the ships in the game. He wrote back, "It's quite easy. Here is the pseudocode:
mumbo jumbo
mumbo jumbo
mumbo jumbo
mTransports(mNumTransports).DistanceToGo = SQRT((X1-X2)^2 +(Y1-Y2)^2)
mumbo jumbo

etc."

I didn't have the slightest idea what he was talking about.

The actual text is here.

Then I came up with an ingenious way to move them myself. I would have them zigzag from the attacking planet to the attacked planet. The ships would move like this:

It worked! The subroutine TravelThroughSpace was written. It was two pages long and full of bugs! The ships would travel two "light years" per turn till they arrived at their destination. Another part of the program "remembered" the number of ships and what their kill ratio was.

It actually wasn't quite as simple as that. The game is played in a text screen. The screen is 24 rows down by 80 columns across. Two dots down is two rows but two dots across is FOUR columns. It took me awhile to figure out how to compensate for that, and how to "turn" the ships if they only need to travel one dot up or down.

Then the second roadblock was encountered. How do you make the ships fight each other? I made an AttackPlanet subroutine, but the ships with the higher kill ratio would just wipe out the ships with the lower kill ratio. That was not how the real game worked.

Now it was the year 2000. Microsoft killed off DOS, and a hundred thousand DOS programs would not run in Windows anymore. The program languished on my hard drive. I couldn't even run QuickBASIC to work on it.

In 2002, unbeknown to me, DOSBox was released. Here I was trying to make some text based game work and a REAL programmer wrote a DOS emulator that runs in Windows! The funny thing is that Bill Gates and Paul Allen (RIP), two of the richest men in the world, made their fortunes writing BASIC and MS-DOS, while DOSBox is free of charge.
 


In 2016, TWENTY YEARS after I started on the program I determined to figure out how to make the ships "fight" each other. After all, I had a working game, even if I no longer remembered how it worked.

It was kind of weird how the idea came to me. I was in work taking a break, staring out the 2nd floor loading dock door into the darkness while smoking a cigarette. Suddenly the solution seemed to be trying to come into my consciousness, already formulated, with no effort on my part to "figure it out." It popped in and then out, like a dream you can't remember. I tried to think of what the idea was, then BAM! - it came back. I ran back to my desk and wrote it down.

That night, I edited the AttackPlanet subroutine. The game was complete. We could now play our clone of Galcon and not worry about revolts.

Obviously this was not how Rick Raddatz wrote the original version. That's why Rick worked for Microsoft and I didn't.


Well, after 20 years had passed we didn't play Galcon anymore. We keep saying we will but never do. With a working program that nobody would ever use, I went back to it in 2017 as a mental diversion.  I re-read Rick's emails from 1998. That equation he sent me looked very familiar. It turned out that his equation was actually this:
 

Rick used the Pythagorean Theorem to calculate the distance between two planets. He didn't have them zigzag to each other like I did in the TravelThroughSpace subroutine. The calculations were modified to get it to work, and it works very well. DistanceToGo = SQR((X2 - X1) ^ 2 + ((Y2 / 2) - (Y1 / 2)) ^ 2).

Now the game "knows" how far apart the planets are as soon as you enter the moves. TravelThroughSpace was re-written and the ships "move" with just a single statement, DistanceToGo = DistanceToGo -2. Thanks Rick!

In May of 2018 a menu was added to Save a game, Load a game or Quit the game. In November 2018 I found QB64 and made the Windows version.

Mr. and Mrs. Rick Raddatz

Rick worked for Microsoft as a product developer from 1988 till 2000.
He then founded four multi-million dollar companies.
I founded four dollars in a coat pocket.

This broadcast is now concluded. Tune in again tomorrow; same time, same channel.

 
  NEXT