A multi-platform Java game in which the player moves about on a rectangular grid, while trying to escape or destroy advancing robots
The game was implemented in UCSD Pascal in the early eighties, as seen in Listing 1. The original may be found on Volume 1 of the USUS Software Library hosted in the west wing of the Jefferson Computer Museum.
The design of RobotChase is an example of the Model-View-Controller pattern. The main class (RobotChase) instantiates a model of the game (RCModel) and three views of that model (RCView, RCStatus, and RCInfo).
The interaction between the model and its views uses the Observer pattern. The model extends the class Observable, and each of the views implements the Observer interface. In this way, each view can update itself whenever the model signals a change in state.
RCView, in turn, delegates the drawing of each game tile to RCTile. The class RCImage is a factory that supplies one of several sets of images to RCView. The class RCPrefs provides static methods that maintain a persistent user state. RCHelp is a modal dialog that displays game instructions.
The game is played with the keyboard or mouse. By implementing KeyListener, the controller accepts the user's input and conducts game play. The main view implements MouseListener and MouseMotionListener as an alternate means of play.
The keys used to control the game are managed in the Key enumeration. The modal dialog RCKeys provides an interface for editing the corresponding key bindings.
Internally, the game model uses numeric virtual keycodes (96-105) to control movement. The numbers represent the eight (semi-) cardinal directions.
The present implementation uses Java. The latest source code is available on SourceForge. The ant build target compiles the source and creates a jar file of the required classes and images. The jar file is then copied to a Mac application bundle. The file Info.plist is edited and copied. Diagnostic output from the launch process may be obtained as follows:
$ export JAVA_LAUNCHER_VERBOSE
- Mouse control with optional animation.
- Keyboard control with key binding editor.
- Live window resizing.
- Settings stored in user preferences.
- Selectable tile sets.
- Online help.
- Documented source code.
In a hurry? Add it to your Download Basket!
What's New in This Release:
- Update logo; show window dimensions during resize.