Beast is a classic arcade-style game from the 1980's. The original version was written by Dan Baker, Alan Brown, Mark Hamilton and Derrick Shadel. This page describes my Java re-implementation, which shares nothing with their's except for the graphics.

I'm hoping to use reinforcement learning to learn beast behaviour, which will hopefully lead to more interesting gameplay (and is far more interesting than dreaming up and implementing heuristics!).

Please mail me if you have any comments or suggestions.

Thanks to Fergus for help with the grotty setgid wrapper stuff.


The goal of the game is to squash all the beasts on each round of a particular level.

World Objects

<> The player.
LB A Light Block. Can be pushed around by the Player, and Hatched Super Beasts.
HB A Heavy Block. Cannot be moved, may be explosive (i.e. if the Player contacts one, it dies, and Light Blocks pushed towards it are destroyed.).
BH A basic Beast - can be squashed between any two blocks.
SH A Super Beast. Can only be squashed against a HeavyBlock.
oo An Egg. Hatches into a Hatched Super Beast.
HS A Hatched Super Beast. Can push blocks around.



The applet is restricted: it does not save high scores between runs, and does not use reinforcement learning for the beasts' behaviour.

Screen Shot

Your browser does not support Java, or you have switched it off. The above is the splash screen of the game.


My implementation of BEASTS for Java (JDK1.1) including source and class files.
A debian package of the above.
The original DOS implementation from the mid-1980's. The documentation is quite interesting.
Kevin Turner's incomplete implementation. There's a patch to go with it from Open Game Source. (Kevin's webspace seems to have gone into that post-uni limbo.)

To Do

Legal mumblings

BEASTS is licenced under the GPL, with explicit permission granted to link against the libraries it requires (viz the Java standard API, the implementation of which need not be not GNU-free). The implementation of the Random class was stolen lock-stock from the GNU Classpath project. Be kind to it.
    Copyright (C) 2002 Peter Gammie (

    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 2 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA

« back
Peter Gammie
Last modified: Sun Feb 22 17:44:22 CET 2004