Custom C++ Game Engine
Project Description
The foundation under my solo games, Doomenstein and NetChess3D included, is a 3D game engine I built from scratch in C++. Its DirectX 11 renderer supports model loading through a custom OBJ parser that deduplicates vertices into indexed geometry, runtime-compiled HLSL shaders, and switchable orthographic/perspective cameras. The lighting path includes diffuse directional sunlight with a configurable ambient fallback and TBN normal mapping built on a 60-byte Vertex_PCUTBN format.
The rendering pipeline is fully configurable, offering independent depth testing, alpha/additive blend modes, and rasterizer state control, with state caching to minimize redundant GPU calls. It is backed by a GPU buffer system with dynamic resizing and a resource cache for textures, shaders, and models. Around that core sit the systems a real game needs: an in-game dev console, event system, FMOD audio, keyboard/mouse/controller input, XML-driven configuration, TCP networking, and Dear ImGui debug tooling, plus a math library backed by its own unit-test and visual-test suites.
View Code on GitHub