HRealEngine is a custom 2D Game Engine built with C++ and OpenGL.
-
Start with cloning the repo with
git clone --recursive https://github.com/haktan313/HRealEngine -
If you cloned it without the
--recursiveflag, initialize submodules manuallygit submodule update --init -
If you make changes to the build files or need to regenerate Visual Studio project files, run
scripts/Win-GenProjects.batthis will call premake5 and create the required.slnfiles.
| Editor | Sample Scene |
|---|---|
![]() |
![]() |
🧩 Some Features
- ImGui scene editor with viewport and gizmos
- Entity Component System by entt
- C# scripting support with Mono
- Dual scripting support — C++ (Native) and C# (Mono)
- Some events like: OnCreate, OnUpdate, OnDestroy, OnOverlapBegin, OnOverlapEnd, Destroy, etc.
- 2D batch renderer with textures and shaders
- Scene serialization using YAML
- Input handling and event system
- Layer and application framework
- Logging with spdlog
- OpenGL rendering backend
- Hot reloadable C# assemblies
- Framebuffer and render command abstraction
- Orthographic camera and controller
- File dialogs and content browser panel
I used a few submodules there is:
HRealEngine uses the following libraries (all included as Git submodules):
- Box2D – 2D physics engine
- mono - C# scripting
- entt – Entity Component System
- GLFW – Window and input handling
- Glad – OpenGL function loader
- ImGui – Immediate mode GUI
- ImGuizmo – Gizmo manipulation for ImGui
- spdlog – Fast logging library
- stb_image – Image loading
- yaml-cpp – Serialization
- glm – Math library for graphics
- filewatch

