A hobby game engine written in C++ and Direct3D 10 for the purpose of exploring modern rendering and game development techniques.
- Deferred rendering and shading pipeline, with four 32-bit RTs making up the G-Buffer. Materials with diffuse, normal, specular and emissive maps",
- Template driven dynamic shader builder that eliminates unnecessary branching by generating shaders with specific feature sets
- Integrated with Newton Game Dynamics physics engine enabling car driving simulation and collisions with terrain amd dynamic voxel environment. Physics is evaluated in a multi-threaded fashion running in parallel to the rendering thread
- 3D heightmap terrain with quad-tree culling and lightmap baking
- Voxel level geometry with arbitrary tile types and automatic hidden face removal between neighboring tiles of different shapes
- Fast GPU particle system
- PCF shadow mapping
- Post-processing effects composer (bloom, gaussian blur, SSAO, FXAA)
- Custom GUI with two way data-binding and dynamic stylesheets reloaded automatically upon file changes
- Hierarchical scene-graph> with bounding volumes hierarchy
- Custom OBB collision system for voxel/terrain
- Built-in profiler with framegraph, highlighting performance chokepoints
The project has the following dependencies:
- Assimp library for loading model files
- DevIL for image handling
- json-spirit as a c++ json parser
- Newton Game Dynamics
- boost 1.47
Voxel city model with 100 dynamic point lights
Shadow casting on a LeePerrySmith model
Vehicle driving game with a 3d terrain
Built-in editor with stylizable GUI
Voxel level destruction with dynamicly generated physical objects for the debris