Author image

KeyEngine - 2d & 3d Game Engine


Difficulty:
5/5


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.

Components

Graphics : Direct3d11
Instanced rendering : custom
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
Configuration files : inih, custom
Scripting : PyBind11
World/Level/Terrain loading, with Path Finding & NavMesh : Recast, Detour
Terrain LOD : Node based LOD
Model loading : Assimp
Texture loading : DxTex, WIC
Font Loading : DxTk, WIC
Math : DxMath, custom
Development UI : ImGUI
In Game UI : bgfx
Animation : Custom
Utilities : custom
Audio : XAudio2
3d Audio : X3DAudio
Multiplayer : WinSock
Logging : custom
Editor : ?
Basic Gameplay ie entities, interactions, actors, trigger volumes : custom

I originally used Visual Studio 2017 and Windows 8.1 Pro with C++17 to build the project.

I since upgraded to used Visual Studio 2019, Windows 10 Pro, with C++17 (btw the transition was seamless; props to Microsoft).

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

Github repository link.

Acknowledgements

Gamedev.net 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. Excellent C++ tutorials.

Introduction to 3D Game Programming with DirectX 11 by Frank Luna.

Library reference:


0 likes