.TH WARP 6
.SH NAME
warp - a real-time space war game
.SH SYNOPSIS
.B warp [options]
.SH DESCRIPTION
.I Warp
is a real-time space war game that requires skill and quick thinking.
"Real-time" in this context means that the enemies keep moving (and shooting)
even if you don't.
A unique feature of
.I warp
is that blast propagates; it is unhealthy to remain near things that are
in the process of blowing up.
If a given universe is above a critical density it may chain react.
Scoring is like many popular arcade games--there are multiple waves which
get harder and harder as you go along.
Nobody has ever maxed out the scoreboard without cheating.
.PP
Unlike many space-war games,
.I warp
is not simply a shooting gallery.
Along with phasers and photon torpedoes, you have tractor beams and a cloaking
device.
Skill in navigation is important.
It helps to be schizophrenic, because you must manage an Enterprise and a Base
simultaneously.
And enemies do not simply shoot back.
You can get tailed, absorbed, snuck up upon, hemmed in, rammed, loved to death,
reprimanded for destroying civilized life, dragged around, robbed, damaged
and eaten.
And if you should happen to get bored by the enemies (a trifle unlikely),
you can always watch the interesting star patterns.
In fact, you'll have to, since your tactics will depend upon what kind of
universe you find yourself in.
.PP
.I Warp
is played in a double wraparound universe, i.e. the bottom is connected to the
top, and the right is connected to the left.
You need a crt with random cursor addressing and at least 24 lines by 80
columns.
For more information about about how to play, simply run
.I warp
and say "y" when it asks if you want to see the instructions.
There is also a single-page command summary that you can get while playing
by typing a "?".
.PP
Command line options include:
.TP 5
.B -b
Put
.I warp
into beginner mode.
Makes the difficulty increase more slowly, but penalizes you for it.
.TP 5
.B -d<n>
Sets the initial difficulty to
.BR n .
.TP 5
.B -l
Play a low-speed game.
Changes the basic cycle time from 1 second to 2 seconds.
This switch is automatically set at baud rates below 2400.
You may want to set it at higher speeds if your terminal cannot keep up
with the output.
(This should never happen on BSD systems, which have an IOCTL call to
determine output queue length.)
Because this makes the game easier, a separate scoreboard is kept for
low-speed games.
.TP 5
.B -m
Terminal has a meta key which turns on the eighth bit.  Ordinarily the
eighth bit is stripped in order to ignore parity.
Metacharacters will appear to the keymap as prefixed with a ^A, and will
subsequently have the same effect as a control character, unless otherwise
mapped.
.TP 5
.B -s
Just prints out the scoreboards and saved games and then exits.
.TP 5
.B -v
Prints out the version number.
.TP 5
.B -x
Play an experimental game.
This causes
.I warp
to ignore any saved game, and disables the ability to save
the current game.
Thus you can play around with something or show
.I warp
to someone without jeopardizing a currently saved game.
.SH ENVIRONMENT
.TP 5
.B WARPMACRO
If defined, names a file containing keyboard mappings and macros.
If not defined, the value %X/Kbmap.%{TERM} is assumed.
The macro file contains lines of the following form:
.sp
<keystroke-sequence> <whitespace> <canonical-keystroke-sequence>
.sp
You may use certain % interpolations and ^<letter> control characters.
For possible % interpolations see warp.h.
Sequences in the canonical-keystroke-sequence bounded by ^(...^) are
subject to reinterpretation via the keymap.
This file has two major uses.
First, you can set up your commands to use any kind of prefix key your terminal
might have, or change the key bindings in any other way you choose.
Second, you can define arbitrary macros, such as this:
.sp
# define Corbamite maneuver
=	DDllllll
.SH AUTHOR
Larry Wall <lwall@sdcrdcf.UUCP>
.SH FILES
~/.fullname, if full names aren't in /etc/passwd
.SH DIAGNOSTICS
Generally self-documenting, as they say.
.SH BUGS
Addicting.
At the end of a wave, all you have to do to keep going is hit a space.
You see the message "Hit space to continue" and automatically hit space.
About 2 seconds later you remember you wanted to go home, but by then
it's too late to escape without penalty.
.PP
You can't kill a backgrounded
.I warp
process directly, because it is running setuid.
You have to use the killer built in to
.IR warp .
.PP
Now that there is a space amoeba, there ought to be tribbles.
But it might be too much trouble...
Warp is a real-time space war game.  This means that the enemies will keep
playing even when you sit still.  Another peculiarity is that things which
blow up can damage other things around them.  Universes above a critical
density may chain react.

