ParelhoenDemo.mp4
This project is a rendering engine that is written in C++ 11 and using DirectX 12 as low-level graphics API. Additionally, I employed the ImGui library to create a user interface for configuring various rendering features in real-time. Initially, I integrated the EnTT header-only library as an Entity-Component-System, but later decided to implement a simpler solution without it.
I used CMake as a building tool. To run the project, do these steps:
- Clone the repo
git clone https://github.com/kovalgek/GameEngine.git
- Run these scripts in the root directory
- Open generated project file using Visual Studio 2019
- 3d objects in custom format
- Fog
- Mirrors
- Light
- Shadow
- Support
.obj
3d file format - Network layer
- Universal layer to support other rendering API like metal
I found Frank Luna's book Introduction to 3D Game Programming with DirectX 12 to be incredibly helpful in my development of this project. Instead of simply copying his examples, I aimed to create a game engine with a strong and well-designed architecture. Additionally, I found the experience of programming in C++ to be a refreshing change from my primary job, where I primarily work with Swift and Objective-C.