This spring I was lucky enough to be able to spend time working on something I’ve wanted to do for a long time: a full-blown 3D game engine in Common Lisp. As a part of CSE 125 at UCSD (a senior design project course in video games), I worked a team with 4 other people to create a 3D multiplayer video game in 10 weeks. The result is Blackthorn 3D, and an accompanying demo game named LKCAS.

The game engine uses cl-opengl (with lispbuilder-sdl) for graphics, and supports particle effects, portals, skinning and animation (with a loader for the Collada format). The custom-built, pure-CL physics engine has support for swept sphere collisions against the static environment, allowing us to do things like have the players walk on all the walls in our levels. The network code was written with usocket and userial, and easily supports 4 players over a LAN, or even over the internet (albeit with the latency of your connection). See the following video for an example of what the engine can do:

http://www.youtube.com/watch?v=jz1OFjVLvcc

The course is now over, and I am transitioning Blackthorn 3D into being an open source project. I am planning on being the primary maintainer for the engine, and am looking to see whether anyone in the community is interested in helping out. At this point, I am still working on extracting game-specific code from the engine, but I am hoping that the engine will be usable in 3rd-party games by the end of the summer.

For more information, source code, and binaries (for Windows), see the project page:

http://code.google.com/p/blackthorn-engine-3d/