The game starts at difficulty 1, and gets more difficult with each
succeeding wave, up to difficulty 99.  You're not likely to get that far.
(Invoking warp with a -b switch causes the difficulty to increase more
slowly, but games count only a tenth as much.)  The game starts with
5 Enterprises and 3 Bases, and you get more for surviving long enough.
The game is over when you run out of Enterprises and Bases.

The object of the game is to get as many points as possible.  This is done
by destroying as many enemies as possible.  This is not a trivial task.
Each wave starts with one Enterprise and one Base, and continues until
either both the Enterprise and Base are destroyed, or all the enemies
(including any homing torpedoes) are destroyed.  It is possible to abort a
wave, but you will be penalized for it.  The game may be saved between waves.

A -x switch causes any saved game to be ignored, and causes the new game
not to be saveable.  Hence it is possible to run test games without
invalidating a currently saved game.

The game is played in a 23 x 40 double wrap-around universe.  Everybody
(both you and the enemies) gets the chance to move once every second,
unless a -l (low-speed) switch was given or you are under 2400 baud, in
which case it's every two seconds.  The following symbols are displayed:

				FRIENDS
E	Enterprise with shields		e	Enterprise without shields
C	Cloaked E with shields		c	Cloaked E without shields
B	Base with shields		b	Base without shields
+	Friendly torpedo		M	Harry Mudd

				ENEMIES
K	Klingon				G	Gorn
R	Romulan				A	Apollo
	Romulan with cloaking device!	&	Space Amoeba Nucleus
T	Tholian				>,<	Planet crusher
x,X	Hostile torpedo			o,O	Homing torpedo
P	Pirate				M	Harry Mudd

			    MISCELLANEOUS
*	Star				@	Inhabited star
|,-,/,\	Web				~	Protoplasm
other	Friendly Freighter, for now...

The following keys control the DIRECTION of your various actions:

	h or 4          left
	j or 2          down
	k or 8          up
	l or 6          right
	b or 1          down and left
	n or 3          down and right
	y or 7          up and left
	u or 9          up and right

(You will note that the letters are the same as other visual games, and the
numbers are for use with a keypad.)  By themselves, these keys move either
the Enterprise or the Base, whichever is the current vessel.  When shifted,
they fire photon torpedoes in the specified direction from the current
vessel.  When used with either the CTRL key or the FUNCT key, phasers
(turbo-lasers for the Base) are fired in the specified direction.  (CTRL
won't work with numbers, and FUNCT probably doesn't exist on non-TVI
terminals.)  When preceded by an 'a', an attractor beam is fired in the
specified direction, and when preceded by an 'r', a repulsor beam is fired.

These keys have special functions:

	del or %        fire photon torpedoes in every (reasonable) direction
	s               stop all friendly torpedoes
	S or 0          stop the Enterprise when in warp mode
	d               destruct all friendly torpedoes (quite useful)
	D               destruct the current vessel (commit suicide)
	i/w             switch to Enterprise and put into impulse/warp mode
	c/v             switch to Enterprise and put into cloaking/visible mode
	p		switch to Base (not very mnemonic, but 'b' is taken)
	o               switch from Enterprise to Base, or vice versa
	z		zap explosions (multiple zaps extend further) (E only)

	^R              refresh the screen
	^Z              suspend the game (on a bsd system)
	q               asks if you want to exit this wave (will not work
			    within 10 cycles of previous q command)
	Q		exit this game (not wave)
	?               display a summary of these commands

There may be additional commands listed in your terminal's keymap file.
Unrecognized keystrokes are ignored.  IF YOU FORGET ALL THE OTHER COMMANDS,
REMEMBER "?", which gives you help.

Commands for moving the Enterprise may operate in one of two ways.  If it
is in impulse mode, movement commands affect the position of the ship;
if it is in warp mode, movement commands affect the velocity instead.
The Base always moves in impulse mode.  Since multiple commands may be
entered in one turn (if you can type fast enough), it is possible to jump
over things even in impulse mode.  In a crowded universe this may be the
only way to go.

(Actually, motion commands always change the velocity--the actual motion
does not occur until the next turn.  Impulse mode simply causes the
velocity to be zeroed out at the end of every turn.  Phaser commands, on
the other hand, are executed immediately.  If you want to move and fire a
phaser, you must wait for the motion to actually occur before typing the
phaser command, or the phaser fires from your old position.  This is a
feature, not a bug, and is intended to reflect reality.  Really.)

