RoadMap: We are on track to a 'version 1' release of this game by October 2017 April 2018 *
About: Dave Gnukem is an open source retro-style 2D scrolling platform shooter, inspired by and similar to Duke Nukem 1 (a famous original 1991 game that launched the Duke Nukem series). It currently runs on Windows, Mac, Linux and various other platforms. It is written in C++ and uses LibSDL libraries. It features an integrated level editor.
Let me know if you are interested in contributing to this project.
Please donate, or else I'll make more games like this.
Mini Video Demo
• Now with less crashes
• Game taking forever to complete, like Duke Nukem Forever
• Shootable bananas
• Integrated level editor
• Subliminal messages
• Something that sort of resembles a cannon on wheels
• Arcane command-line parameters nobody will use
• Detects and corrects wrongthink
• Clever pun in game title
• Nostalgic references to technology nobody uses anymore
• Evil SuperTux
• SystemD integration
• Big rockets
• Bugs older than your children
• Cutting edge lighting effects you'd expect from 1990
• More or less family friendly
• A surprisingly bearable 18 frames per second
• Red balloons
• Fans that blow you
• Software doesn't spy on you
• 94.83% of the original Duke Nukem 1 gameplay elements
• Much much more!
News (2016 -)
13 Aug 2017Release 0.81 Added big jumping monsters, rockets, basic Dr Proetton and basics of end-game sequence, water, a new Level Editor command to create new blank levels, and several bugfixes and sprite improvements
5 Aug 2017Release 0.72 New 'sort of looks like a cannon on wheels' monster type; New 'approximate equivalent of DN1 rabbits' monster type; New special objects 'antivirus floppy disk' and 'master computer' (see plot); New type of floor that auto-crumbles after hero walks or jumps twice on it; New high-voltage barrier; Fix the falling Acme blocks implementation; Level updates; Add draft storyline/plot; Bugfixes.
Also: OpenPandora port v0.72 available
30 Jun 2017Release 0.71 (Windows): Add new 'flying robot' monster type; Implemented access card and access card 'door' and door activator; Added special molecule pickup that gives you full health; Level Editor: Add unsaved-changes indication; Level Editor: Add level statistics page (Ctrl+F6); Improve character control: Make vertical jumping/falling movement a bit smoother (more similar to the original DN1); Improve viewport vertical auto-scrolling; New keyboard shortcuts: Shift+F6/F7: Dec/Inc speed (framerate); Fix soda can not animating; Bugfixes »
22 Jun 2017Release 0.70 (Windows): Fix keypolling bug that slightly improves the character control, especially if trying to move left/right one block only; New instructions option on in-game menu; New "-scale N" command line option; Minor sprite and level improvements; New/better sounds; Increase gameplay viewport from 12 to 13 blocks; Bugfixes »
29 Oct 2016Release 0.66 (Windows): Add shortcut key to toggle sounds on/off (Insert); Fix: On Windows, game window often starts slightly off bottom of screen; Some save/restore game fixes; improvements to some of the sounds and game menu appearance »
22 Oct 2016 Release 0.65: Add volume controls (PgUp/PgDn), some basic background music, and new level editor 'hold in ctrl+alt and click to start level here' function »
10 Oct 2016 Release 0.61. Several bugfixes, and added semi-experimental 'big viewport mode' (Backspace + B in game to toggle) to assist with level creation/testing.
9 Oct 2016 Release 0.60. Some Linux compile fixes, a few other improvements (e.g. window size starts larger by default, improvement to default keys, etc.), and create new project source code repo at github.com/davidjoffe/dave_gnukem
14 August 2004 Release 0.55. Replacement of the hero sprite, some new
levels, a move to SourceForge, and some code modifications.
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 [presently defunct link ~2017]. Thanks to David Marshman [was at: http://www.silvan.demon.co.uk/beos/ - new link unknown] 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
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.
GPL (GNU General Public License) version 2. See http://www.gnu.org/ for more info on GNU, or the COPYING file included in the download for the full license.
Linux (You will need the SDL (Simple DirectMedia Layer) 1.2 runtime and SDL_mixer 1.2 library installed (http://www.libsdl.org/)
NB: It is important to use the above links! Some software sites are linking to specific versions of the
download file (e.g. ending in 0.53.zip), and this results in broken or outdated links when I upload a new version. The above URLs map
to the latest version.
If you want, you can also use this 88x31 banner for your link: (Right-click/save-as in most browsers)
(Yes, 88x31 banners are "so 1990s" - but so is this game!)
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
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.
See the github issue list for more possible ideas. Let me know if you want to help.
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
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 was slowly trying to clean it up but more or less gave 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.
The name is a pun on 'Duke Nukem' and 'Gnu' as a sort of 'hat-tip'/reference to the open source license/model.
* This wasn't a retro game when I started on it (~1994ish), but it's taken so long it's now 'de facto' retro genre. So we are copying also the Duke Nukem Forever model of taking forever to be released.