template-3d (name subject to change) is the current name of my 3-D game engine. It was written from scratch in C++, and currently serves as a primitive 3-D physics sandbox. I intend to make it into a real game eventually when I get a good idea.
Here are some videos of the game engine in action:
- Written in C++ with lua scripting; some support tools written in Python
- Level editor provided as a series of Blender plugins
- Uses SDL2 for window management, and OpenGL 3.1+ for graphics
- Uses the Bullet physics engine
- Uses OpenAL for sound
- Runs on Windows and Linux
- 3-D planet generation: I managed to generate spherical planets without the typical distortion at the poles by using 3-D perlin noise to generate the height values, and isosurfaces (marching cubes) to render the planet. As an added bonus, terrain destruction was relatively easy.
- Gravity regions: A lot like Super Mario Galaxy. This was an interesting experience in working with the physics engine.
- lua/C++ bindings: David and I created a mostly-working implementation of bindings between C++ and lua that used variadic templates to “auto-detect” function and method arguments. Deriving from a C++ class in lua was also implemented.
- Marek Pokorny (me): General game engine programming, OpenGL programming, lua scripting interface
- David Stephan: Events programming, lua scripting interface, 3-D models and artwork, Blender plugins for level editor