The Pixleon Engine is a game engine written in C++ with focus on 3D-games with physics.
The main motivation behind building it was to learn more about software development in general and game engine development in particular. For instance, I wanted to answer:
- How to decouple different parts of a game engine?
- How to organize code into proper folders to help maintain decoupling?
- How to produce an interface from dlls that can be re-used in different games or interactive experiences?
- How to integrate the Bullet physics API into the engine?
- How to integrate the FMOD sound API into the engine?
- How to write a modular build system using GNU Make to build different version of the engine 32- or 64-bit and debug/release etc?
- How to setup Emacs to simplify compile/build etc.
- How to expose an easy to use game making API without loosing flexibility?
- How to setup a deferred rendering pipeline?
- How to integrate a screen space effect shaders such as SSAO?