Shotgun Debugger is a shoot-em-up game I made with Carnegie Mellon University's Game Creation Society in the spring of 2005. I recently rediscovered the source code, and thought I'd put it back up.
It is a 2D, top-down action game. It is The Future, and your habit
of computer network exploration has finally done you in. You are captured and taken
to a strange underground complex populated by robot soldiers. Your task is to escape
the facility—but the hordes of walking death machines aren't just gonna let you.
Shotgun Debugger is pseudo-3D—while gameplay is strictly two-dimensional, the world is rendered in three dimensions. Worlds are not tile-based, but polygon-based—rooms and hallways can be made to any shape imaginable, allowing for some rather impressive architecture. Features of the game include:
- 3D animated character models
- Colored lighting, particle, and motion blur effects
- Gravity, friction, pushable objects, and ricocheting bullets
- Trigger-based event system
- Pathfinding AI
- Five types of enemies and six weapons to blow them away with
- Eight levels
- Best statistics stored for each level
- Mouse control and "first-person"-like angle-locked view for precise aiming
- Sound effects and music
- Support for high-resolution and wide-screen graphics modes
- Open-source, released under the GNU GPL
- Uses SDL and OpenGL for cross-platform support
Stay clear of the kamikaze robots!
Explosions set off chain reactions
The mighty HEPA
Your vision gets pixelated when you take damage
The ricocheting laser is a challenge to handle
It's laser mania!
- Matt Sarnoff: Project leader and progenitor; programming, story, documentation, sound effects, and 2D art
- Chris DeLeon: Lead level designer; game design feedback, sound effects
- John Nesky: 3D model design, Mac OS X icon
- Gregory Peng and Jeff Thoene: level designers
- Tuscan Knox: music
- Michael Weber: testing
Click here to download Shotgun Debugger for Mac OS X 10.5 and later. (Intel only) All libraries are included; just drag the .app into your Applications folder and you're set.
Shotgun Debugger levels were created in Inkscape, an open-source vector graphics editor, and converted to our level format with a script called svg2vl. If you're interested in creating your own levels for Shotgun Debugger, you can download svg2vl, the level specification documentation, and the original SVG files for all eight levels here. svg2vl requires perl. Levels were created with Inkscape 0.40; newer versions may be incompatible with the script.
Shotgun Debugger was created when I was a freshman in college. I was 19 years old. I was pretty bad at C++ and knew very little OpenGL.
It took roughly five months to complete. I worked one or two nights a week.
At the time, my caffeine of choice was Mountain Dew Amp. I have since learned that energy drinks are evil.
I pulled two notable all-nighters during the course of development. During the first, my video card (a very nice GeForce 6800 if I recall correctly) blew up at 10 AM. I put all the source code on a flash drive and continued to work on a Windows machine in a computer cluster. The second was actually two all-nighters in a row; I was getting Shotgun Debugger ready for the Game Creation Society's showcase at SCS Day 2005. After being awake for nearly 48 hours, I passed out during the talent show.
I had to drop Physics II that semester. Physics and I have never gotten along (as you can tell by the dodgy collision detection.)
My original idea was to make it completely 2D. I resisted making the walls 3D for quite a while, then one day I coded it up, saw how wrong I was, and never looked back. Chris wanted to add textured walls/floors, but I refused because you couldn't visualize textures or specify texture coordinates in our "editor." (Inkscape) I'm glad we kept everything flat-shaded, the look is very unique.
No OpenGL hardware lighting is used. All the colored light effects are precomputed.
We had some pretty interesting programmer art before John made the models, like the Box Quartet.
After my freshman year, I became a normal college kid, and haven't made a complete game since.