This is a clone of the famous game by Rick
Raddatz, written in QuickBASIC.
One of the best games I've ever
played, Andy (my 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
conquest, similar to "Risk" but without borders, and
without being able to see what your opponent is doing.
Playing the game is a lot of fun.
Since you can't see your opponent's moves, you have no idea
of what will happen during the game. When you observe what
destruction
he has caused you can do nothing but watch in horror. Hundreds
of your ships are destroyed, the screaming of your dying men
can be heard in your head, and your planet is lost.
Conversely, it may have been an ill-conceived attack by your opponent as the wrecked
hulls of his ships pile up. Unable to be recalled, they meet with certain death;
certain
death because of the strategy you used, anticipating where
an attack would hit. Then it is time for revenge. The game can go on for hours as planets
change hands back and forth, till finally someone gets a
strategic edge and begins to pull ahead, but many times the
advantage is fleeting, and only another bottle of beer can
assuage the demoralized player.
The speakers from the stereo in the
living room were placed on a table in the
basement, with the computer monitor and keyboard 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. It was like
playing chess, knowing a random piece could change 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
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. The new version
of the game he promised never appeared. 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.
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 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 opening screen from
"The Keep," Andy's bulletin board. It's only there for
nostalgia purposes. Andy made the ANSI graphic of the
castle. See the white keep to the castle? I put
that in, but Andy didn't like it, so he took it out.
The castle keep is the most fortified part of a castle. I told
Andy you can't have a castle without a keep as the castle to
"The Keep," but he wanted no part of it. Now he can't touch
it. (Demonic laughter).
DOS VERSION
GALCN163.BAS
GALCN163.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 16.3" for MS DOS.
WINDOWS VERSION
GALCN220.BAS
GALCN220.EXE
Click to
download the QB64 version 22.0
Click to
download the Windows version. Will run full screen.
NOTE: This is "Galcon VER 22.0" for MS
Windows.
Rename
"GALCN220.RenameToEXE" to GALCN220.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 all your old DOS programs. Click on the
picture for the link.
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, and it
certainly shows.
The code is written in
simple terms. Someone with no knowledge of QuickBASIC can
tell half of what is going on in the game by reading it. You can
also tell I sometimes didn't know what I was doing.
This version has three improvements over the Rick Raddatz version. First,
all revolts will fail. Second, you can load a
saved game at any time, 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. Third, an "autosave" feature saves the game at the end of
each turn.
The game wasn't written in any structured way, it just evolved. The
initial version was a rectangle with dots in it.
This would become "the universe." The next version took 40 "planets"
and arranged them randomly on the dots. There would always be a
planet missing, but it wasn't missing, there was another planet on
top of it. The next version fixed it. The version after that 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 game. 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 "caret."
The first major roadblock was how to move the
"ships." Don't get the idea that I was
pounding on the keyboard while guzzling Coca-Cola like you see in a hacker
movie. I was pounding Yuengling Lager, not the keyboard. It was more like,
"It's Saturday night, I've dialed up all my favorite Bulletin
Boards, and now I'm bored. Glug glug glug... Kaaaahh." 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 said he wrote
the game in 1988 while a freshman in college. On his dorm wall was a
poster of Carol Alt. (When the game is running, a message to "Look
to Carol Alt for inspiration" sometimes runs across the bottom of
the screen.)
Rick said the source code for
the game was lost. He explained that as DOS faded away he just deleted it
to close a chapter in his life. I don't know whether to
believe that or not. Only ten years had gone by. Which chapter in
his life would cause him to delete the source code?
Anyway, according to Rick the idea for Galcon came from a game named
"Stellar Invasion," released in 1985 by Bearbyte Software, so he
couldn't take credit for it.
Stellar Invasion circa 1985. 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.
That was not much help at the time, but I came up with a way to move them myself.
I would have them zigzag from the attacking planet to the attacked
planet, two dots per turn. 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.
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 (one light year) down is two rows, but two dots across is four columns. I
had to compensate for the screen, and
"turn" the ships if they only need to travel one dot up or down.
I also didn't want the ships flying right past the destination
planet if they were just one dot away.
Then
a 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.
Four years went by and it was now the year 2000. Microsoft had 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 as a software developer and I
wouldn't be qualified to work there as a janitor. Rick
probably had the whole game worked out in his head like a modern day
Nikola Tesla.
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 for the 24 x 80 character screen, 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 found four dollars in a coat pocket.
This broadcast is now concluded. Tune in again tomorrow; same time, same
channel.