LabRat 1.5 Specification

Author: David Southwick

Purpose: Refactor LabRat/KillerMaze to have a more mature gaming experience and be a reasonably viable intro product for Tall Hill Software (let’s be honest, 1.0 was pretty painful). Use this (or, more likely part of this) as a platform for further games.


Source Code Control: CVS

IDE: Eclipse

Frameworks: Java3D (possibly convert to Xith3D?)

Bug/Feature Tracking: Bugzilla

Required Features: (in no particular or sensical order)

1. Full Screen

2. Mouse Look

3. Assignable keys

4. Fix level changing

5. Fix level loading process (and possibly data type?)

6. Actual scary monsters/cats (with textures!)

7. Player character models

8. Fix collision detection with monsters and with hitting walls (ie, slide on the walls)

9. Mac-friendly single icon drag-install

10. Windows-friendly Java WebStart installer

11. Better questions? Remove questions? some other challenge?

12. Level loading story-lines

13. Scores

14. HUD

15. Ability to choose between full screen and windowed

16. 1 Click build and post system (ie, nightly builds)

Optional Features:

1. In game sound (ambient)

2. Red-Green glasses support

Features that we won’t do for this release:

1. Software Update mechanism

2. Multiplayer

3. Game Controller support

4. Crash Reporting mechanism

5. In game menu (use menubar instead)

User Scenario:

User A (Mac User):

    Bobby is a 14 year old who uses the family iMac running a variant of 10.4. Bobby is surfing MacNN and sees an announcement for an update to a game called "LabRat", and clicks the link for

    The site is very attractive, with a simple and cute design (see Freshly Squeezed or Panic for similar appearances). The game is prominently linked off the main page with an attractive icon to a simple page about the game. A couple small game screenshots along both side (that can be clicked to enlarge in a new window), in the center a quick little tongue-in-cheek game plot summary, followed a short blurb on system requirements and shareware cost (reasonable even for his year old computer) and just below (not so far as to cause the user to scroll) 2 enlarged graphics to look like large buttons (platform agnostic, of course) for "Mac OS X", "Windows".

    Bobby clicks the "Mac OS X" button, a disk image downloads, mounts (without a license agreement preferably), and opens in Finder. The Disk image window is in icon view, toolbar and sidebar hidden, the icon enlarged to somewhere between 96x96 and 128x128. The window contains a background picture of some aesthetically pleasing graphic for LabRat, a message describing how to drag install the game to your "Applications" folder. The window contains two icons, an RTF ReadMe and LabRat. Like most users, Bobby avoids the ReadMe all together (luckily, there is another copy in our help documentation and a copy linked on the product website) and drag installs LabRat by revealing the toolbar/sidebar of the window and dropping it on the Applications folder.

    After dropping LabRat onto the Applications folder, Bobby clicks on the folder to follow it and promptly double clicks the application. Boot-time will be slightly sluggish as this is a Java application, as soon as the JVM loads LabRat brings up a dialog window. The window contains a pleasing logo graphic for LabRat and below radio buttons to choose between windowed and full-screen mode for the game. Below that are popups to choose both resolution and color depth for game play. Bobby is given one more opportunity to change his mind before he starts the game with a Quit and Go button. And a checkbox to speed up subsequent launches to bypass this window in the future at the very bottom. Bobby chooses to play Full Screen (default), leaves the resolution and depth that the program defaulted to (upon analysis of his graphics card, which in an iMac is rather paltry), and hits the Go button.     The screen does a gamma fade to black in the transition to full-screen and changes the resolution to boot. Gamma fade screen with menubar always present into full-screen graphic for LabRat containing a humorous tagline or graphic, and a Tall Hill logo in the bottom right corner that has a full-screen slow zoom and/or pan with some sort of wooshing/wind sound being played. After 10 seconds of display the graphic is replaced with a transition to the game main menu. The game starts to load the first level. The level loading mechanism presents a basic intro story to our poor distressed rodent friend with some light, moody music in the background. Once the game has finished loading, so has the story (hopefully timed to occur about the same time), Bobby hits the “Play” button that was activated when the progress bar completed and disappeared.

User B (PC User): Greg is a 25 year old professional who likes to game for a half an hour on average after work before going to bed. He's looking for a game that he can play a quick level or two of with easy places to save (save anywhere, or save often at places), a game he can drop and come back to in a drop of a hat, and a game that isn’t too long to bother with. Similar to our friend’s little brother Bobby, Greg gets an IM for a link to an “amusin’” game from Bobby’s older brother. Greg navigates the site quickly and finds the download link for Windows. Greg discovers that he doesn’t have Java installed and has to go to Sun’s site to download. A Java Web Start file (JNLP) downloads and kicks of Java Web Start and starts to download the various support files for JOGL that he needs (see for example). At the end of the download process Java WebStart prompts Greg about whether he would like to save the game to his environment (need to check behavior on Windows), curiosity gets the better of him and he says yes and the game is added to his “Start” menu.

“Do it for the cheese! Do it for the cheese!