.TH xboing "" "" "X Application"
.PC "Clone of blockout"
.fi
\fBxboing
[\-display \fIhost\^\fB:\fIdisplay\^\fB]
[\-help]
[\-keys]
[\-maxvol [1-100>] ]
[\-nosfx]
[\-pointergrab]
[\-scores]
[\-setup]
[\-sound]
[\-speed [1-10] ]
[\-startlevel 1-\fIMAXLEVELS\^\fB]
[\-sync]
[\-usage]
[\-version]
.PP
.HS
.SH Options
.IC "\fB\-display \fI\^\fB:\fIdisplay\fR"
Play the game on
.IR display .
.IC "\fB-help\fR"
Produce a brief help message
.IC "\fB\-keys\fR"
Use keys instead of mouse control.
.IC "\fB\-maxvol\fR \fIn\fR"
Set volume, as a percent of the maximum possible volume.
.IC "\fB\-nosfx\fR"
Turn off special effects.
.IC "\fB\-pointergrab\fR"
Turn on pointer grabbing.
.IC "\fB\-scores\fR"
Print current high scores.
.IC "\fB\-setup\fR"
Print setup information.
.IC "\fB\-sound\fR"
Turn on audio for game.
.IC "\fB\-speed\fR \fIn\fR"
The game speed, from one through nine, where one is slowest.
.IC "\fB\-startlevel\fR \fIn\fR"
The starting level for game.
.IC "\fB\-sync\fR"
Turn on X synchronization.
.IC "\fB\-usage\fR"
Print a brief help message.
.IC "\fB\-version\fR"
Print the current version.
.HE
.B xboing
is a simple blockout type game.
It resembles a pinball machine, in that you must both stop the ball
from striking the bottom of the screen and direct it to hit objects on the
screen.
Unlike a pinball machine, however, you can move the ``paddle'' laterally.
When the ball hits an object, that object is destroyed and you gain points;
if the ball gets past your paddle to the bottom of the screen, you lose
points.
If the ball escapes you often enough, you lose the game.
.PP
Each block carries a different point value.
The more blocks you destroy, the better your score.
The person with the highest score wins.
.PP
When you destroy all the blocks on the screen, the game jumps to another level.
Each level has its own layout and its own special difficulties.
.SH "Types of Blocks"
.B xboing
implements a variety of blocks, each of which has a different point value.
Many blocks, when struck, trigger side effects that affect how you can play
the game.
Some blocks, for example, change the size of the paddle; others change the
behavior of the ball \(em or even kill it outright.
Some blocks, such as
.B reverse
or
.BR "machine gun" ,
only last for one level.
.PP
The following summarizes some of the blocks:
.IP "\fBammunition block\fR"
This gives you four bullets.
Shooting is described below.
.IP "\fBbomb block\fR"
When this is struck, it explodes and destroys all blocks around it.
If another bomb is beside it, it also goes off.
.IP "\fBdeath block\fR"
This kills your ball!
.IP "\fBexpand-paddle block\fR"
When struck, this block expands your paddle to a larger size.
The expansion persists for the rest of your play on the current level.
If you already have the largest paddle, it has no effect.
.IP "\fBmachine-gun block\fR"
This block, when struck, allows you to shoot much more rapidly than before.
Note that you will also go through your bullets at a greater rate.
It can be fun to let off a burst every now and then.
This erases
.B counter
blocks very quickly.
.IP "\fBpirate block\fR"
This kills your ball if touched.
You can shoot this block three times to kill it,
but you will lose 1,000 points.
.IP "\fBrandom block\fR"
These blocks periodically change their color and therefore their value.
They add a bit of change to the levels.
.IP "\fBreverse block\fR"
When struck, this block reverses the controls to the paddle.
Avoid this block if possible, as it makes the game very difficult.
If you strike another such block,
the controls return to their original configuration.
.IP "\fBshrink-paddle block\fR"
When struck, this block shrinks your paddle.
The shrinking persists for the rest of your play on the current level.
If you already have the smallest paddle, it has no effect.
.IP "\fBsolid wall\fR"
This block, which resembles a brick, does not explode unless next a bomb.
.IP "\fBsticky-paddle block\fR"
When struck, this causes the ball to stick to your paddle.
The ball stays stuck to the paddle until you press the
.B <space>
bar.
This can be a pain, but it can also be useful for aiming shots at
difficult-to-destroy blocks, such as the brick.
.IP "\fBteleport block\fR"
This teleports the ball to somewhere else on the current level.
It does not place you too close to the bottom of the screen,
or on another block.
.IP "\fBwalls-off block\fR"
This turns off the wall bounce on both the left and right side of the
playing area:
the ball does not bounce off, but continues through the wall
and wraps around to the other side.
.SH "Other Features"
.B xboing
features other objects besides blocks, the paddle, and the ball.
The following summarizes them:
.IP "\fIextra-ball symbol\fR"
When you shoot this symbol or hit it with the ball, it gives you another ball.
.IP \fIbullets\fR
Every time you begin a level, you get four bullets.
You can also win bullets by striking an
.B ammunition
block.
You can use bullets to shoot blocks; they are good for destroying a
difficult block (e.g., a
.B brick
block), or to destroy a block that has an unpleasant side-effect when
struck with the ball (e.g., a
.B death
block).
You can also use the bullets to collect bonus coins.
If you lose a ball, you get a token two bullets.
Use bullets wisely, as they are hard to come by and can sometimes be the
only way to destroy certain blocks.
.IP "\fIbonus coins\fR"
Throughout the game, the bonus coins appear.
When you finish the current level, you receive bonus points for each
bonus coin you have collected.
Sometimes the coin may appear as a
.K X2
or
.K X4
symbol, which indicates that scoring from that point on
will be doubled or quadrupled, respectively.
Note that multiplication is disabled after the death of a ball.
.IP
If you collect more than ten bonuses during a level,
.B xboing
actives
.IR "killer mode" .
The ball becomes red and becomes super-powerful:
it can plough through all blocks except the solid ones and so finish
off the level very quickly.
You will also receive the
.B "Super Bonus"
on the bonus screen.
.IP "\fIbonus screen\fR"
The bonus screenu tells you how you went in the previous level.
Bonuses are as follows:
.RS
.IP \(bu 0.3i
You get 500 points for each bullet not used.
.IP \(bu
You get 3,000 points for each bonus.
.IP \(bu
If you get more than ten bonuses,
you receive a
.B "Super Bonus"
of 50,000 points.
.RE
.IP
You also receive a new ball every 100,000 points.
Pressing
.B <space>
skips the bonus animations when the bonus screen appears;
however, you still receive your bonus points.
.IP \fItimer\fR
There is a level timer that counts down while playing the level.
If you do not complete the level in time,
you do not receive either the time bonus (100 points per second remaining)
or the level bonus.
.PP
.B xboing
also has some miscellaneous behaviors:
.IP \(bu 0.3i
The ball is automatically shot off the paddle after about five seconds
unless you press the
.B <space>
bar.
You can always press `P' to pause the game.
.IP \(bu
If the ball gets stuck in an infinite loop
and does not strike the paddle for approximately eight seconds,
.B xboing
automatically ``tilts'' the board.
.SH Levels
As noted above, when you clear all blocks on the screen,
.B xboing
draws a new screen, or ``level'' of play.
Note that the levels do not become increasingly more difficult \(em
some are difficult, others are easy \(em but as play progresses the
paddle become ever smaller.
.PP
Each level is encoded in a file that is stored in file
.BR /usr/games/lib/xboing .
(Note that you can tell
.B xboing
the directory to use either through a command-line option or an
environmental variable.)
Its data are kept in an ASCII format that you can edit.
.PP
You can create another level if you like:
just make sure that it is in the correct format and
that its file has a correctly formatted name.
Use the file
.B newlevel.data
as a model; its contents are (largely) self-explanatory.
Be sure to include a title and a time bonus in seconds.
The following gives the possible formats of a level:
.nf
.sp \n(pDu
	\fBw\fR	Wall block
	\fBr\fR	Red block
	\fBg\fR	Green block
	\fBb\fR	Blue block
	\fBt\fR	Tan block
	\fBp\fR	Purple block
	\fBy\fR	Yellow block
	\fBX\fR	Bomb block
	\fBB\fR	Ammunition block
	\fB.\fR	Blank
	\fBD\fR	Death block
	\fBR\fR	Reverse block
	\fBH\fR	Teleport block
	\fBL\fR	Extra-ball block
	\fBM\fR	Machine-gun block
	\fBW\fR	Walls-off block
	\fB?\fR	Random block
	\fBm\fR	Multiple-balls block
	\fBs\fR	Sticky-paddle block
	\fB<\fR	Shrink-paddle block
	\fB>\fR	Expand-paddle block
.SH "Command-line Options"
.B xboing
recognizes the following command-line options:
.IP "\fB\-display \fIhost\^\fB:\fIdisplay\fR"
Play the game on
.IR display .
.IP \fB\-help\fR
Display a one-line description of every the command-line option.
.IP \fB\-keys\fR
Use the keyboard to control the game.
Within the game, pressing `G' toggles between mouse and key control.
The default is mouse control.
.IP "\fB\-maxvol \fIpercent\fR"
Adjust the maximum volume to
.IR percent ,
which is a percent of the loudest possible sound.
.IP \fB\-nosfx\fR
Turn off special effects, in particular the explosion shake.
This speeds up the game a little.
Servers without backing store must have special effects turned off,
as the shaking is shocking.
The default is on.
.IP \fB\-pointergrab\fR
Grab the pointer when the game is visible.
This stops you from moving the mouse cursor outside the game window.
The default is off.
.IP \fB\-scores\fR
Print to the standard output
both the ``roll of honor'' and your personal best score.
This can be useful if you are not running the program on an X Windows
display but still want to see what the scores are.
.IP \fB\-setup\fR
Display the paths of the level and sound directories, as well as
other useful bits of information.
This is useful for setting up the game just after installation or compilation.
.IP \fB\-sound\fR
Enable sounds, if possible.
The default is off.
.IP "\fB\-speed [1-9]\fR
Adjust the speed of the game.
This must be a value between one and nine, where one is slowest speed 
and nine the fastest; the default value is one.
You can also adjust the speed of the game from within the game; this is
described below.
.IP "\fB\-startlevel \fIlevel\fR"
Begin playing on
.IR level ;
the default is level one.
Note that beginning on a higher level does not affect the number of
levels recorded in the high-score table; nor does it affect the size of
the bonus you receive.
.IP \fB\-sync\fR
Turn on the X Window System's synchronization of all Xlib calls:
that is, the X server flushes all calls before the it continues.
This slows the game somewhat, but enables some debugging.
The default is
.BR off .
.IP \fB\-usage\fR
Print a brief synopsis of every the command-line option
and the range of its values.
.IP \fB\-version\fR
Prints the version of
.B xboing
that you are running.
.SH "Game Control"
By default,
.B xboing
moves the paddle in response to movements of the mouse:
moving the mouse to the left or right moves the paddle in the same direction.
To shoot a bullet or start a ball, press any mouse button.
.PP
The command-line option
.B \-keys
tells
.B xboing
to control the paddle from the keyboard instead of via the mouse.
The following summarizes the paddle-control keys:
.IP \fK(J)\fR
.IS \*(LA)
Move the paddle to the left.
.IP \fK(K)\fR
Shoot a bullet.
.IP \fK(L)\fR
.IP \*(RA
Move the paddle to the right.
.PP
Regardless of how you control the paddle,
.B xboing
also recognizes the following keyboard commands:
.IP \fB<esc>\fR
End the game and return to introduction.
.IP \fB<space>\fR
Start the game.
.IP \fB1\(em9\fR
Change game speed:
one is the slowest speed, nine the fastest.
.IP \fBa\fR
Toggle the use of audio effects.
This has an effect only if
.B xboing
was compiled for a system that supports sound.
.IP \fBc\fR
Cycle through the introduction screens.
.IP \fBd\fR
Kill the ball.
.IP \fBH\fR
View the ``roll of honor.''
.IP \fBh\fR
View your personal high scores.
.IP \fBi\fR
Iconify the game and pause.
.IP \fBp\fR
Pause game.
.IP \fBq\fR
Quit
.BR xboing ;
resume your life.
.IP \fBs\fR
Toggle special effects.
.SH Scoring
Each type of block yields a set number of points when you destroy it.
A few blocks, such as the
.B counter
block, have more than one score associated with it.
The following gives the number of points awarded for each block:
.DS
.ta 0.5i 1.5i
	\fBammo\fR	50 plus bullets
	\fBblue\fR	110
	\fBbomb\fR	50 plus the value of the surrounding blocks
	\fBcounter\fR	200
	\fBgreen\fR	120
	\fBpirate\fR	100
	\fBpurple\fR	150
	\fBred\fR	100
	\fBreverse\fR	100
	\fBtan\fR	130
	\fByellow\fR	140
	\fBwall\fR	0
.DE
.PP
Each time the ball hits the paddle, you receive ten points.
.PP
The
.B pirate
block kills the ball.
You can shoot it, but it costs you 1,000 points.
.PP
Bonus coins are worth 3,000 points apiece.
Note, however, that bonus points are added to the score only when you reach
the end of the level and go through the bonus screen.
.PP
If you collect more than ten bonus coins,
you get a
.B "Super Bonus"
of 50,000 points.
You also receive 500 points for each bullet that remains in your magazine
at the end of a level.
.PP
At the end of each level,
you receive a level bonus.
This is the number of the level (that is, the number completed)
times 1,000:
therefore, after you complete your 20th level, you receive 20,000 points.
If you fail to complete a level in the allotted time,
you do not receive that level's bonus.
.PP
.B xboing
saves high scores at the end of each game.
There are now two high-score files:
one displays the highest scores from among all players, whereas the
other displays your personal best scores.
.SH "Sound Support"
.B xboing
has limited support for sound.
At present, sound is available on the following machines:
Hewlett-Packard and Sun workstations,
NCD X terminals,
and PCs with the Soundblaster card and the Linux operating system.
.PP
Most support and use the Sun
.B .au
sound files.
The Linux version
sends the data down to the audio device,
which may cause slight clicking sounds due to the audio file header.
.SH "Environemental Variables"
.B xboing
reads the following environmental variables,
which override the settings that arecompiled into it:
.IP \fBXBOING_SCORE_FILE\fR
This names the file that holds the high scores.
.IP \fBXBOING_LEVELS_DIR\fR
This names the directory that contains the masks for the levels.
.IP \fBXBOING_SOUND_DIR\fR
This names the directory that holds the digitized sounds.
.SH "See Also"
.B
X applications
.R
.SH Notes
.B xboing
is copyright \(co 1993 by Justin C. Kibell.
Permission to use, copy, modify, and distribute this software and its
documentation without written agreement is hereby granted.
You cannot sell this software without written permission from the author.
This entire copyright notice must appear in all copies of this software.
.PP
In no event shall the author be liable to any party for direct, indirect,
special, incidental, or consequential damages arising out of the use of this
software and its documentation, even if the author has been advised of the
possibility of such damage.
.PP
The author specifically disclaims any warranties, including, but not limited
to, the implied warranties of merchantability and fitness for a particular
purpose.
The software provided hereunder is on an ``as is'' basis,
and the author has no obligation to provide maintenance, support, updates,
enhancements, or modifications.
.PP
.II "Kibell, Justin C."
.B xboing
was written by Justin C. Kibell (jck@citri.edu.au),
Systems Programmer at the CATT Centre CITRI Melbourne, Victoria, Australia,
and computer science graduate of the Royal Melbourne Institute of Technology.
It was ported to \*(CO by Harry C. Pulley, IV.
.PP
New versions of this program can be obtained from export.lcs.mit.edu,
or a mirrored site.
Please mail all bug reports or suggestions to the author.
Please specify the version of the program, as returned by the command
.BR "xboing \-version" ;
the machine you are using, as returned by the command
.BR "uname \-a" ;
and the version of X under which it is running (i.e., X11R5 or X11R4).
.PP
.B xboing
was ported to \*(CO by Harry C. Pulley, IV.
