What is it?

Dagger3D is a library written in C/C++ for making cross-platform games.

I'm mainly writing this to learn more about game programming. Feel free to send me an email if you'd like to know more (tom9729 at gmail dot com).


  • Win32, Linux, Mac OS X
  • Strictly C API
  • Resource management
  • Truetype font rendering
  • Particle systems
  • Shadow volumes
  • Dynamic lighting
  • Skybox rendering
  • Simple mesh rendering with Blender export script
  • Keyboard/mouse input, async key presses, virtual cursor, mouse capture
  • OpenGL window, fullscreen
  • TCP/UDP sockets
  • Microsecond timers
  • USB joystick support for multiple devices (Win32, Linux only)
  • OpenAL 3D audio
  • Quaternion/vector math classes, basic geometry functions for frustum culling

Here's some stuff that I'm currently working on:

  • Background resource loading
  • Audio streaming (for music)
  • Quake 3 BSP level loading, rendering, and collision
  • LOD for heightmap terrain with triangle bintrees


  • glut (freeglut, macglut)
  • openal
  • libpng, libjpeg
  • libogg, libvorbis
  • freetype
  • zlib
  • pthreads

Useful Links


Nothing recent, see examples directory in subversion.


Head over to the downloads page.

The latest release is 0.3.1. Note: This is pretty old, you're better off working with me on getting something usable from trunk. :)


Dagger3D uses a modified BSD license that is distributed with the source code. In a nutshell, you can use Dagger3D for whatever you like so long as the following provisions are followed:

  1. If you redistribute the source code you must include the original license.
  2. If you redistribute binaries of Dagger3D (ie. compiled libraries), you must include the original license somewhere.
  3. You may not use the name of this project or any of its contributors to endorse your project.
  4. Dagger3D comes with no warranty. It probably won't break your computer, but if it does it's not our fault.
main.txt · Last modified: 2011/07/24 02:24 by tom