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:

---------------------------

 

Description

    What SpaceLord can do for you, and what he can't

 

System Requirements

    What you need to run SpaceLord

 

Usage

    How to run SpaceLord

 

History

    For those who care

 

Future

    What's planned, and how you can affect it

 

People

    The testing crew and other people we'd like to thank

 

Warranty

    Disclaimer

 

-------------------------------------------------------------------------------

    Description

-------------------------------------------------------------------------------

 

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

 

 

 

-------------------------------------------------------------------------------

    History

-------------------------------------------------------------------------------

 

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.

 

 

-------------------------------------------------------------------------------

    People

-------------------------------------------------------------------------------

 

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.