			    
			    Virtual Combat
			    ==============

Introduction
============

Virtual Combat is a multi-user game which allows up to ten players
to fight against each other in a three dimensional virtual world.

The game uses two windows:  a text window for displaying text messages 
and typing in commands, and a graphics window which displays the
3d world and is removed at the end of each game.


Commands
========

The following commands can be typed into the text window:

help
	Displays a full list of commands

start
	Enters the current game.  If the maximum number of players are
	already in the game (usually 10) or if the game has already
	started then you will be put onto a waiting list instead.

leave
	During a game this command will quit the game (the same as
	pressing ESCAPE in the graphics window).  Quitting before a game 
	has started will not increase the number of games you have played
	(as displayed in your score).
	Typing this command when you are on the waiting list will
	remove you from the waiting list.

say <text>
	Sends <text> to everyone else logged on (including people
	playing a game).
	
'<text>
	The same as "say <text>".
	
tell <player> <text>
	Sends <text> to the player specified.
	
emote <text>
	Emotes <text> to all players logged on.
	
chat
	Enters chat mode.  All subsequent text typed will be treated as
	though "say " was typed at the start of each line.  Chat mode
	can be left by typing a full-stop on a line by itself.
	
quit
	Logs out of the server and saves your scores.  Your scores are
	also saved if you get removed from the game when an error
	occurs (e.g. your network connection dies).
	
who
	Displays the names of all players logged on, their IP addresses
	and their scores.  It also shows the colours of players
	who are playing a game.
	
status
	Displays certain statistics about the game. 

save
	Saves your scores (which is also done when you log out).  Not
	really necessary unless you've played a lot of games since
	logging in and you don't want to lose your scores if the
	system crashes.

show
	Shows the players who are on the waiting list.  The waiting
	list is a queue for players who tried to enter the game either
	when the maximum number of players had already entered or
	when a game had already started.  Players on the waiting list
	automatically enter the game after the current game has ended.

best
	Shows a list of the top 20 players ranked by number of kills.
	The list is updated at the end of each game.

password
	Changes your password.  Only players who have a password
	(either by typing a password when they created their character
	or by changing it using this command) will have their
	scores saved.

tune in
	Tunes into game information messages (which begin with "==>").
	You will be notifed when other players log in and log out,
	when players enter or leave a game and when a game starts or
	finishes.
	This is the default.

tune out
	Tunes out of game information messages.  "say"s and "tell"s
	will still be sent as normal.

server
	Lists other servers and allows you to change to a different
	server.


Help can be obtained by typing "help <subject name>" on the following
subjects:

combat
	How to start the client and connect to a server.

brief
	Brief instructions for playing the game.

game
	Displays these instructions.


Playing the game
================

The basic idea of the game is to kill all the other players, the
last person left alive being the winner.

Once you enter the game, a window will automatically be brought up
on your screen.  Control of your character is via this window using
the mouse and/or keyboard as follows:

* Move the mouse left/right to rotate about the vertical axis
* Move the mouse up to look up and down to look down
* Press the left mouse button to move forwards
* Press the middle mouse button to move backwards
* Press the right mouse button to fire your laser at another player

Alternatively, the cursor keys can be used to rotate, and the keys
'a' and 'z' used to move forwards and backwards, and SHIFT used
to fire.

A restriction on movement imposed is that you always look straight
ahead when moving.

The following keys are also used during the game (but the graphics 
window must have input focus, i.e. be selected, for them to do anything).

* Press RETURN to launch a grenade
* Press SPACE to allow the mouse pointer to be moved outside the
  graphics window.  To return control to the game, either press the
  space bar again or else press a mouse button while the pointer is in
  the graphics window
* Press 'w' to see who else is in the current game
* Press ESCAPE to quit the game (the same as typing 'leave' into the
  text window)
* Press 'f' to display the frame rate (how many times a second your
  display is being updated)
* Press 'i' to find the name of a player who is in line-of-sight
* Press 'm' to drop a mine
* Press 'r' to fire a rocket

Falling off the edge of the world is dangerous -- you'll immediately
lose the game.  In some worlds you can also die if you fall too far.

Walking through the black portal objects transports you to different
parts of the game.

Whenever two people have entered the game, a 30 second countdown will
begin before the game actually starts.  During this 30 second period
grenades, rockets and mines are harmless and lasers have no effect.  
After this period is over, no new players can enter the game.

Each player has a limited amount of energy (represented by the blue
bar at the bottom left of the graphics window).  This energy gets depleted
each time the player is hit by laser fire, a grenade, a rocket or a mine.  
Extra energy can be obtained by colliding with the red diamond objects 
which occasionally appear.  These objects only appear for short periods
of time before disappearing again.

Each time your laser is fired, its temperature increases (represented
by the red bar below the energy bar).  When the laser temperature
reaches its maximum value, it can't be fired again until it cools
down again.  Lasers don't do any damage below a minimum distance (the
targetting box will be black instead of red).

Grenades and rockets can only be fired when there is a red targetting 
box on the screen i.e. when another player is in line-of-sight and outside
the minimum distance.  Once grenades are fired, they continue on a
parabolic trajectory in the direction in which they were fired, exploding
when they come within a certain distance of another player.  This
means that the person who gets hit by a grenade might not be the
person who it was aimed at (but you can't get hit by your own grenades!)
When a rocket is fired it continues in a straight line until it hits
something or runs out of fuel.

When a mine is dropped it remains where it was dropped and explodes
if another player hits it.  Mines have a time limit, after which they
self-destruct.

Grenades are represented by the black squares at the right hand side of
the screen, mines by the green squares, and rockets by the triangles.
Each player starts the game with three grenades and no mines or
rockets.  Each player can have a maximum of three of each.  Extra
weapons can be picked up by colliding with the cube objects which
occasionally appear (extra mines are green, rockets are white and grenades
are blue).

The graphics window can be made larger or smaller during a game -- making
it smaller will make the game run faster.


Team games
==========

If team games are enabled on the server, players will be split into a
number of teams when they enter the game.  Instead of each player
being a different colour, all players in a team are the same
colour.  Players within a team cannot shoot each other, and rockets,
mines and grenades do not affect other players in the same team.
A team game is over when only players from one team remain in the
game -- then all players in the team get their "wins" increased by one.


Robots
======

Computer controlled robot players can play against human players.  
Each robot has a skill level of between 1 and 10 (1 is the easiest 
and 10 the hardest).  Robots have the same limitations as human 
players in terms of speed of movement, rate of fire, etc., except 
they know the exact position of every player in the same room as them.  
Only robots with a skill level of 8 or greater can fire rockets and 
grenades.


Update synchronisation
======================

When you move around the world, the display is updated as fast as your
graphics card/CPU can handle (up to a maximum speed of 50-75 fps).  However,
the objects representing the other players in the game are only updated
whenever new data is received from the server.  Because the server
waits until all clients have sent their data before sending the data
out to the clients, the update speed of the player objects is limited
by the speed of the slowest client.

