home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Frozen Fish 1: Amiga
/
FrozenFish-Apr94.iso
/
bbs
/
alib
/
d1xx
/
d178
/
cosmic.lha
/
Cosmic
/
Cosmic.doc
< prev
next >
Wrap
Text File
|
1989-02-04
|
24KB
|
495 lines
Cosmic Conquest
V1.01
A interstellar multiplayer game of War and Peace
PUBLIC DOMAIN NOTICE
This program was placed in the public domain. It may be freely copied
for non-profit by anyone as long as the original archive or all the
unmodified files from the archive are distributed in one directory.
Anybody may modify this for his personal use, but please don't give
other people modified copies. On the other hand I'd be delighted to
have your modifications sent to me and to incorporate them in the
main program . This program is strictly public domain and not
shareware and as I don't depend on living on my programs and I wrote
this for fun, I wish you to play it at no higher price.
BEFORE START
Make a "games" subdirectory in the same directory you place the game.
In this new directory all saved games are stored.
HOW TO PLAY
The aim of Cosmic Conquest is to be the sole remaining ruler over the
complete star cluster of 16 stars. Cosmic Conquest is always played
with four players which can be any combination of different human and
computer players. After selecting "Start a new game" enter the names
of the four players. To specify a computer player use as name,the
name of the computer algorithm and add some string to make the name
unique. There are four supported computer algorithms. These are
Klingon, Romulan, Berserker and Alien. Acceptable names are for
example:
"romulan A"
"Klingonian"
"BerSERker Fred"
Currently only the klingon player is working intelligently,the others
are in V1.01 only stumps. To specify a player who is non-active
already from the beginning use the name "dead". All other names are
interpreted as names of human players. After having entered the names
the game starts and the players take turns at entering their
commands.
DISPLAYS
A) Main map
This map is automagicaly displayed in the large window on the left
hand side of the screen. Superimposed on a dot pattern all stars
are displayed as capital letters. Stars are color coded. Stars
completly controled by one player are displayed in his color.
Stars on which several players control planets are displayed in
orange. Unknown or uninhabited stars are displayed in white. Stars
displayed in inverse are stars which already have been explored but
on which currently there is no information. Beware ! Information
displayed about these stars may be out of date and no longer
accurate. On this screen also all taskforces known to you are
displayed as minor letters in the color of their empire. Only
taskforces in normal space(not in hyper space) are displayed.
Sometimes several taskforces will be at one star and the display
will become muddled. To obtain exact information simply examine the
starsummary for this star. To obtain a starsummary on an star click
on it. To obtain information on a taskforce click on it. If there
are several taskforces at the star then a starsummary is displayed
and you can select your taskforce from there. To obtain a general
overview about all stars simply press the left mouse button
somewhere on the background pattern.
B) Status Display
The status is displayed in middle window on the right. To obtain it
simply press the right mouse button anywhere. It gives your name
and your techlevel. This level starts at 100 and increases with
research. What types of ships are available to you depends on the
techlevel. The pop-stat show the number of millions of creatures of
your race alive.This includes colonies enslaved by other races.
The ind-stat gives your total industrial capacity. It is the sum of
the industry of all planets you rule. Below,the names of all other
races and your attitude towards them (first) and their attitude
towards you (second). This can be War, Peace or Alliance.
C) Starsummary
The starsummary is displayed in the middle of the 3 windows on the
right hand side. In the top line the letter of the star and its
coordinates are displayed. In the four lines below information on
the up to 8 planets (numbered from 0 to 7) of the star is
displayed. The color of these entries is coded according to the
color of the ruler of the planet. A planet displayed in inverse
represents one on which valuable ore may be mined.The first 3-digit
figure gives the maximum population of the planet in millions. The
second one gives the current population in millions. If the planet
is enslaved this stat is displayed in the color of the original
ruler. The third one is the current industrial level of the
planet. It describes what amount of ships or things may be build in
a certain time on this planet. This stat may never go above
population number. The final letter (or blank) is an abbrieviation
for the type of product beeing built on the planet. Blank means
nothing. Minor letters stand for different ship types. M stands for
Mining, R for Researching, I for Investing. To obtain further
information on a planet simply click on it. In the four lines below
all taskforces at this star are displayed for the four players.
Taskforces displayed in inverse are taskforces which haven't yet
arrived at the star ,but of which you know that they are headed
there. To obtain data on a taskforce click on it here. To obtain an
overview over all taskforces of one player click on the
appropriate "Tf" sign. In the last line the seven nearest stars
together with their distances are displayed in order of proximity.
Click on a star to obtain its summary.
D) Staroverview
The staroverview is displayed in the middle of the 3 windows on the
right hand side. All stars are color coded as in the main map. For
each star the sum of all its planets, population maxima, population
and industry is displayed. Click on a star to obtain the
starsummary.
E) Taskforcesummary
The taskforcesummary is displayed in the lower right hand window.
In the headline of the display the letter of the taskforce, its
star, its capacity , its speed and its range is displayed. If the
taskforce has arrived at a star only the letter of this star is
displayed. If it is in hyperspace, the name of the star it is
heading at, and the number of years it will still take it to arrive
there is displayed. The speed is the speed of the slowest ship in
the taskforce ,that is not carried by another ship. The range is
the range of the ship with the smallest range in the taskforce,
that is not being carried. These two stats give the
maximum distance between stars that a taskforce may
hyperspace non-stop and the distance it covers in each year.
The third stat gives the sum of the sizes of the storage holds of
all ships (including carried ships). In the body of the display
the names of all shipstypes in the taskforce appear. If you have
information about the interior of the ships (i.e. it is one of your
taskforces) 2 figures are displayed at the end of the line. The
first gives the number of free ships of this type in the taskforce,
the second the number of carried ships of this kind in the
taskforce. On the other hand if it is a foreign taskforce you will
only see the number of visible ships of each kind. To obtain a
shipsummary, a summary of the technical stats of one kind of ship,
click on the name of the shiptype. To obtain an overview about all
the taskforces of the player (of which you know) in that this kind
of ship is known to be, click on the number of ships.
F) Taskforceoverview
This is displayed in the lower right hand window. All known
taskforces are displayed including the star they are heading at (or
are at) and the number of years it will still take the taskforce to
arrive there. To obtain a taskforce summary click on the taskforce
you wish to obtain info on.
G) Shipoverview
This is similar to taskforceoverview , but instead of displaying
the star each taskforce is heading at, the number of all
free(first) and carried(second) ships of one shiptype of each known
taskforce of one player is displayed. If you don't know what is
inside a taskforce(i.e. it's not one of your taskforces) then only
the visible ships are displayed To obtain a taskforce summary
click on the taskforce you wish to obtain info on.
H) Planetsummary
Planetsummary is displayed in the lower right hand window. In the
headline star and planet are displayed. In the second line the
population maximum for the planet, its current population and its
industrial level are shown. The name of its displayed in the third
line product. In the next line the cost of the product( the number
of industrial points needed to build it, e.g. , to mine one point
of ore has a cost of 15. A planet with an industry of 60 produces 4
oreunits a year. A light cruiser costs 100,thus a planet with an
industry of 40 needs 2.5 years to produce one.) is shown. The
number of years needed to produce one unit as well as the estimated
time at that the next unit will be available is displayed. To
obtain further information on the ship click on its name.
I) Shipsummary
Shipsummaries are displayed in the lower right side window. In the
headline the name of the shiptype is displayed. In the second line
the size of the ship as well as its capacity is displayed. These
stats are important for how many ships of a type another ship can
carry inside its storage holds. The hyperspeed stat gives the
maximum speed of any taskforce in that such a ship is and is not
carried. The hyperrange gives the range of a taskforce in that such
a ship is and is not carried. If either or both of these
attributes is 0 then this shiptype has no hyperdrive and cann't
move by itself from one star to another but must be carried by
another ship.The attack stat gives the strength of the builtin
weaponry of this shiptype. No of attack gives the number of attacks
of this strength such a ship may make. Speed determines when such a
ship makes its attack in a battle. The lower it is the better.
Shields gives the amount of protective devices of the ship. A
shield will block an attack of the same strength 50 % of the time.
Techcost gives the cost in industrial points it costs to build one
such ship. Techlevel gives the minimum techlevel a race has to have
to be able to build such a ship. If both of these attributes are
displayed in inverse the ship is not available. Below these
attributes several some special abilities of ships may be
displayed:
Starkill = This ship is equiped with a special device which can
make suns go supernovae. All planets and all
taskforces present are destroyed. BEWARE !!! Very
dangerous ! Only for absolute emergencies.
One-Shot = This is a unmanned ship which is destroyed in its
first attack. For example: Torpedos.
CataStart = Ships with this attribute can be ejected via
catapults very quickly in a fight, if they are
carried aboard ships with the catapult equipment.
This allows attacking taskforces to have some carried
ships attack immediately in the first year of battle.
Not build = Ships of this type cannot be build using normal build
commands. For example: Oreunits and Popunits.
Catapult = Ships with this ability can catapult ships with the
CataStart attribute.
J) Help
The help screen is displayed if you at any time click in the upper
right hand command window. It shows all commands and their one
letter abrieviations.
All displays are always immediately updated to represent any
change.If in any display the sign oo(infinite) appears this
represents a figure which is out of bounds. It is certainly larger
than the maximum integer to be displayed in the given number on
characters (for Example if any figure greater than 99 is going to be
displayed in a 2 character field it is displayed as oo.).
COMMANDS
Commands are entered in the command window in the upper right hand
corner. In contrast to display functions which are completly mouse
driven all commands are entered at the keyboard. First enter the one
letter code for each command ,then you are queried for all
parameters of the command in this window. In most cases, in which you
have several different options you can scroll through them with the
<-key and the >-key. Press return to select. You can also enter an
identifying letter for each option immediately. When queried for a
number the maximum amount is displayed in brackets. Press 0-9 to
select this small quantity to select other numbers use the <-key and
the >-key. To select maximum press >-key and shift simultaneously.
To select the minimum (usualy 0) press the <-key and shift
simultaneously.
g = Go on
This command ends your turn and allows the next player to get his
turn.
h = Hyperspace
This command allows you to send taskforces from one star to
another. You are querried first for the task and then for the
destination. This command will automaticaly carry ships with
insufficient range. If this isn't possible you will get an error
message. It also optimizes for speed.(Carries slower ships in
faster if possible.)
e = Emigrate
If you rule a planet and the population is of your race, you can
order some of your loyal subjects into large containers, where
cold sleep is induced. Into each of these containers fit 1
million creatures. These containers are then fired into space.
They are called popunits. To colonialize a planet simply land
(with the l command) popunits on planets and your subjects will
awake and start to build another outpost for your empire. When
the population on a planet has reached its maximum, surplus
population is automaticaly sent into popunits.
k = Kill
This is not a very philantrophic( or philcreaturic) command but
sometimes necessary. It allows you to kill the population of any
planet you control if the population happens to be of another
race (when you have conquered and enslaved the population). If
you don't specify the planet(i.e.you hit return) and there is a
ship with starkiller present, you eliminate this star and all
taskforces there !
Be careful !!
j = Join taskforces
With this command you can join up to 30 taskforces. End input
with return. All taskforces have to be at the same star. If
possible all taskforces are joined to one.
l = Land taskforce
With this command you can colonialize other planets or supply
planets you already own. As many popunits as there are in the
taskforce and fit on the planet land. This will increase the
population by this amount. Then as many oreunits as there are in
the taskforce land and increase the industry. (Providing that
wouldn't raise the industry higher than the population).
n = New taskforce
This command allows you split an existing taskforce into two. You
are queried for the number of ships of each type in the new
taskforce. All ships in both taskforces are unloaded.
d = Diplomatic declaration
This commands sets your attitude towards the other players. You
can declare WAR and this propably causes the other side to
declare WAR on you as well as soon as it is its turn. If you
have declared war and your taskforces meet they will fight. You
can make a PEACE offer and hope that the other side will declare
PEACE on you as well or you can offer an ALLIANCE. This ALLIANCE
will be fulfilled by your side only until the other side declares
ALLIANCE as well.
p = Possess planet
If you defeat another player and conquer one of his stars you
will propably wish to use this command. It allows you to take
control of any planet, if all the enemy taskforces have fled or
were defeated. The population of the planet will be enslaved. It
will always inform your opponent of the current state on this
star. You will also be unable to raise popunits from such a
planet. Thus you may wish to kill(= k) this population. On the
other hand, if you possess a planet of a culture with a higher
techlevel your techlevel will increase as well.
b = Build ship
This useful command allows you to set the production on any
planet you rule over. You have several options:
Any kind of ship that your techlevel allows you to build.To get
this option enter the letter of this ship or select it the <,>
and RETURN keys.
RESEARCHING. This allows you to increase your techlevel. Use a
capital 'R' or select it with the <,> and RETURN keys.
INVESTING. This option allows you to increase the industry on
this planet ,but it is rather slow, thus use oreunits whenever
possible. Use a capital 'I' or select it with the <,> and RETURN
keys.
MINING. This is only possible on a planet on that ore is found.
These planets are displayed in inverse in the Starsummary. When
using this option your planet outputs oreunits. Use a capital 'M'
or select it with the <,> and RETURN keys.
c=Carry ships
This command allows you to specify the number and type of ships
being carried in a taskforce. As the ships are taken apart
before carrying, large ships can be spread among many smaller
ships. Also note that the empty space inside the storage holds of
large ships is used. This means 4 glitter with a size of 20 and a
capacity of 19 each, can be stored inside one single transporter with
a capacity of 4. Carrying ships can have different reasons. Some
ships don't have hyperdrives or only drives with insufficient
range. This means that they have to be carried by longer range
ships on far distances. Others are quite slow and fast taskforces
can be speeded up by faster ships carrying the slower ones. Note
also that ships stored inside other ships can't be destroyed in
battle, even if their carriers are blown up. They will be unloaded
and undamaged next year. This may be a way to protect valueable
but easily destroyed ships like space cannons or Q-bombs
inside larger ships with better armor.
HINTS
The following hints may help you to play a better game against
Klingon or another human player.
1. When the cluster is generated you always get one populated
mineable planet type 60 and one empty planet type 40. There will
be another star within a range of 4 units. There won't be an
enemy within 8 units,thus you needn't be to frightend at the
beginning.
2. Use cheap scouts to explore and on sentry duty to yet
uncolonialized stars. Have sentries on all stars within 6 or 8
units of your main industrialized stars. They won't stop an
attacking enemy but you will get advance warning to prepare to
defend. Having one of your main stars surprised by 3 light
cruisers, conquered, and all population killed when you bring in
your taskforces is NOT the way to win.
3. How fast your population grows depends on the distance from the
sun. Planet 3 is rather ideal. Planets farther in are
progressivly to hot to have a large birth rate and planets
farther out are becoming colder and colder. Build up your
population in the middle planets. Planets 0 and 7 will never
increase their population but always remain constant.
4. Use glitter ! Glitter is very cheap and easily destroyed but has
a large size and many shots will be drawn away from your more
important ships. As its capacity is only one less than its size,
it can be transported effectively at the cost of one.
Use clearers ! These ships have a quite good speed ,thus they
will fire early in a battle. They have many attacks but each of
them is pretty weak. Their attacks can practicaly only penetrate
ships without armor. They are the ideal counterweapon against
glitter, as they clear it away ,before the other ships fire
might be distracted.
5. Never use invest, if you have got ore available.
6. The most important ship to build, after having conquered all stars
in the close neighboorhood, is the Trans II. It is available at a
techlevel of 210 and allows you to expand across the gaps between
the stars.
7. Never stop building a ship that is almost finished. You will lose
all efforts you put into it.
TECHNICAL DOCUMENTATION
The game can be completly rebuilt by executing the makeall-file.
The resulting executable might be slightly shorter as a secret
debug mode has been removed from the source.
To add more computer players feel free to modify the files "romulan.c"
and "alien.c". To see how a simple computer player is written, examine
the "klingon.c" file. If you write a clever or unusal computer player
I'd be obliged, if you sent it to me for incorporation in future versions
of "Cosmic Conquest".
To add more ship types, modify the main.c file. If you invent good ones
send them to me.
The files:
main.c - startup code and definition of ship types
defs.h - definitions for the game
con.c - main part of the program for computation
of moves and fights
human.c - input/output routines for the human player
klingon.c - klingon player
romulan.c - romulan player (not completed)
berserker.c - berserker player (not completed)
alien.c - alien player (not completed)
cosmic.doc - this text
makeall - batchfile
Sorry, there are very few comments in the source. But the code is obvious,
isn't it ?!?
DESIGN LIMITS
Most of these limits can be changed by changing the defs.h file and
recompiling the game.
1. There can never be more than 250 free ships of one type and 250
carried ships of one type in one taskforce. Additional ships
are ignored.
2. There can never be more than 26 taskforces.
3. There are only 16 stars.
4. All other data are short integers. This means values up to
32000 should be ok.
THANKS AND APOLOGIES
Thanks to Bob Shimbo for the original amiga port. Altough this
source is completly independent, your program obviously
inspired me very much.
Thanks to Charlie Heath for writing the editor without that
programing on the amiga would be a nightmare(...well,almost). BTW,
ARP is the best thing that happend to the amiga since the invention
of the coprocessor.
Thanks to Manx for writing one of the most buggy professional
compiler I've seen to date (except of course the earlier versions of
Manx C). The assembler keeps crashing the machine without any reason
and generating illegal address gurus in the executable. (And don't ask
about the sdb !!!).
Note to Chris Gray: Received your "Empire" yesterday and noted a few
similarities. Any resemblance is purely coincidental.(Good game
anyway. But please add support for the second terminal (I've got one
,I have to use it) and pleeeeeease debug it thoroughly. It just
keeps guruing.)
If you have got ideas or code for enhancements of the program, send
them to me on a disk. You will receive the newest version of Cosmic
Conquest. Maybe your enhancements will already be incorporated in
the version you receive. If you only wish to have the newest version
send a disk to me as well, but please include the postage for the
reply mail.
Sorry you can't reach me via any network but that's a problem here
in Germany. You can reach me via the german smail at this adress:
Carl Edman
Pasteurstrasse 7
D-8033 Martinsried
Federal Republic of Germany
Have fun,
Carl Edman