Dave Gnukem

Dave Gnukem

[ News | About | License | Supported platforms | Download | Documentation | Help out | Screenshots ]

Dave Gnukem has moved

15 August 2004 As I no longer have time to work on Dave Gnukem, the project will henceforth be maintained by Evil Mr Henry, and is now housed at SourceForge. The new home page is here.


News
25 September 2002 Release 0.54e. A few small code cleanups, a few new tileset additions from Evil Mr Henry, and some new cheat keys in game to assist development.

24 September 2002 Release 0.54d. Fixed level editor crashing when at bottom of map. Added a few new tiles from Evil Mr Henry and a few other new tiles.

22 September 2002 Release 0.54c. Started integrating new integrated level editor from Vytautas Shaltenis (rtfb). Fixed a TGA loading bug; fixed a bug in the Linux version (CR/LF text file loading problem); added a few new sprites from Evil Mr Henry. A few other small bugfixes from rtfb.

9 September 2002 I will, for now, probably be continuing with Dave Gnukem. I have added some levels contributed by T.O.G of SpookWare. To get to them, select "missions" from the game main menu, and select them.

31 January 2002 I will, for now, no longer working on Dave Gnukem. This may or may not be permanent, I don't know yet. If you are interested in taking over this project, please let me know.

23 September 2001 Release 0.54. Sound support is back (thanks to Kent Mein) (although the sounds themselves still suck), implemented a high score list, redefinable keys, rudimentary load/save game support, monsters can now shoot, and, as usual, miscellaneous bugfixes and improvements. The SDL_mixer library is now required.

2 August 2001 A BeOS port of 0.53 is now available at http://www.bebits.com/app/2428. Thanks to David Marshman for that! Now if someone would just offer to do a Mac port ...

24 July 2001 Release 0.53. Ported to SDL, finally! Not only is the SDL implementation of the graphics/input are about half the number of lines of code as the DirectX version (DirectX is a pretty clunky API) but the SDL code works on Linux too, eliminating the need for extra Linux code (previously I used GGI).

15 July 2001 Release 0.52. Minor improvements and cleanups (graphics, new features e.g. fans, dynamite, level background image) and rewrites of some sections of code (monsters, lifts, conveyors, bullets)

4 July 2001 Release 0.51c. More minor updates (balloon, ACME falling block, disk, a few graphics improvements) and some reasonable code cleanups.

21 June 2001 Release 0.51b. Minor updates (new pickup types, spikes, GNUKEM letter bonus, a few graphics improvements).

17 June 2001 Release 0.51. Added an object factory. Rewrote the door/key code. Can now pick up letters. Added shootable solid blocks. Can now shoot security cameras. Added green crawly things. Added purple flags. Added shootable banana. Added high score list (almost).

16 June 2001 Got rid of djGameLib, made a number of other cleanups, added a spiky bouncing ball. No sign of the Linux version yet :)

13 June 2001 Uploaded a new version, Windows changes only. Minor cleanups and graphics changes. I don't think the Linux version compiles anymore. This is a temporary situation, I would like to fix it sometime. I have general plans to try port this game to SDL, and phase out all my own library stuff. Added some doxygen documentation for the source code. Fixed some problems that prevented the Windows version from compiling and running at all.

About
Dave Gnukem is a 2D scrolling platform shooter. It is inspired by and similar to Duke Nukem 1, one of my all-time favourite games. It currently runs on Windows, Linux and BeOS.

Although this is by no means a finished game, it is playable. You can walk, jump, shoot baddies, collect stuff, die, teleport, open doors, use lifts, open boxes etc. There is also a level editor.

I started writing this back in 1995 in my first year at university (actually it goes back longer than that, before that there was a pascal/assembly version), and work on it intermittently whenever I get time and inspiration. It was originally a DOS-based 16 color EGA game; I then converted it to Linux/GGI, then I did a DirectX-based Windows port, and then I converted it to SDL. The code is a bit messy due to it's colourful history, I'm slowly trying to clean it up.

The original Duke Nukem 1 (shareware version) can be downloaded here: 1duke.zip (Approx 300 KB). (The official web page is at http://www.3drealms.com/duke1/index.html, but don't even bother unless you feel like being put through the hell of trying to download something from GameSpy/FilePlanet.)

Note: I am not trying to write a clone of Duke Nukem 1. Although currently very similar, I have no interest in importing the actual DN maps or graphics, which belong to 3DRealms.

License
GPL (GNU General Public License) version 2 (*not* later versions). See http://www.gnu.org/ for more info on GNU, or the COPYING file included in the download for the full license.

Supported platforms

You currently must be in either 16-bit or 32-bit display mode when you run the game.

The game should be pretty easy to port to MacOS too, if anyone is interested in doing a Mac port, please let me know.

Download

Please visit the Dave Gnukem SourceForge project page to download the latest version of Dave Gnukem.

(A version for BeOS, compiled by David Marshman, can be downloaded at http://www.bebits.com/app/2428.)

Old Documentation
End-user documentation
readme-en.html End-user readme for game and editor (English)
readme-de.html End-user readme for game and editor (German - NB: This is old and outdated)

Source code documentation (generated by doxygen)
davedox.zip Zipped (189 KB)

Other miscellaneous odds and ends: some messy commentary about sprite collision detection.

Help out
There is a lot to be done still. Although I have fairly limited time available to work on Dave Gnukem, I do plan to finish it, even if it takes a few years still. Help is wanted on the following:
  • Documentation: Get the readme file up to date. Get the German readme up to date. Improve the doxygen documentation.
  • Sound: Find (or make) some decent sounds for the game. Coding-wise, multiple sounds should mix (currently if one sound is played, any existing sound is stopped). Also need a "stop sound" function, and functions for looping sounds.
  • Graphics: Good-quality graphics wanted for the game and interface.
  • Levels: Need level editors to produce levels.
  • Level editor: Should be improved.
  • Input: Joystick support.
  • Porting: I would very much like to see a MacOS port (should be fairly easy, because of SDL).
  • Coding: More monster types, loading/saving of games, recording/playback of games.

If you want to help out, see the Dave Gnukem SourceForge project page as a starting point.

Screenshots
Version 0.52 game screenshots:

Dave Gnukem screenshot 1

Dave Gnukem screenshot 2

Dave Gnukem screenshot 3

Version 0.52 level editor screenshot:

Dave Gnukem level editor screenshot 1


At the heart of science is an essential tension between two seemingly contradictory attitudes -- an openness to new ideas, no matter how bizarre or counterintuitive they may be, and the most ruthless skeptical scrutiny of all ideas, old and new. This is how deep truths are winnowed from deep nonsense. Of course, scientists make mistakes in trying to understand the world, but there is a built-in error-correcting mechanism: The collective enterprise of creative thinking and skeptical thinking together keeps the field on track. -- Carl Sagan, "The Fine Art of Baloney Detection," Parade, February 1, 1987