Rootex 3D Game Engine
04 Aug 2020Rootex Engine is an advanced 3D game engine written in C++ made by a small team which I led at a programming club named SDSLabs at IIT Roorkee. Rootex is supporting a work-in-progress game, which is planned to be released in 2021. It comes with an editor written also in C++ using Dear ImGui.
Features
Rootex uses a modified version of the Entity-Component-System architecture, now popular in the game development world because its ease of use, modularity and performance boost thanks to better CPU cache usage.
Rootex uses DirectX 11 as its rendering backend and we keep adding rendering effects to it like dynamic phong lighting, particles effects, etc.
Rootex has integrated Bullet 3D Physics SDK and uses it to simulate and visualize real-life-like physics in the game world.
Other features
- Audio Engine based on OpenAL with 3D attenuation
- Lua scripting API exposed for faster gameplay development iterations
- Event based programming model used in both internal functions and gameplay functions
Tech Stack
- Languages: C++17 with embedded Lua scripting
- DirectX11 for 3D rendering on Windows
- OpenAL for audio management
- Sol3 for creating Lua bindings for C++ code
- Bullet3D for 3D physics simulation
- Dear ImGui for creating editor GUI
- Gainput for input management
- Assimp for asset loading
- RmlUi for UI rendering using an HTML/CSS-like language
- and some other utility libraries
All 3rd party libraries and their licenses can be seen here or in the editor.
Rootex has been designed and developed completely inside SDSLabs, IIT Roorkee and has been documented here.