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
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
||A Light Block. Can be pushed around by the Player, and Hatched
||A Heavy Block. Cannot be moved, may be explosive (i.e. if the
Player contacts one, it dies, and Light Blocks pushed towards it
||A basic Beast - can be squashed between any two blocks.
||A Super Beast. Can only be squashed against a HeavyBlock.
||An Egg. Hatches into a Hatched Super Beast.
||A Hatched Super Beast. Can push blocks around.
- Movement: arrow keys, or the numeric keypad. Can move diagonally.
- Pull blocks: hold down shift while moving.
- Exit game: press Escape.
The applet is restricted: it does not save high scores between runs, and
does not use reinforcement learning for the beasts' behaviour.
- My implementation of BEASTS for Java (JDK1.1) including source and
- 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
- There seem to be issues with different JDKs (well, at least Sun's
JDK1.3.1 on Linux). I wrote and tested this with the IBM v1.1.8 JDK on
- SuperBeast: can be preggers?
- Debian packaging. - default state file, setgid issues.
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
Random class was stolen lock-stock from the
Classpath project. Be kind to it.
Copyright (C) 2002 Peter Gammie (firstname.lastname@example.org)
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
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
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
Last modified: Sun Feb 22 17:44:22 CET 2004