Gatlopp
Gatlopp is a game written
completely in Common Lisp. And when I say "completely", I mean that.
It's a top-down game inspired by Atari's arcade game Gauntlet, though it doesn't share more than the basic idea (move around, shoot, collect stuff, open doors, go to next level).
Gatlopp has an easily-edited map format and can be extended using a simple text editor.
As of now, gatlopp is single-player-only, though there are vague plans
of making it multi-player.
Gatlopp can be downloaded
here (gzipped tar archive, ASDF).
Technical details
Requirements
The game has been test-run on an AMD K6 233 MHZ linux machine with 256 MB of RAM, with two active X servers at an acceptable speed. Actual requirements for running the games are:
- A Common Lisp environment (tested with SBCL (linux) and Lispworks (Win32))
- An X server
Technology
All graphics in the game are stored in XBM format (this might change in the futrure, but for now it's a decent trade-off between "there are pixel editors that support it" and "it's easy to write eraders/writers for").
The game uses X11 for its display (maximum portability, network transparency, ease-of-implementation).
The game code is heavily centred around object dispatch.
All game AI is compiled to native code (as long as the CL implementation it's compiled with compiles to native code).
Tools used
- Emacs
- SBCL (primary coding environment)
- LispWorks Personal (portability and usability testing)
- Cygwin X (for X environment under Win32)
- SLIME (for a good interface between Emacs and SBCL)
- ASDF (for system definitions/build environment)
- XPaint (for graphics generation)
Development time
As far as I can tell, I started March 21st, 2005 and have been spending
about 5 hours a week on average since then. That means that as I write this,
I've spent roughly 135 hours on the development. Throw in a fudge
factor and say it's somewhere between 135 and 270 hours.
Screen shots
The following thumbnails link to 512x512 screen shots from the game during development.
Known bugs
- There's some background tearing when moving on top of a scrolling
map.
- The "ray" AI is not treating ray creation properly.
- MacOS X is interfering with the "switch off key-repeat", for
as-yet unknown reasons. At the moment, resolution is unclear.
Six Foot Games /
Ingvar Mattsson / ingvar -at- hexapodia dot net