xonix - a game
application consists of a playing area and a status display
The status display shows the current values for level, filled area (in percent),
number of players (lifes), and elapsed time.
The playing area has several regions. The brown region (initially only the
border) is ``filled region'', where the player can move, starting from the top
left corner. Beware of the bouncing yellow eater(s) that do also move across
filled regions however, if they hit the player, a life will go away. The
flyers can only bounce across the green (so-called empty) area in the middle.
The purpose of the game is to move the player across the empty region (whereby
it leaves his way in a brown color to show where it came along), and finally
cut off a piece of unfilled region by moving him back to some filled region.
If the player itself or the (unfilled yet) way will be hit by a flyer, a life
will be lost again. Once the player's way reached another part of filled
region, the way and all adjacent unfilled regions where there is no flyer in
will be filled in turn. One level has completed as soon as 75 % of the
originally unfilled area have been filled this way.
Every level, there will be one flyer more. Every second level, an additional
player will be granted. Every fifth level, an additional eater will be fired
The default keys to move the player around are the arrow keys. This can be
changed in the app-defaults file, however, as well as the timeout between
single steps (defaulting to 50 ms equal 20 moves per second).
The default keys to immediately quit the game are `Q' and `Escape'. Hitting `P'
or iconizing the window with the window manager will pause the game;
de-iconizing will continue it.
There is also a high-score file, /var/cache/xonix/xonix.scores
records the top ten xonix players for that machine. As a special compile-time
option, a mail is sent to the previous xonix score leader when he's lost his
uses the X Toolkit and the Athena Widget Set. Below is the widget
structure of the xonix
application. Indentation indicates hierarchical
structure. The widget class name is given first, followed by the widget
All the standard toolkit options apply. It's not particularly useful to attempt
forcing any geometry however.
The original xonix
game has been seen somewhere on an old PC/XT clone.
This is a reimplementation from scratch, done by Torsten Schoenitz starting
the project on a Macintosh. The X11 support has been written by Joerg Wunsch
with the pleasant help by Alfredo Herrera Hernandez.
Source code comments are still mostly in German. Some files require the unusal
tab width of 4 in order to be displayed correctly.
It should be possible to pass some parameters from the command line as well
(e.g. the time step value), which is currently only possible by the back-door
via the -xrm
Mail any suggestions to <firstname.lastname@example.org>.