Your company here — click to reach over 10,000 unique daily visitors

foobillard - Man Page

OpenGL billard game


foobillard [options]


FooBillard is an OpenGL billard game for Linux. FooBillard is still under development, but the main physics are implemented. If you are a billard-pro and you're missing some physics, please contact the author.


--p1 ai|human, --player1 ai|human

Set player1 to be an ai (computer) or human player.

--p2 ai|human, --player2 ai|human

Set player2 to be an ai (computer) or human player.

--name1 NAME

Set the name of player1 to NAME.

--name2 NAME

Set the name of player2 to NAME.


Play a game of 8-ball.


Play a game of 9-ball.


Play a game of carambol.


Play a game of snooker.

--tablecolor COLOR

Table color in C-style hex notation <0xrrggbb>.

--edgecolor COLOR

Edge color in C-style hex notation <0xrrggbb>.


Blue table with chrome edges.


Green table with gold edges.


Red table with gold edges.


Black table with white frame.


Beige table with black metal.

--tablesize NUM

Set the table size (length) in foot to NUM (default: 7.0)

--lensflare, --nolensflare

Turn lensflare on or off.


Use positional light.


Use directional light.

--ai1err NUM

Set the errorlevel of the 1st ai player to NUM (0..1)

--ai2err NUM

Set the errorlevel of the 2nd ai player to NUM (0..1)

--balldetail l|m|h

Set the ball detail to [l]ow, [m]edium or [h]igh.


Start the game in stereo mode (red-green(cyan)).

--hostaddr HOST

Play a network game with HOST as server. See the Network Games section below for details.

--portnum PORT

Use PORT for the TCP connection. See the Network Games section below for details.

--geometry ARG

Set the window geometry to ARG (WIDTHxHEIGHT)


Play in fullscreen mode.

--freemove ARG

Turn free move in external view mode on or off.

--cuberef ARG

Turn rendered cubemap reflections on or off.

--cuberes ARG

Texture size for cuberef (has to be a power of 2)

--bumpref ARG

Turn bumpmap reflections of edges on or off.

--balltraces ARG

Turn balltraces on or off.


Show an overview of available options.


Overview of the keyboard/mouse functions available in FooBillard:

Mouse moving + button1             rotate
Mouse moving + button2             zoom
Mouse moving + hold b2 after b1    place cue ball
Mouse moving + hold b1 after b2    adjust effet
No mouse move + b1 after b2        toggle cue view on/off
Mouse moving + button2 + Ctrl      FOV - adjust
Mouse moving + button1 + Shift     place cue ball (when active)
Mouse moving + button2 + Shift     cue offset adjust
Mouse button 3                     shoot
<space> or <enter>                 shoot
<up>, <down>                       adjust strength
<pg up>, <pg down>                 adjust strength
<left>, <right>                    rotate
<ESC>                              end game
<0>                                suggest AI-shot
<a>                                toggle current player AI/human
<n>                                restart game
<b>                                show FPS
<v>                                turn vertical help-line on/off
<c>, <F3>                          toggle cue view on/off
<f>, <F4>                          toggle free move mode
<r>                                toggle simpler reflections
<s>                                toggle red/green stereo
<F1>                               toggle help screen
<F2>                               birdview (same as <F3>+<F4>+centered pos)

Config File

You can place a config file named .foobillardrc in your home directory. The file can contain all possible commandline arguments (without the preceding dashes, and one line for each argument). Commandline parameters are parsed after reading the config file, so they override the .foobillardrc settings.

Network Games

To start a network game :

Hit <ESC> to get to the menu,

Select <Network Game>/<As Host> on one computer and <Network Game>/<Join>/<OK> on the other machine after having set the proper IP in <Network Game>/<Join>/<IP>.

The <Network Game>/<Port> setting must be the same on both machines.

The IP of the host machine can also be set on the client machine  (the joining one), by adding hostaddr=IP-ADDR in the config file  (see below), or by passing it as commandline option: --hostaddr=IP-ADDR

Starting from menu the host sends its gamestate variables to the client, so every clienside settings get overriden by the host (gametype, tablesize, player names, ...)

The data sent between the two computers are only the shot-data, like strength, cue offset and direction. So if the two machines have a different internal floating point accuracy, the games may drift apart after a certain amount of time.

See Also

FooBillard homepage: http://foobillard.sunsite.dk/


FooBillard was written by Florian Berger <harpin_floh@yahoo.de>

This manpage was written by Wouter Eerdekens <retuow@xs4all.be> for the Debian GNU/Linux system (but may be used by others).