NAME
BZFlag - a tank battle game
SYNOPSIS
bzflag [-3dfx] [-no3dfx] [-anonymous] [-config filename] [-configdir
directoryname] [-d | -debug] [-dir | -directory directory] [-echo]
[-echoAnsi] [-geometry widthxheight[{+|-}x{+|-}y]] [-latitude latitude]
[-list list-server-url] [-locale locale] [-longitude longitude]
[-multisample] [-mute] [-nolist] [-solo number-of-robots] [-team
{automatic | red | green | blue | purple | rogue}] [-version] [-view
{normal | stereo | stacked | three | anaglyph}] [-window] [-zbuffer {on
| off}] [[callsign[:password]@]server[:port]]
DESCRIPTION
BZFlag is a 3D multi-player tank battle game that allows users to play
against each other in a networked environment. There are five teams:
red, green, blue, purple and rogue (rogue tanks are black). Destroying
a player on another team scores a win, while being destroyed or
destroying a teammate scores a loss. Rogues have no teammates (not
even other rogues), so they cannot shoot teammates and they do not have
a team score.
There are three main styles of play: capture-the-flag, free-for-all,
and rabbit-hunt. In capture-the-flag, each team (except rogues) has a
team base and each team with at least one player has a team flag. The
object is to capture an enemy team's flag by bringing it to your team's
base. This destroys every player on the captured team, subtracts one
from that team's score, and adds one to your team's score. In
free-for-all, there are no team flags or team bases. The object is
simply to get as high a score as possible. In rabbit-hunt, the lead
player is chosen as the target for all other players. When the rabbit
(target) is destroyed, the live player with the next highest score
becomes the rabbit. The object is to remain the rabbit for as long as
possible. The rabbit is marked as a white tank.
Joining a Game
To get quickly started, select the "Join Game" menu in the BZFlag
client using the arrow keys on your keyboard. Choose the "Select a
Server" link and pick one of the servers near the top of the menu.
This should take you back to the "Join Game" menu where you should then
provide a callsign. Select the "Connect". Within a few seconds you
should be on that server ready to play.
BZFlag includes a global registration system that allows players to
register a callsign that defines them uniquely on the BZFlag network.
Some servers require registration for all users, some require it to
obtain administrative abilities. If you attempt to use a callsign that
is already registered, you may be denied access to a server. See
http://my.B ZFlag.org/bb/ for details regarding callsign registration
and to check on available names. Once registered, you will be able to
provide your password in the "Join Game" menu and have it used for
authentication. You are encouraged to register your callsign.
There are generally public BZFlag servers running around the clock all
around the world, available over the Internet. Similarly, private
servers can be set up for running local network games. See the bzfs
manual page (bzfs.6) for details on starting a new server, public or
private.
Options
-3dfx For Mesa users with a pass-through 3Dfx card, e.g. a
Voodoo or Voodoo 2 based card. This sets the
MESA_GLX_FX environment variable to use fullscreen
pass-through mode. Use -geometry to use a resolution
other than 640x480 on the pass-through card. You should
not use this option with -window.
-no3dfx For Mesa users with a pass-through 3Dfx card, such as
Voodoo or Voodoo 2 based cards. This unsets the
MESA_GLX_FX environment variable so that the
pass-through card isn't used. Use this option if
MESA_GLX_FX is normally set in your environment and you
don't want bzflag to use the pass-through card. This
option is only a convenience; you can achieve the same
effect by unsetting MESA_GLX_FX in your environment.
-anonymous Uses the email address anonymous instead of
username@hostname.
-d or -debug Adds some diagnostic output. Can be specified multiple
times to increase verbosity.
-dir or -directory directory
Looks for data files in directory first. This defaults
to a directory named data in the current directory. If
not found there, the game looks for data files in the
current directory, then in the default installation
location /usr/share/bzflag.
-config Specify the configuration file to load. The name is
relative to the default configuration directory. This is
usually only used by developers.
-configdir Specify the configuration directory to use. This will be
the default config directory used by this instance of
the game. This is realy only needed if you can not use
the default directory.
-echo Copies all message window output to the shell on *nux
and OSX, to stdout.txt on windows
-echoAnsi Copies all message window output like -echo preserving
the ANSI color coding on *nix, same as -echo on windows.
-geometry widthxheight[{+|-}x{+|-}y]
This specifies the size and, optionally, the position of
the window. It can be used with or without the -window
option. It may be necessary to use this on some systems
when bzflag cannot correctly determine the display size.
-latitude latitude
Uses latitude when computing celestial object positions.
-list url Look for list servers using url. A built-in url is used
by default (the same url is the default for bzfs). If
url is default then the url is reset to the built-in url
(the url is remembered across invocations of bzflag).
list servers keep a list of bzfs servers accessible from
the internet and are queried when using the Find Server
menu.
-locale locale Set the locale used to display messages, menus, hud
alerts, etc.
-longitude longitude
Uses longitude when computing celestial object
positions.
-multisample Uses a multisample buffer for rendering. If
multisampling isn't available then the application will
terminate.
-mute Disables sound.
-nolist Disables list server querying. See -list.
-solo number-of-robots
When you join a game, you'll also cause number-of-robots
robots to join too. This is an experimental option and
the robots are extremely stupid players. Robots are
added to teams at random.
-team team-name
Chooses the player's team. If there are no team
positions available and the team-name is set to be
automatic, the player will try to join as an observer.
-version Prints the version number of the executable.
-view {normal | stereo | stacked | three | anaglyph}
Chooses one of the possible display options. Normal
will render a single view to the entire screen. Stereo
will try to allocate a stereo (in-a-window) capable
buffer and then draw a single view in stereo. Your
system must support stereo-in-a-window buffers. Three
will render the front view to the upper right quadrant
of the display, a left view to the lower left quadrant,
and a right view to the lower right quadrant. This is
intended for systems capable of driving multiple
monitors from various areas of the display surface,
yielding a wrap around view. stacked will render the two
right eye view on the upper half of the display and the
left eye on the lower half. anaglyph supports red-cyan
stereo viewing glasses. Note that setting an unsupported
view option will often lead to BZFlag not running
successfully. To correct this, run with -view normal.
-window Runs the application in a window instead of full screen.
-zbuffer {on | off}
When off is chosen the game will not attempt to allocate
a depth (z) buffer and will use a different rendering
technique for hidden surface removal. Some systems may
be capable of using a higher screen resolution if a
depth buffer isn't allocated.
[callsign[:password]@]server[:port]
Specifies the callsign you want, and the host running
the bzfs server. Multiple independent games can be run
on a single network, or even on different ports on a
single computer. Which server and port you choose
decides which game you enter. The callsign and the port
are optional. If you don't specify a port the standard
server port will be used, and if you don't specify a
callsign the callsign used for the previous game is
used. If that cannot be found then the callsign is the
value of the BZFLAGID environment variable. If BZFLAGID
is empty or undefined then bzflag will prompt for a
callsign when joining a game.
Controls
Tanks are controlled by moving the mouse within the large yellow box in
the main view. When the mouse is inside the small yellow box, the tank
is motionless. The large box is the limit of the tank's speed.
Shots are fired by pressing the R left mouse button . The type of shot
fired depends on what flag the tank has. Normal shots last about 3.5
seconds. Reloading also takes 3.5 seconds for normal shots.
Pressing the R middle mouse button drops a flag. Nothing will happen
if the tank has no flag or is not allowed to drop the flag for some
reason (e.g. it's a bad flag). Flags are picked up by driving over
them. A dropped flag gets tossed straight up; it falls to the ground
in about 3 seconds.
Pressing the R right mouse button identifies the closest player
centered in the view. If your tank has the guided missile super-flag,
this will also lock the missile on target. However, the target must be
carefully centered for the missile to lock.
When the server allows jumping or if the tank has the jumping flag, the
R Tab key jumps. Tanks can jump onto buildings, however there is no
way to shoot downward (or upward) with a regular shot. The guided
missile and the shock wave are two ways of destroying a tank on or from
a building.
The current radar range can be changed by pressing the R 1, R 2, or R 3
keys above the alphabetic keys for low, medium, and long range,
respectively. The R f key toggles the flag help display, which
describes the flag in the tank's possession. Displaying help does not
pause the game.
The R Pause key pauses and resumes play. When paused, the tank cannot
be destroyed nor can its shots destroy other players. The reload
countdown is suspended and the radar and view are blanked when paused.
A paused tank has a transparent black sphere surrounding it. Since a
paused tank is invulnerable a player could cheat by pausing just before
being destroyed, so there's a brief delay before the pause takes
effect. This delay is long enough to make pausing effectively useless
for cheating. Pressing R Pause before the pause takes effect cancels
the pause request.
The R Delete key initiates a self destruct sequence. You will see a
countdown that can be stopped by pressing R Delete once more.
Otherwise, you tank will self destruct. This can be useful if your tank
gets stuck and there is no other tank around to shoot you.
The list of players and scores is displayed when your tank is paused or
dead. Pressing the R s key toggles the score display when alive and
not paused.
The R b key toggles binoculars, which gives a close up view of distant
objects. The R 9 key toggles Otto, the automatic pilot, on and off. R
t key toggles the frame rate display and the R y key toggle the frame
time display. The time of day can be changed with the R plus and R
minus keys, which advance and reverse the time by 5 minutes,
respectively. The time of day in the game is initialized to the
system's clock. In addition, the latitude and longitude are used to
calculate the positions of celestial objects.
The R Esc key shows the game menu. Use the R Enter and arrow keys to
navigate the menu and the R Esc key to return to the previous menu or
hide the main menu. The menus allow you to start a new server, join a
game, leave a game and enter another, change the rendering options,
change the display resolution, change the sound volume, remap the
meanings of keys, browse online help, and quit the game.
The display resolution is not always available for changing. If it is,
use the R t key to test a selected resolution; it will be loaded for a
few seconds and then the previous resolution restored. Press the R
Enter key to permanently select a new resolution. When you quit the
game, the resolution is restored to what it was before the game
started.
Options are recorded between game sessions in the
.bzf/<version>/config.cfg file (or config.cfg.${HOST} if the HOST
environment variable is defined) in the user's home directory. This
file has a simple name/value pair format. This file is completely
rewritten by the game after each session.
You can send typed messages to other players by pressing the R m or R n
keys. The R m key will send a message to your teammates only. Rogue
players cannot send these messages. The R n key will send a message to
all the other players. After pressing the key, just type your message
and press enter or Control-D. To cancel a message, you can enter a
blank message or press Delete, Escape, or Control-C. Be careful with
the Escape key; pressing Escape once will cancel the message, pressing
it again will show the main menu. Backspace will delete the most
recently typed character. The Tab key doesn't add a tab to the message
but instead causes the tank to jump (as usual). You can also send a
direct message to a single player by pressing the R , or R . keys. The
R , key will send your message to your 'nemesis', i.e. the last player
who killed you or was killed by you. The R . key will send a private
message to another player. You can choose the recipient by using the
left and right arrow keys. R o toggles the quick-admin interface. Use
the arrow keys to select a command, and then fill in the necessary
parameters
Scoring
An individual's score is the difference between that player's wins and
losses. A win is scored for each enemy tank destroyed. A loss is
scored for each teammate destroyed and for each time the player is
destroyed. The score sheet displays each player's score and the number
of wins and losses.
A team's score is calculated differently depending on the game style.
In the capture-the-flag style, the team score is the number of enemy
flags captured minus the number of times the team's flag was captured.
Capturing your own flag (by taking it onto an enemy base) counts as a
loss. In the free-for-all style, the team score is sum of the wins of
all the players on the team minus the sum of the losses of all the
players on the team. In the rabbit-hunt style, scoring is similar to
free-for-all.
The score sheet also lists the number times you have destroyed or been
destroyed by each other player under the Kills heading. This lets you
compare your one-on-one performance against other players.
Teleporters
The server can be configured to place teleporters in the game. A
teleporter is a tall black transparent object that instantaneously
moves any object (tanks and shots) passing through it to some other
teleporter. The teleporter connections are fixed for the entire game.
In the capture-the-flag style the connections are always the same. In
the free-for-all style the connections are random and reversible (going
back through where you come out puts you back where you started).
Each side of a teleporter teleports independently of the other side.
However, it's possible for each side to go to the other. This is a
thru-teleporter and it's almost as if it weren't there. It's also
possible for a side to teleport to itself. This is a
reverse-teleporter. Shooting at a reverse teleporter is likely to be
self-destructive. Shooting a laser at a reverse teleporter is
invariably fatal.
Radar
The radar is displayed on the left side of the control panel. It
provides a satellite view of the game. Buildings and the outer wall
are light blue. Team bases are outlined squares in the team colors.
Teleporters are short yellow lines. Tanks are dots the in the tank's
team color, except for rogues which are yellow. The size of a tank's
dot is a rough indication of the tank's altitude: higher tanks have
larger dots. Flags are small crosses. Team flags have the team color
while super-flags are white. Shots are small white dots (except laser
beams which are line segments and shock waves which are circles).
The tank always appears in the center of the radar and the radar
display rotates with the tank so that forward is always up. There's a
small tick mark indicating forward. The left and right extremes of the
current view are represented by a yellow V whose tip is at the center
of the radar. North is indicated by the letter N.
Heads Up Display
The heads-up-display, or HUD, has several displays. First, there are
two boxes in the center of the view. As explained above, these delimit
the ranges for the mouse. These boxes are yellow when you have no
flag. Otherwise they take the color of the flag you're holding (white
for superflags).
Above the larger box is a heading tape showing your current heading.
North is 0, east is 90, etc. If jumping is allowed, an altitude tape
appears to the right of the larger box.
Small colored diamonds or arrows may appear on the heading tape. An
arrow pointing left means that a particular flag is to your left, an
arrow pointing right means that the flag is to your right, and a
diamond indicates the heading to the flag by its position on the
heading tape. In capture-the-flag mode a marker in your team's color
is always present, showing you the direction to your team's flag. A
yellow marker shows the way to the antidote flag (when you have a bad
flag and antidote flags are enabled).
At the top of the HUD are several text readouts. At the very top on
the left is your callsign and score, in your team's color. At the very
top on the right is the name of the flag you're holding (or nothing if
you have no flag). In the center at the top is your current status:
ready, dead, sealed, zoned, or reloading. If you have a bad flag and
shaking time is enabled and your status is ready, the status displays
how much time is left before the bad flag is shaken. When reloading,
the time until you're reloaded is displayed. A tank is sealed when it
has the oscillation overthruster flag and any part of the tank is
inside a building. A tank is zoned when it has the phantom zone flag
and has passed through a teleporter. When there's a time limit on the
game, the time left in the game is displayed to the left of the status.
Flags
Team flags are supplied by the server in the capture-the-flag style
game. While at least one player is on a team, that team's flag is in
the game. When captured, the flag is returned to the team's base. If
the flag is dropped in a Bad Place, it is moved to a safety position.
Bad Places are: on top of a building or on an enemy team base. The
flag can be dropped on a team base only by a player from a third team;
for example, when a blue player drops the red flag on the green base.
A team flag is captured when a tank takes an enemy flag onto its base
or when a tank takes its flag onto an enemy base (even if there's no
one playing on that team). You must be on the ground to capture a
flag.
The server can be configured to supply a fixed or random set of
super-flags. These flags are white and come in many flavors. However,
you cannot tell what a super-flag is until it's picked up. There are
two broad categories of super-flags: good and bad. Good super-flags
may be dropped and will remain for up to 4 possessions. Bad
super-flags are sticky -- in general, they cannot be dropped. The
server may provide a yellow antidote flag. Driving over it will
release the bad flag. The server may also allow a timeout and/or a
number of wins to shake the flag. Scoring the required number of wins,
surviving the required amount of time or being destroyed will
automatically drop the flag. Bad flags disappear after the first
possession.
Here is a brief description of each good superflag with the flag's code
in parentheses:
High Speed (V) Boosts top speed by 50%.
Quick Turn (QT)
Boosts turn rate by 50%.
Agility (A) Improves a tank's dodging capabilities.
Oscillation Overthruster (OO)
Let's the tank go through buildings. You cannot back up
in or into a building, nor can you shoot while inside.
Rapid Fire (F) Increases shot speed and decreases range and reload
delay.
Machine Gun (MG)
Increases shot speed and dramatically decreases range
and reload delay.
Guided Missile (GM)
Shots guide themselves when locked on. The missile can
be retargeted at any time during its flight (with the
right mouse button). This allows the player some
control over the missile's steering.
Laser (L) Shoots a laser, with effectively infinite speed and
range. Just point and shoot. The binoculars are handy
for lining up distant targets. The downside (you knew
it was coming) is that the reload time is doubled.
Ricochet (R) Shots reflect off walls. It is exceptionally easy to
kill yourself with this flag.
Super Bullet (SB)
Shots can go through buildings (possibly destroying a
tank with the oscillation overthruster flag) and can
also destroy (phantom) zoned tanks.
Stealth (ST) Tank becomes invisible on radar but is still visible
out-the-window.
Cloaking (CL) Tank becomes invisible out-the-window but is still
visible on radar.
Invisible Bullet (IB)
Shots are invisible on radar (except your own). They
are visible out-the-window. Sort of stealth for shots.
Tiny (T) Tank becomes much smaller and harder to hit.
Narrow (N) Tank becomes paper thin. It's very hard (but not
impossible) to hit a narrow tank from the front or back.
However, the tank is as long as usual so hitting it from
the side has normal difficulty.
Shield (SH) Getting shot while in possession of this flag simply
drops the flag (instead of destroying the tank). Since
the flag may not disappear you may want to wait around
for it to fall to the ground so you can grab it again,
but, be warned, the shield flag flies for an extra long
time (longer than the normal reload time).
Steamroller (SR)
Tank can destroy other tanks by driving over them (but
you must get quite close).
Shock Wave (SW)
Tank doesn't fire shells. Instead it sends out a shock
wave in all directions. Any tank caught in the wave is
destroyed (including tanks on or in buildings).
Phantom Zone (PZ)
Driving through a teleporter phantom zones the tank. A
zoned tank cannot shoot, but can drive through buildings
and cannot be destroyed except by a Super Bullet or a
Shock Wave (or if the team's flag is captured).
Genocide (G) Destroying any tank on a team destroys every player on
that team.
Jumping (JP) Allows the tank to jump. You cannot steer while in the
air.
Identify (ID) Displays the identity of the closest flag in the
vicinity.
Masquerade (MQ)
You tank looks like a teammate when viewed out of the
window. Bullets, radar and targeting reveal your true
identity.
Burrow {BU} You tank burrows into the ground up to your muzzle,
making you impervious to normal shots, as they sail
above you. However your tank controls are sluggish, and
anyone, no matter what flag they have, can crush you
like.
Seer (SE) See Stealthed, Cloaked and Masqueraded tanks as normal,
as well as Invisible Bullets.
Thief (TH) Tank is small and fast, when you shoot an opponent, he
is not killed, but instead, you steal his flag.
Useless (US) It's useless!
Wings (WG) Tank can drive around in the air, and may be able to
jump multiple times. This can be useful when jumping or
falling.
A brief description of each bad superflag with the flag's code in
parentheses:
Colorblindness (CB)
Prevents tank from seeing any team information about
other tanks. You have to be careful to avoid shooting
teammates.
Obesity (O) The tank becomes very large and easy to hit. It's so
big that it can't fit through teleporters.
Left Turn Only (<-)
Prevents the tank from turning right.
Right Turn Only (->)
Prevents the tank from turning left.
Forward Only (FO)
Prevents the tank from going backwards.
Reverse Only (RO)
Prevents the tank from going forward.
Momentum (M) Gives the tank a lot of inertia.
Blindness (B) Blanks the out-the-window view. The radar still works.
It is effectively impossible to detect any tank with
Stealth; shooting a Stealth with Blindness is the stuff
legends are made of.
Jamming (JM) Disables the radar but you can still see.
Wide Angle (WA)
Gives the tank a fish eye lens that's rather
disorienting.
No Jumping (NJ)
Tank is not allowed to jump.
Trigger Happy (TR)
Tank can't stop shooting. Watch out for that richochet.
Reverse Controls (RC)
Tank driving controls are reversed from their usual
behavior.
Observing
If a server is full or if you just want to watch a battle without
interfering in it, you can use the observer mode. To join a server as
an observer, select R Observer as your tank's team. The maximum number
of observers can be restricted by the server admin, so you might still
not be able to join a full server.
When in observer mode, you can freely roam the world. Using the arrow
keys you can rotate the camera in every direction. Holding shift and
using the arrow keys moves the camera left, right, forward or back.
Pressing the up or down arrow while holding the R ALT key will change
the camera's altitude. The R F9 and R F10 keys change the camera's
focal lengths, giving a zoom effect. The R F11 key will reset the zoom.
Pressing R l lets you toggle the display of tank labels.
Repeatedly pressing R F8 cycles through different roaming modes: free,
tracking, following, first person (driving with) and tracking team
flag. In tracking mode, the camera will automatically look at a tank.
You can cycle through available tanks with the R F6 and R F7 keys. In
follow mode, the camera is positioned right behind the targeted tank,
whereas you actually look from within the tank when using first person
mode. The last mode, track team flag is only available in
capture-the-flag games and will track the team flags. Again, use R F6
and R F7 to choose which flag to track. One special option that can be
used with follow, tracking, and first person modes is that you can
choose to do it with the winning tank. This is selected by cycling
through the tanks until you see the winner option. In this mode, you
will always be engaged with whoever has the best score (and is alive).
The default is drive with winner mode.
User Commands
The following commands can be executed by sending a message to all and
using these strings as the message
SILENCE playerName
Does not display any message coming from player with
playerName name
UNSILENCE playerName
Reshow messages coming from player with playerName name
SAVEWORLD filename
Save the current world to filename.
FILES
~/.bzf/<version>/config.cfg
Stores options between game sessions. Used when HOST is
not defined.
~/.bzf/<version>/config.cfg.${HOST}
Stores options between game sessions. Used when HOST is
defined.
SEE ALSO
bzadmin(6), bzfs(6), bzw(5)