Author image

KeyEngine - 2d & 3d Game Engine


Hobby DirectX11 C++ game engine, with ambitions of evolving into a full fledged game engine in 98.13 billion years.

KeyEngine demo 3d sandbox

It is the culmination of a lot of subsystems I've been researching & building throughout my programming journey, many of them are presented at length in other posts.


Graphics : Direct3d11
Diffuse, Specular normal workflow
PBR workflow : UE4's Metallic/Roughness - Base color, Roughness, Metallic maps
Decals : custom
Input : WinAPI & RAWInput, custom gamepad input
Physics : Bullet Physics
Configuration files : inih, custom
Scripting : 
World/Level/Terrain loading, with Path Finding & NavMesh : Recast, Detour
Model loading : Assimp
Texture loading : DxTex, WIC
Font Loading : DxTk, WIC
Math : DxMath, custom
Development UI : ImGUI
In Game UI : bgfx
Animation : Custom
Utility libraries : custom
Audio : XAudio2
3d Audio : X3DAudio
Multiplayer : WinSock
Logging : custom
Basic Gameplay ie entities, interactions, actors, trigger volumes : custom

I used Windows, Visual Studio and C++17 to build the project.

Employ your time improving yourself by other men's writings so that you shall come easily by what others have labored hard for. - Socrates


Github repository link.

For a simpler Direct2d only version see this.

Acknowledgements fora

Microsoft docs

Engineering Mathematics & Advanced Engineering Mathematics : For your general math background - go from zero to hero by reading and solving all exercises in just those 2 books

3D Math Primer for Graphics & Game Development 1st Edition by Fletcher Dunn and Ian Parberry. Fletcher Dunn announced that the 2nd edition is available online for free.

Rastertek fantastic & complete C++ HW API tutorials

ChiliTomatoNoodle for his precious Bindable-Drawable design pattern and dynamic vertex/constant buffer construction which I borrowed stolen. Also marvelous C++ tutorials!

Library reference: