Beasts
    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.
    
Play
    The goal of the game is to squash all the beasts on each round of a
    particular level.
    World Objects
    
        
            | 
          The player. | 
        
        
            | 
          A Light Block. Can be pushed around by the Player, and Hatched
          Super Beasts. | 
        
        
            | 
          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.). | 
        
        
            | 
          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. | 
        
    
    Keys
    
      -  Movement: arrow keys, or the numeric keypad. Can move diagonally.
      
 -  Pull blocks: hold down shift while moving.
      
 -  Exit game: press Escape.
    
 
    Applet
    The applet is restricted: it does not save high scores between runs, and
    does not use reinforcement learning for the beasts' behaviour.
    
    
    Download
    
      - beasts-0.1.0.tar.gz
      
 - My implementation of BEASTS for Java (JDK1.1) including source and
      class files.
      
 - beasts_0.1.0_i386.deb
      
 - A debian package of the above.
      
 - beast.zip
      
 - The original DOS implementation from the mid-1980's. The
        documentation is quite interesting.
      
 - beasts-991004.tgz
      
 -  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
    
      -  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
      Linux.
      
 -  Sound.
      
 -  SuperBeast: can be preggers?
      
 -  Debian packaging. - default state file, setgid issues.
    
 
    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.
    BEASTS.
    Copyright (C) 2002 Peter Gammie (peteg42@gmail.com)
    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
    
    « back
    
    Peter Gammie
Last modified: Sun Feb 22 17:44:22 CET 2004