SpaceLord V3.07
a computer player for VGA-Planets 3
Design: Soeren Andersen
Coding: the above, Vigo von Harrach, Dietmar Schuster
Copyright 1994-2003
VGA Planets was written by Tim Wisseman
Note:
=====
This program is Freeware. Feel free to copy it to anyone anytime or place it
for download on your webpage.
That we don't charge any money for this program does not mean that it's crap.
When Soeren started writing this program somewhere back in '94 it was just for
fun and not to make money. And until now nothing has changed about that.
---------------------------
Structure of this document:
---------------------------
What SpaceLord can do for you, and what he can't
System Requirements
What you need to run SpaceLord
Usage
How to run SpaceLord
For those who care
Future
What's planned, and how you can affect it
The testing crew and other people we'd like to thank
Warranty
Disclaimer
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
SpaceLord is a substitute for a human player in VGA Planets (version 3). It
can be used to play against if no human players are available or it can be
used to replace human players who are no longer playing.
Unlike all other similar programs known to us, SpaceLord is a player-side tool.
That means it uses the data from RST-Files to generate the data for TRN-Files
instead of writing to the host data directly. SpaceLord does NOT cheat. Being
a player-side tool it just can't, without the host noticing it.
SpaceLord is not a human player. Nor will it ever fully substitute one.
It doesn't use fancy neural networks or fuzzy logic control, and is, for lack
of any real AI, not capable of learning.
It doesn't play exactly as a human player would and it has not aquired any
RAM scoops or other fancy things to make up for that. Basically, Spacelord is
dumb. But he is good at hiding it !
Before you decide that SpaceLord is probably not worth playing against please
notice that it has beaten all other similar programs known to us in (at least)
one on one test games. In our test games one race played by SpaceLord has
repeatedly beaten 10 allied Dominate-controlled-races !
All other CPlayers known to us do some sort of cheating (maybe with the
exception of Dominate). SpaceLord doesn't.
To be more precise: We've tested SpaceLord against the following programs:
- CPlayer V3.02 (by Tim Wisseman)
- Dominate V2.01 (by Cliff McKeithan and Mike Lindow)
- Kattivik V1.00 (by Jean Marie Clement)
- DPlayer V0.25 (by Daniel Tracy)
- ACP/Omega V4.22
- Admiral V1.12 (by Kenneth A.Strom)
- The Q V1.52 (unregistered) (by Alex Ivlev & The ShareNet Trolls)
(If you have newer versions of any of these programs or if you have a similar
program that isn't listed or have even written your own please send it to us !)
Computers are notoriously bad at reacting to anything unexpected and SpaceLord
is not an exception: Whenever something happens he hasn't been prepared for, he
won't conjure up some strategy that prevents this action in special (even
though sometimes it may seem so). Additionally, there are many situations that
SpaceLord expects, but is far from responding to in any rational way. (That's
all the maybe-implemented-in-a-future-release stuff). Some consequences (in no
particular order):
What SpaceLord can't do:
- PHost is NOT supported (yet !)
- SpaceLord doesn't know about Ion Storms. Period.
- He doesn't support the Engine Shield-Bonus for ship building and battle
strategies.
- Most Addons are not supported.
- When playing against the Privateers or Crystallines expect him to be a
poor opponent.
- You may find deadlock situations where SpaceLord is fooled into doing
the same dumb thing over and over again.
- In an alliance, SpaceLord won't attack you, but will not support you
either
- He is (as a general rule) less capable when playing the sneakier races
- He won't give up until completely wiped out (no ship, no planet, no
nothing)
- 2700 or more messages for one race will cause SpaceLord to crash, but this
usually shouldn't happen.
On the other hand, computers are fatigueless workhorses, and brute force can be
quite overwhelming: again, SpaceLord is no exception.
What he can do:
- All but the named settings in HConfig are supported.
- SpaceLord uses many of the racial abilities, and knows about most
special ship abillities.
- He supports alternative starmaps, ship hulls, beams and torpedos. This
includes maps with less than 500 stars (those with some stars moved
to unreachable coordinates). Alternative hulls, beams and torpedos
haven't been tested extensively. (Please send us a mail and tell us
about your experiences with SpaceLord and alternative stuff)
- He builds up a strong economy fast, and is pretty good at colonizing
large territories.
- SpaceLord can handle any of the possible starting conditions.
- As a playerside tool, you can use him as a fill-in even if you don't
host the game.
- He doesn't cheat, and therefore doesn't change the game as much as
other Computer Players.
- SpaceLord uses a couple of small tricks that probably aren't known
to the average player.
-------------------------------------------------------------------------------
System Requirements
-------------------------------------------------------------------------------
Though we haven't tried it, SpaceLord should be able to run even on a 286.
The program should be very fast on anything as good as a 486.
If you bought a faster machine, sell it and send us the cash :-)
-------------------------------------------------------------------------------
Usage
-------------------------------------------------------------------------------
From V3.05 on special versions of maketurn and unpack are included in
SpaceLord. This allows SpaceLord to automatically unpack RST-files and
create TRN-files. SpaceLord also creates it's own registration codes.
Simply invoke SpaceLord as "spacelrd <the game directory> /<races he should play for>"
Example:
The directory is called 'game1' and SpaceLord is to play for Lizards and
Colonies. Start SpaceLord with the following command:
spacelrd game1 /2b
RST-files for all races that SpaceLord shall play for should be in the game
directory. After SpaceLord is finished, it will have created TRN-files for
all specified races. These now only need to be transfered to the host.
If 'xyplan.dat', 'race.nm', 'hullspec.dat', 'truehull.dat', etc. are found in
the game directory these files will be used. Otherwise these files and all
other required data files should be in the directory from which SpaceLord was
started.
If you use alternate race-names make sure SpaceLord has access to the correct
'race.nm' file !
Teams:
SpaceLord does support races playing as teams. To do this you must generate an
empty file called 'SPACELRD.INI' in the game directory. Use a text editor to
add as many lines as you want with the following syntax:
team = 123456789ab
All races listed in one such line will play as a team. That means they will set
the 'ffN' friendly code and not attack each other. But they will not
cooperate (though maybe they will in future versions).
The SPACELRD.INI file can be changed at any time during a game. SpaceLord
will notice this and set the 'eeN' friendly code accordingly.
Example:
If you wanted the Lizards and the Rebels to play against the Feds, the Borg and
the Evil Empire your file would contain the following 2 lines (and nothing
else):
team = 2a
team = 168
If you wanted the Borg and the Lizards to stop fighting each other simply add
a line:
team = 26
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
1994
The original SpaceLord is written by Soeren in QBasic which was one of the least
developed programing languages available at that time.
Basic rationales are to completely ignore the enemy(!), but to conform to
Planet's rules. Ship's are moved one after another, based on an adhoc scoring
system.
1996
SpaceLord is "ported" to Pascal by Soeren and Dietmar; actually, not many parts
of the original SpaceLord survive: most are completely rewritten, and a whole
bunch of features are added:
Ship building is now also done via a scoring-system. Messages are read and
interpreted.
The intercept mission completes the step from a blind economist to a (mildly)
interacting strategist.
1997
Pascal outperforming QBasic by [some arbitrarily large number], the ship movement
routines are generally overhauled: Ships are moved in parallel, so they can
actually influence each other. Planetary economy is optimized, and the tax
system's holes are exploited (in Planets, NOT in the real world).
1998
Dietmar stops working on SpaceLord. Vigo (and Soeren) makes many changes
to make SpaceLord cleaner and faster. It is transformed into a player-side
tool. Many smaller functional changes.
1999
Strategic ship movement is improved. Minesweeping and -laying, cloaking and
robbing are implemented (though not very efficiently).
2000
A couple of bugs fixed, planetary economy further optimized. First public
release (V3.04).
From version 3.05 on maketurn and unpack routines are included in the program.
Thanks to Tim for sending us the instructions om how to generate Registration
Codes.
2001
Dan Murphy joins the programming team. Version 3.06beta is released.
2002
After nothing happening for a long time, Version 3.06 is finally released. One
of the main improvements is that allied races now share information on own and
enemy planets.
After evreryone else having disappeared or moved away, Soeren is the only
remaining member of the programing team.
Sometime in october I started a new project named 'Imperator'. Imperator is
to be SpaceLord's successor. Unlike SpaceLord it is going to be programmed
almost entirely object-oriented. This will hopefully result in a much cleaner
and easier to change code. Hopefully I'll be able to prevent it from inheriting
SpaceLord's main drawbacks and design faults.
2003
Version 3.07 with some minor changes and bugfixes is released.
...
-------------------------------------------------------------------------------
Future
-------------------------------------------------------------------------------
We have thought about a complete redesign of SpaceLord: Within the current
codebase, implementing tactical or strategic approaches has become too
ineffective. The original design decisions a) to ignore interaction, and b) to
ignore information from previous turns is still influencing the actual version.
As mentioned above, I've finally started The 'Imperator'-project. It is still
uncertain whether it'll ever reach a state where it can be released. But I
haven't given up yet...
Work on SpaceLord has been slowing down a lot. Since there's only one person
left, I doubt that any major changes will be made (...but you never know !)
I will however try to fix any bugs or major stupidities reported. I still have
lots of plans about what could be done to improve SpaceLord but only little
time to implement them. Some of these things will probably never be done, but
I will make new versions once in a while.
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
Soeren (soeren.andersen@gmx.net) has written and designed pretty much all of
SpaceLord. Dietmar helped in the initial porting to Pascal, and also play-
tested. Not much of his code has survived, though.
Vigo (wingo@fh-konstanz.de) did much of the more technical stuff, and also
finetuned some functional elements. He is (mostly) responsible for this
documentation.
Dan Murphy (Daniel-Murphy@home.com) joined our programming team in the beginning
of 2001. He intended to do some work on alliances, messages, etc., but he was
quite busy trying to make sense of our chaotic code and sparse documentation most
of the time. Unfortunately he disappeared at some point.
The earliest victim of SpaceLord was Ralph Thiele. He actually never won and
thus quitted in bitterness. Another remarkable playtester was Lars Duellberg.
He spotted the infamous Robo-Iron-Slave-going-berserk bug. Dierk Wilhelmsmeyer
and Frank Juestl were also among the first persons to play against SpaceLord.
Other people involved are (also in no particular order)
Nicki Falkenhayner
Daniel Scruton
(...and all the others that we drove completely insane over the years)
Thanx to
Alex Ivlev for VPA
Tim Wisseman for Planets, CPlayer and especially for the sourcecodes to maketurn
and unpack.
'Weird Al' Walker for Makemap
Soeren would especially like to thank:
Monster Magnet for writing the Soundtrack :-) available an the album 'Powertrip'
and a couple of other bands that he listened to while programing and whose names
or song titles were used as ship names.
If any of you want to report a bug, an observed breaking-the-rules, or some
intolerably dumb moves - feel invited to do so.
Questions? Answers? Or just send greetings? Just go ahead, send email to:
soeren.andersen@gmx.net
or
wingo@fh-konstanz.de
-------------------------------------------------------------------------------
Disclaimer
-------------------------------------------------------------------------------
This software is provided as-is. There are no warranties, expressed or
implied. We are not responsible if SpaceLord harms your computer (or you) in
any way.
This program may (and should be) freely distributed. You may not charge
people any amount for this program.