Personal C++ Game Engine
Overview:
This project is the C++ game engine that is used to make all my other personal projects and games. This game engine contains a DirectX 11 rendering pipeline, a 2D/3D math and physics library, and systems for important gameplay functionality such as audio, input, events, etc.
- Tools: C++, HLSL, DirectX 11
- Development Timeline: August 2022 – Present
Project Features:
Game Engine Systems
This game engine contains the following systems:
- Audio system (FMOD)
- Input system (mouse, keyboard, Xbox controller)
- Event system
- Debug rendering system
- Development console
- TCP networking system
- Multithreaded job system
- Parsers for XML, OBJ, 3DSprite, TXT, and binary files
2D/3D Math and Physics Library
The math and physics library supports the following features:
- Physics simulations for 3D rigid body dynamics and particle-based Position Based Dynamics
- Collisions detections for any convex polygon or polyhedron (SAT, GJK, and EPA)
- Spatial partitioning algorithms for BVH, bit-buckets, and quad trees
- Raycasts for AABBs, OBBs, capsules, cylinders, discs, spheres, lines, planes, and convex hulls
- General math utilities for dot product, cross product, projected lengths, easing functions, splines, interpolation, etc.
DirectX 11 Rendering Pipeline
This engine contains a DirectX 11 rendering pipeline to support texturing, HLSL shaders, sprite animations, sprite sheets, bitmap fonts, render target/depth stencil effects, specular maps, and normal maps.