BUDGE(1)

NAME
Budge - an arcade/puzzle game for X written in Tcl/Tk

SYNOPSIS
budge [-wish option ...] [-lf <level file>]

DESCRIPTION
The player controls Budge, a creature of indeterminate species, who owns a stud farm where he breeds monsters and sells them to people who write MUDs. Unfortunately he has a problem: due to recent sun-spot activity, the monsters have all gone completely mad! Since he has to fulfil a large order for monsters by tomorrow, he must venture into the breeding pens and force the critters to breed himself. There are two types of monsters in the pens: spiky monsters and fluffy monsters. Due to the sun-spot activity, the spiky monsters have been driven into a killing frenzy and chase Budge around the pens; luckily they are quite stupid and can be blocked off behind walls. The fluffy monsters on the other hand have withdrawn into a trance and wander around their pens, turning anti-clockwise whenever they bump into a wall. If Budge can make the two monsters in each pen bump into each other, nature will take over; he can then leave them to it and go on to deal with the monsters in the next pen. The monsters' pens are built from several pre-fabricated parts, which must be used to maneuver the monsters together:

    Walls:
        nothing can move through these

    Gates:
        these block monsters but can be opened by the player

    Disks:
        these block monsters but can be pushed around by the player

    Killers:
        these block monsters and kill the player if he moves onto them

    Invisible blocks:
        nothing can move through these, but you can't see them!

    Freeze pills:
        moving onto one of these will stop the monsters moving for a few seconds
Beware - bumping into any of the monsters is fatal!

OPTIONS

Budge accepts all of the standard Wish command line options along with the additional options listed below:

-lf path
    Sets the file which budge will read the levels from. The format of level files is described below.

DEFAULT CONTROLS

Cursor Keys
    Move Budge

F2  Pause Game

F1  Start Game

F4  Change Keys

F3  Lose a life and restart level

F8  Quit game (when playing) or quit program (when not playing)

RESOURCES

As well as the standard resources of the Tk widget set, Budge has these additional resources:

.monsterDelay (class MonsterDelay)
    Sets the delay between the monsters' moves, in milliseconds. This resource defaults to 250, ie: a quarter of a second.

.freezeDelay (class FreezeDelay)
    Sets the length of time that the monsters are frozen for after a freeze pill is collected, in milliseconds. This resource defaults to 10000, ie: ten seconds.

.levelFile (class LevelFile)
    Sets the directory in which budge will look for level files. The format of level files is detailed below. This resource defaults to

.up (class Up)
    Sets the key to move Budge up (specified as a keysym).

.down (class Down)
    Sets the key to move Budge down (specified as a keysym).

.left (class Left)
    Sets the key to move Budge left (specified as a keysym).

.right (class Right)
    Sets the key to move Budge right (specified as a keysym).

.pause (class Pause)
    Sets the key to pause the game (specified as a keysym).

.die (class Die)
    Sets the key to kill Budge and restart the current level (specified as a keysym).

.play (class Play)
    Sets the key to start a new game from the information display (specified as a keysym).

.quit (class Quit)
    Sets the key to quit the current game when playing, or quit the program when not playing (specified as a keysym).

CREATING NEW LEVELS
Budge reads its levels from the file specified by the -lf command-line option, by the levelFile resource or (as default) from the levels file in the budge lib directory. The file contains descriptions of each level in ASCII characters, and so new levels and level-files can be created with any text editor. Levels are made up of objects laid out on an invisible grid of 15 rows and 20 columns. Every 16 lines of the file describes a level, with no blank lines in between levels. The first line of each level is the level's title which must be in quotes. Each character on the 15 following lines describe the object at the corresponding position in the level's grid. If a newline character is found before the twenty-first character on a line, the rest of the corresponding row in the level will be filled with empty spaces.

If an end-of-file character is found before the end of the last level in the file, the rest of the last level will be filled with empty spaces. Each object in the game is represented by a character:

    <space>
        Empty space

    #   Block

    +   Gate

    o   Disk

    x   Killer

    -   Invisible block

    f   Freeze pill

    *   Spiky monster's start position. If more than one * character is found, strange things will happen.

    @   Fluffy monster's start position. If more than one @ character is found, strange things will happen.

    P   Player's start position. If more than one P character is found, strange things will happen.
New levels can be tested by creating them in a separate file and running budge with the -lf option to set the level file to the new level.

ENVIRONMENT

DISPLAY
    to get the default host and display number.

XENVIRONMENT
    to get the name of a resource file that overrides the global resources stored in the RESOURCE_MANAGER property.

FILES

/usr/lib/X11/app-defaults/Budge    -  required resources.

/usr/lib/games/budge/levels    -  default level file.

/usr/lib/games/budge/bitmaps/*    -  bitmap files

SEE ALSO
X(1) wish(1) Tcl(n) bind(n) Budge II - One Budge & His Bot. Coming soon to a display near you!!

DIAGNOSTICS

"no level-file specified for -lf option"
    You must give a filename for the -lf option.

"level file <file> not readable"
    Budge cannot open the level file. Either the access permissions are incorrect or budge is looking in the wrong place for the level file and its location must be set via the budge(level_file) variable, X resources or the command line arguments.

BUGS

The plot at the top of this man page is really awful!

Email any bug reports, comments or improvements to the author.

COPYRIGHT

Copyright 1994, Nat Pryce.

AUTHOR

Nat Pryce, Undergraduate, Department of Computing, Imperial College, London (np2@doc.ic.ac.uk). Level 17 was designed by Simon Cuff (sc2@doc.ic.ac.uk).