If multiple torpedo launching commands are given in a turn, a single torpedo
is launched with extra velocity.  You can thus launch photon torpedoes over
objects in the way, and get them where you want them quickly.  This feature
works well with the destruct button.  Variations on this may be useful
against the Space Amoeba.

NOTE:  Phasers destroy the target by blasting the projected next location of
the object hit.  This means that if the object hit, be it Klingon, Romulan or
Enterprise, changes velocity in the same turn, it can elude the effect of
the phaser!  (Note that this also means that if you phaser a Klingon or
torpedo that is about to ram you, you will be phasered as well as he/she/it.
This can be embarrassing, not to mention deadly.)  Smart players move
immediately upon phasering something at short range, or whenever they
think they might get phasered (in other words, most of the time).

Objects with larger mass can bounce objects with smaller mass out of the way.
In a crowded universe the bouncee can bounce quite a way before finding an
empty place to land.  If you let the Tholians fill up the universe with web,
so that there is no place to bounce to, the Tholians win that wave.

The status line across the top gives the current mode, the number of
points accumulated this wave, the Enterprise's energy and torpedoes, the
Base's energy and torpedoes, the number of stars, the number of enemies,
and the stardate.  You will note that nice things happen to your energy levels
when you put the Enterprise next to the Base, or the Base next to some stars.
Bad things happen inside an Amoeba.

An object is destroyed when its energy goes negative, either from a direct
hit, or from the blast of the previous turn's explosions.  Enemies and
stars start with random amounts of energy.  High energy enemies can go warp
2.  A Romulan with sufficient energy maintains a cloaking device.  Tholians
spin web, Gorns shoot homing torpedoes, and the Planet Crusher munches
anything in its way, even Apollo.  Apollo won't let you go unless you kill
him, but he loves you very much and beefs up your shields considerably.
Both Apollo and the Planet Crusher recharge themselves, so you must hit
them hard in a single turn to do them in. (Yes, the Planet Crusher must be
shot in the mouth--he can only die of gluttony--and he blasts out of his
mouth when he dies.)  Tholian web may be crossed only by coasting across it
in warp mode, or by blasting it (but web blasts extend twice as far as
normal blasts, so keep your distance).  The Space Amoeba sucks energy and
grows, and you must destroy the nucleus.  Somehow.  There are at least four
ways.  Phasers won't work on the big ones.

Pirates turn inhabited star systems into uninhabited ones.  Even Friendly
Freighters will take potshots at you if you get them mad enough.

Note that because of the size of the Base's turbo-lasers (the Base does not
have phasers) they cannot shoot anything next to the Base.  (This is why the
Death Star died!)  In part, this is to protect the Enterprise.  It also lets
you shoot over one adjacent star.  The Enterprise's phasers will shoot over
a arbitrary number of adjacent, contiguous stars, including inhabited ones.
Phasers die away with distance, so don't expect them to kill everything with
one blow.

While the Enterprise's shields are up (when it is displayed as "E" rather
than "e"), hits on it count only a fifth as much (or even less if you are
moving in warp mode).  The shields are automatically maintained as long as
there are more than 500 units of energy for the Enterprise.  The Base also
has shields, which stay up as long as it has at least 1000 units of energy.

Aside from losing energy, the Enterprise can also take damage, either random
damage from getting blasted, or specific damage when a system is in use
and breaks down under the load.  In place of the score you will see the
Estimated Time to Repair.  Sometimes docking helps to get things fixed faster.
If you lose both your warp and impulse engines, try the tractors.  The
Base doesn't take damage because it has much more redundancy than the
Enterprise.

You get points for destroying enemies and hostile torpedoes.  At the end of
a wave, you also get bonus points for saving stars, saving the Enterprise
and Base, and for having an efficiency rating higher that 0.8.  You get
NEGATIVE bonus points for letting friendly life forms get blown up, and for
giving up.  Bonuses tend to be scaled by the ratio of the number of points
you got over the number of points you could have got.  If you think you are
done with a wave, but it won't quit, there may be homing torpedoes that you
haven't destroyed--you must make the universe safe for posterity, you know.

When you have used up your Enterprises and Bases (or quit), your score will
be posted to the scoreboard.  You may see the scoreboard outside of the game
simply by giving the command "warp -s".

If you get bored, you can always play with some of the undocumented switches
that are used to test warp.  Such funny games go on their own scoreboard.
For kicks try "warp -x -d50 -C -\& -G -T -E400 -S5" and then go hide.  Quick.

