DataMuseum.dk

Presents historical artifacts from the history of:

DKUUG/EUUG Conference tapes

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about DKUUG/EUUG Conference tapes

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download
Index: T d

⟦468239196⟧ TextFile

    Length: 23937 (0x5d81)
    Types: TextFile
    Names: »doc«

Derivation

└─⟦b20c6495f⟧ Bits:30007238 EUUGD18: Wien-båndet, efterår 1987
    └─⟦this⟧ »EUUGD18/X/Xtrek/doc« 

TextFile

.\"Xtrek -- a multiplayer, space shoot 'em up game.
.\"by Chris Guthrie
.\"with assistance of Ed James and playtesting of the XCF
.\"Copyright (c) 1986 Chris Guthrie
.\"static char sccsid[] = "@(#)doc	1.1";

.sh 1 "Introduction"
.pp
Welcome to xtrek.
Xtrek is the latest in a line of games based on Empire on the PLATO
system.
Most of the ideas are stolen from the unix game
.i Trek83
by David Davis and Chris Guthrie and the VMS game
.i Conquest
by Jef Poskanzer and Craig Leres.
Xtrek is a multi-player, real-time game which uses System V
shared memory segments.
It currently runs under Ultrix 2.0, Suns 3's running 3.2,
and HP 320 systems running HP-UX 5.2.
Since the game uses shared memory for communications,
the daemon and
player processes must be run on an an appropriate host.
However, the player program,
.i xtrek,
throws an X window up on any workstation running X.
Please send any ideas/comments to chris@ic.berkeley.edu.

.sh 1 "The Basic Idea"
.pp
When you play Xtrek, you enter a galaxy as one of four competing
races.
You have a warship at your command.
The galaxy contains forty planets which start divided evenly between
the four teams.
The eventual goal of the game is to conquer the other teams' planets
and protect your own.
Usually this will involve frequently destroying other players'
ships while avoiding their efforts to destroy yours.

.sh 1 "Starting the Game"
.pp
To enter the game type
.b "xtrek monitor:0"
much like any X tool.
The program will use the $DISPLAY variable in your environment if
it is set.
If there is room in the game, you will see an entry window which may
contain some random status information and a choice of teams.
Click a mouse button in the box of the team you wish to join.
In terms of ship and planet abilities, all teams are identical.
Assuming everything is working properly (including xhosts) you
will be placed in the game.

.sh 1 "The Display"
.pp
When you start the game, you are given five or six windows.
The big left window is the local view from your ship.
You will see a number of objects in it.
First, your ship will always appear the center of the window.
Other ships will look like yours except that each
team has a different ship design.
On color workstations, each team also has a different color.
The small hex character to the right of the ship represents
the player number.
Round objects with names on them are planets.
They also are the color of their owning team.
Small dots on the screen are torpedos.
You will come to recognize these after they kill you a few
times.
Enemy torpedoes are a small cross while friendly torpedoes are a small dot.
Friendly torpedoes will not explode if they hit you.
Small circles are exploding torpedoes.
Lines between ships are phaser shots which hit.
Lines from a ship into space are phaser shots which miss.

.pp
The large window on the right is a map of the whole galaxy.
Only ships and planets appear on it.
Ships are just a player number (in hex) and team letter.

.pp
Directly below the galaxy window is a small window which
will occasionally contain warning messages like "Not enough
fuel to fire torp."
You will probably be killed shortly after this particular message.

.pp
Below the warning window is a message window.  This window
will be described later.

.pp
The small window on the left side is your status window.  It's
contents will also be described later.

.sh 1 "User Interface"
.pp
The mouse is the most important interface.
Whenever the game needs a direction -- to turn your ship, for instance --
it will use the mouse's position relative to your ship, in either large
window.
Torpedos and phasers will be fired toward the mouse's cursor, and
your ship will turn in the direction of the cursor when
appropriate keys are hit.
Commands are issued through the keyboard and mouse
buttons.

.sh 1 "Quick Instructions for Beginning Players"
.pp
Since no normal computer user will want to read the rest
of this document, the following is a quick explanation of
combat.  Try it for awhile, then come back and search the
document for more features.

.sh 2 "Help Window"
.pp
Typing 'h' will pop up a help window below the normal window.
The help window lists commands you can type.
It's useful for small problems like forgetting how to put
your shields up.
Typing 'h' again will get rid of it.

.sh 2 "Combat"
.pp
To survive in combat, keep moving.  This is done by typing the
number keys, 0-9.  Ships can fly at warp five indefinitely.
Engines will eventually overheat at higher speeds.  Turning
is easier at low speeds.  Particularly good is warp three or
four.  You turn by pointing your mouse in the direction you
wish to go, and typing the rightmost mouse key.  You will
turn relative to whatever window you happen to have the mouse
in.  When there is an opponent on the screen with you, you
probably want to start firing torpedoes at him.  Again, point the
mouse where you want the torpedoes to go and push the leftmost
mouse button.  If you get close enough, you might want to
try phasers.  Point the mouse directly at your opponent and
push the middle button.  A line will shoot out and you will
get a report on your damage, if you hit.
As a default, you will be hostile towards all other teams.
This can be changed later.

.pp
Torpedos that hit each do thirty points of damage to the
target.  Damage first comes off of shields, and when those
reach zero, damage comes directly off the damage stat.  When
your damage hits 100, your ship explodes and your opponent
gets credit for killing you.  You can repair damage by going
into repair mode (type 'R') but it will also leave you a
sitting duck for other players.  When you finish repairing,
use 'u' or '+' to put your shields back up.

.pp
Finally, if you get tired of playing, you can quit by typing 
.b Q
and waiting to self-destruct.
In the entry window, click the mouse in the 'quit' window to
exit the game.

.sh 1 "Status Line"
.pp
Now for some of the more technical details.
The status line appears below the local window
and contains the following useful information:

.sh 2 "Flags -- ship status flags"
.pp
Various flags tell the player about his ship.
.(l
S     -- Shields up
[GYR] -- Alert status
L     -- Locked onto a target
R     -- In Repair mode
B     -- Bombing a planet
O     -- Orbiting a planet
C     -- Cloaked
W     -- Weapons overheated 
E     -- Engines overheated
u     -- Beaming up armies
d     -- Beaming down armies
P     -- Copilot permitted
.)l

.sh 2 "speed - ship's speed"
.pp
This is the speed your ship is currently travelling.
Ships move between warps 0 and 9.

.sh 2 "dam - current damage"
.pp
This is how much damage your ship has taken.
If it gets over 100, you die.
Damage repairs slowly if shields are down, faster if
ship is in repair mode.

.sh 2 "shd - current shields"
.pp
Shields start out at 100 and take damage when they are up.
When they hit 0, damage will come off your damage rating.
They repair faster than real damage.

.sh 2 "torps -- number of torpedoes launched"
.pp
Each player is limited to twelve torpedoes flying at any given
time.
This is a count of the torpedoes you currently have in the air.

.sh 2 "armies -- armies on board"
.pp
This is a count of the number of armies you have on your ship.
Your ship can carry two times your current number of kills.
The maximum number of armies it can carry is ten.

.sh 2 "fuel -- how much fuel you have left"
.pp
Weapons and engines take fuel to run.
This is a count of the amount of fuel left on the ship.
Fuel regenerates slowly in space, but faster when orbiting a fuel planet.

.sh 2 "wtemp -- weapons temperature"
.pp
Using weapons drives up this stat.
If it goes over 100, there is a good chance your weapons will
freeze up for a random amount of time.
The temperature drops over time.

.sh 2 "etemp -- engine temperature"
.pp
Running your engines at speeds over five cause engine temperature
to climb.
Running at less than five causes them to cool.
Over 100, engines can freeze up for a random amount of time.

.sh 1 "The Commands"
.pp
These are the various key and button commands in the game.
They are not currently remappable other than through the XKeyMap
function.

.sh 2 "0-9 Ship's speed"
.pp
The numbers zero through nine set your ship's speed.
It takes time for your ship to accelerate or decelerate to the desired
speed.
Damaged ships can't use higher speeds.
When engines freeze, you can't set speed.
Setting speed breaks you out of a planet's orbit.

.sh 2 "k - set course"
.pp
The letter
.b k
or the right mouse button will set your course towards the current
mouse position.
Turning towards the desired course can take time, depending on 
your current speed and damage.

.sh 2 "t - launch torpedo"
.pp
The letter
.b t
or the left mouse button will launch a torpedo towards the current
mouse position if you have enough fuel and less than twelve torpedoes
currently out.
Torpedos travel at warp twelve and do thirty points of
damage when they hit someone.
You cannot be hurt by your own torpedoes.
Torpedos tend to wobble a bit in flight so they won't always
go straight in the direction you want them to.
The effect does create nice clouds of them, though.

.sh 2 "p - fire phaser"
.pp
The letter
.b p
and the middle mouse button will fire your phasers towards the current
mouse position if you have enough fuel.
You may only fire phasers once per second.
They cost a good deal of fuel.
If they hit someone, they will do 0-100 points of damage depending on the
range.

.sh 2 "d - detonate other torpedoes"
.pp
This command will detonate other torpedoes near you, doing less
than maximum damage to you.

.sh 2 "D - detonate your own torpedoes"
.pp
This will turn your own torpedoes off (if you've missed)
so that you can fire new ones.

.sh 2 "+ - put shields up"
.pp
This key will put your shields up.
Raised shields will take damage.

.sh 2 "-- - put shields down"
.pp
This key will put your shields down.
All damage will go directly to your damage stat.

.sh 2 "u - toggle shields"
.pp
This key will toggle your shields up and down.

.sh 2 "R - repair damage"
.pp
Your ship must be going warp zero to repair.  Hitting this key will
stop your ship and start repairing.  Your shields are down when you
are repairing and you cannot fire weapons.  In a nutshell, you are
a sitting duck.  Putting your shields up or moving is the best
way to get out of repair mode.
If your ship is orbiting a friendly repair planet, damage will repair
at a faster rate.

.sh 2 "o - orbit a planet"
.pp
If you are near a planet and going warp two or less this will
put in orbit around it.
You must be in orbit around a planet to bomb it, beam armies up
or down to it, repair at it, or get fuel from it.
Enemy planets will damage you if you get near them.
Setting a speed will break out of orbit.

.sh 2 "b - bomb a planet"
.pp
If an enemy planet has more than four armies, you can bomb
them.
With four or less armies, you must beam down armies
to defeat them.
Your shields will go down to bomb, and you will
take damage from the planet.
You get kills for the armies destroyed.

.sh 2 "z - beam up armies"
.pp
If the planet you are orbiting is owned by your team and
has more than four armies, you can beam
them to your ship to carry to other planets.
You must be orbiting to beam up armies.
The number of armies you can carry is equal to your kills * 2.
You can never carry more than ten armies.

.sh 2 "x - beam down armies"
.pp
This command will beam the armies that are on your ship down to a 
planet you are orbiting.
If it is an hostile planet, you will kill his armies.
If all enemy armies are killed and you land an army, you take the planet
for your team.
If it is a planet you own, you will simply add to the armies
already there.
If it is a friendly planet, owned by other teams, you cannot
beam armies down.

.sh 2 "L - get player list"
.pp
This gives you a quick list of other players.
To remove this window, just type 'L' again.

.sh 2 "P - get planet list"
.pp
This gives you a list of planets.
You get information only on planets which your team
owns or has previously orbited.  To remove this window,
just type 'P' again.

.sh 2 "i - info on object"
.pp
This will pop up a window near the mouse cursor which contains
information about the nearest object (planet or ship).
To remove this window, just type 'i' again.

.sh 2 "l - lock onto an object"
.pp
This will lock your ship onto the object nearest the mouse cursor.
If you are moving you will turn towards the object your are locked
onto.
If it is a planet, you will automatically go into orbit around it.
If it is another player, your course will constantly be adjusted if
he is moving.
To break the lock, just set course normally.
You cannot lock onto cloaked ships.

.sh 2 "C - throw a coup"
.pp
Sometimes players will discover that all their planets have been
taken, or have been left with no armies.
In order to allow the team some form of return you can hold a coup
on your home planet assuming that the following criterion are met:
.(l
Your team must have armies on no planets.
You must have more than one kill.
There must be less than five enemy armies (or zero friendly, should
you still own it) on your home planet.
You must be orbiting your home planet.
.)l
After the coup, the planet will have four of your armies on it.
As they come back you can take over more of your occupied worlds.

When your last planet is taken, you will have to wait from thirty
minutes to an hour before you can have a coup.

.sh 2 "? - repeat all of the previous messages"
.pp
Message sending is detailed below.  This command allows you to
review the current set of them.

.sh 2 "c - cloak your ship"
.pp
This nifty command allows you to remain invisible on the local
window of every player.  This would be nice except that you cannot
fire weapons while cloaked, and you use more fuel.
Finally good players can shoot at you on the galaxy map window
where you will appear as
.b "??."
Typing 
.b 'c'
again will turn cloaking off.

.sh 2 "@ - allow/disallow copilots"
.pp
This feature allows more than one player to fly a ship.  It will
be discussed near the end of this document.

.sh 2 "S - Toggle visual status window"
.pp
This will turn a visually oriented status window on and off.

.sh 2 "w - Set war status"
.pp
This command will give you a window that you can use to declare
war and peace with other teams.  It will be fully detailed below.

.sh 2 "* - Bring in a practice robot"
.pp
If you are the only ship in the game, this command will send a
practice robot into the game.
The robot will come in on your team, and be hostile towards you.
These robots are not as deadly as the ones which pop up to defend planets.
However, you don't get any credit for killing them -- just practice.

.sh 1 "Nitty Gritty Details"
.pp
This section contains the details on certain features.

.sh 2 "Planets and Armies"
.pp
Planets are updated every minute.  There is a random chance
that the number of armies will increase.  There is also a random
chance, that there will be a major die-off of armies.  This later
event is more likely on planets with many armies.
If you have less than three armies on the planet, they will not
grow as fast.
Planets with no armies are owned by the independent team and will
have no armies on them until someone beams one down.

.pp
Enemy planets do damage based on the number of armies they have.
This means planets with no armies do no damage.  Those with armies
will do (armies / 10) + 2 points of damage twice each second.

.pp
The teams' home planets and randomly, others, will provide
fuel and repair services.  Obviously, this makes these planets
particularly valuable.  These planets are selected up when the galaxy
is reset.

.sh 2 "Messages"
.pp
Messages are sent both from the daemon and from other players.
They appear in the message window at the bottom, right side of the display.
To send messages, just put the mouse into the message window.
You must type a character in that represents the recipient of your
message.  This can be 'A' for everyone.  [FRKO] to send to all members
of a given team.  [0-9abcdef] will send a message to an individual
player.  When you've typed this in, it will map to a proper address
and wait for you to type in some text.  When you type in a return,
your message is sent.
Typing an escape will abort the message in progress.

.pp
Now obviously, the next question is, "What if someone starts shooting
at me while I'm typing in my message?  Am I hosed?"
Simply move the mouse out of the window to defend yourself.  Messages
are only dealt with if the mouse is in the window.  You can stop
in the middle of the input.

.sh 2 "Robots"
.pp
Robots are an attempt to allow/prevent certain things.  First, we want
beginning players to have some lousy competition so they can get some
practice without simply being targets for better players.  Secondly,
we want to make sure that taking over the galaxy is not a midnight
waltz.

.pp
In order to invite a robot into the game, players are advised
to use the '*' command (described above) to bring in a practice
robot.
These robots are relatively easy to kill.
The second way to get a robot is to go into another team's space
and bomb one of
.i their
planets.
A robot will promptly show up and kill you.
Or at least try to kill you.
These defender robots are particularly nasty.
Good luck.

.pp
Robots are very much like other players.  The only advantage they
have over other players is that they don't use fuel.  Otherwise,
their torpedoes do the same damage.  They are also somewhat better shots.
Their torpedoes don't wobble, and they never miss with their phasers.

.sh 2 "War and Peace"
.pp
You can declare war and peace with other teams.
The greatest use of this is that you can use planets belonging
to teams you are at peace with for fuel and repair.
It also allows two teams to gang up on another without risking
killing each other.

.pp
There are three states a player can be in versus any other team:
Peace, Hostile, and War.  Being at War is irrevocable.  You cannot
change to any other state until you reenter the game.  You get to
war when you are hostile to a team and you either bomb one of their
planets, damage one of their players with weapons, or beam armies
down to one of their planets.

.pp
If you are hostile towards a team, your weapons will hurt all members of
that team (whether or not they are at peace with you).  As soon as
you hurt them, you will be at war.

.pp
If you are peaceful towards a team, your weapons will only hurt members
of that team who are not peaceful towards you.  In other words, two
players who are at peace towards each other cannot fight each other.

.pp
Players default to being at peace with their own team and hostile
towards all the others.  Obviously, they can declare war on their own
team.

.pp
To change your settings, type 'w' and a war window will pop up.
Click the mouse in the boxes of the teams you want to change.
Click in "re-program" to save the results.  Teams will be notified
of your changes.  Finally, there is a ten second delay to declare
hostility towards another team so don't get too close while you make
the changes.

.pp
The easiest way to know if someone near you is hostile is to use
the alert status described below.  Info on a player will tell you
their status towards you.

.sh 2 "Weapons"
.pp
Torpedos move at warp twelve and have a random life of three to five
seconds.  They tend to wobble a bit, so their accuracy goes down
at longer ranges.  Torpedoes will detonate and do full damage if
they get close to a ship.  They will do less damage to objects at a
slightly longer distance.  Torpedos will not be detonated by a non-hostile
player, but they will do damage if something causes them to explode.

.pp
When exploding, torpedoes can damage everyone who is near them except
the person who launched them.  Thus it is possible to kill your own
teammates and people you are at peace with.

.pp
Phasers must be within about 10 degrees of their target to hit.
Phasers that hit will maintain a line between the two ships.
Ones that miss will stick out to nowhere and look stupid.
All phasers cost a good deal of fuel.  It takes one second
to recharge your phasers for another shot.
Your phasers will affect teams you are at war with, or those
who are at war with you.

.pp
Ships that explode cause 100 points of damage with about the same
range as a torpedo.  Don't get too near one.

.sh 2 "The Galaxy"
.pp
You will bounce off the edge of the galaxy if you run into it.
Torpedos explode if they hit it.

.sh 2 "Planet information"
.pp
You can get information about any planet your team has orbited.
However, if the planet is taken by any other team, you will
lose information about the planet until it is reorbited.

.sh 2 "Ship's Status"
.pp
Your ship's alert status will tell you how close you are to hostile
ships.  Yellow alert represents about two screens distance.  Red
alert means that the enemy is on your local screen (even if cloaked).
Besides the status line, the border of your window tells you what
your alert status is.  This also works for the border of the icon.
The border patterns are discussed below.

.sh 2 "Xdefaults and options"
.pp
You can put the following options into your .Xdefaults
.(l
xtrek.boldfont:		6x10b
xtrek.font:		6x10
xtrek.name:		DragonSlayer
xtrek.reverseVideo:	off
xtrek.showShields:	on
xtrek.showStats:		on
xtrek.stats.geometry:	+0+655
xtrek.GAlertPattern:	0xf
xtrek.YAlertPattern:	0xa 0x5
xtrek.RAlertPattern:	0x0f 0x0f 0x0f 0x0f 0xf0 0xf0 0xf0 0xf0
xtrek.ralert:		red
xtrek.yalert:		yellow
xtrek.galert:		green
xtrek.border:		blue
xtrek.background:	black
xtrek.text:		white
xtrek.fed:		yellow
xtrek.rom:		red
xtrek.kli:		green
xtrek.ori:		slate blue
xtrek.warning:		red
xtrek.unknown:		light grey
xtrek.me:		white
.)l

.sh 3 "Fonts"
.pp
These options allow you to change fonts used in the game.
Our advice: "Don't."

.sh 3 "name"
.pp
This is your playername.

.sh 3 "reversevideo"
.pp
On black and white monitors this can ease eye-strain.

.sh 3 "showShields"
.pp
This causes the shields of you and other players to appear
as a circle around your ship when they are up.

.sh 3 "showStats"
.pp
This option will put up a visual status window above your display.
Some players find this easier to read than numbers.
The stats.geometry uses standard X syntax for a screen position.

.sh 3 "Alert Patterns"
.pp
These patterns are useful for showing your current alert status
based on the border pattern.  It is used for black and white
monitors only.
The alert colors are used for color monitors.  I think changing
them would be silly.

.sh 3 "The remaining color definitions"
.pp
These options allow you to set colors on various objects
so you can get much more information from your display.
Obviously, these only matter for color monitors.

.sh 2 "Other programs related to xtrek"
.pp
There are few other programs that come with xtrek that
have some use in the game.  They are described below.

.sh 3 "Copilot"
.pp
This program, started with the command:

.ti 1i
.b "xtrek -c pno monitor:0"

will allow you to fly a ship with player number pno
if he so permits.  This command is pretty robust.
Two players flying a ship can be very deadly.
Typically, one steers and one shoots.

.sh 3 "scores"
.pp
Xtrek does, in fact keep some statistics around in the
file .scores.  Scores can be used to print this information out.
It obviously should have been built into xtrek itself.

.sh 3 "robot"
.pp
This is the program xtrek uses to send robots into the game.
Robots come with gobs of command line options, but you'll have
to look at the code to see what they do.

.sh 3 "watch"
.pp
Like copilot, watch mode can be entered directly from
xtrek using the command:

.ti 1i
.b "xtrek -w pno monitor:0"

This allows you to watch all the actions taken by the particular
player (without him knowing it).
You can change the player being viewed by clicking on a new
player.