simple 3d support on top of that battery-included game engine
Common Lisp
Pull request Compare This branch is 376 commits ahead, 471 commits behind zkat:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


About 3D

This is a experimental fork targeted at adding 3d support to until-it-dies There is not much to see yet, and chances are what can be seen is pretty slow.

There is an example in the demo folder, it can be run with following commands: (asdf:oos 'asdf:load-op :until-it-dies.3d) (asdf:oos 'asdf:load-op :until-it-dies.3d-example) (uid-demo-3d:run-demo)

that example just builds a funny body and lets you move the camera around it with middle mouse button and mouse wheel


Until It Dies is a simple game and application engine designed to make it damn easy to get a window up to display all the shiny things you might want to do. It has support for image loading, sound, and fonts.

UID uses OpenGL to draw graphics, and a prototype-based object system, Sheeple, for its API.

UID itself is MIT licensed, and all its dependencies use permissive licenses. See below for specifics.

Getting it to run

UID is split into several modules. The base system, until-it-dies.base, includes the basics for the engine, such as windowing, the resource manager, the event queue, primitive drawing, and colors. If this is all you need, you can simply asdf-load until-it-dies.base. The only dependencies for this base system are Sheeple and CL-OpenGL. You must also have glfw installed in your system.

Besides the base system, UID currently includes systems that provide fancier features, which can optionally be loaded:

  • provides image loading, textures, animations, text rendering, and sprites. It requires that ftgl and devil be installed.

  • until-it-dies.sound provides positional audio. You must have openal and freealut installed in order to use this module. This module also depends on cl-openal for bindings.

If you want the whole thing, the until-it-dies.asd system will load everything.

As of right now, all of the modules dump their symbols into the base until-it-dies package.

How the hell do I use it?

You're on your own there for now. UID is still pretty new, so I haven't written up a manual. If you want to use it, I recommend checking out demo/testgame.lisp for a nice example of a simple application written with UID's API. You may also want to look at Sheeple and its API.

If you're working on something and want help, feel free to e-mail me (, or show up it #sykosomatic@freenode on IRC, and I'll do my best to help you get going.