- Modern C++17 Engine Architecture
- OpenGL 4.5 Core Batch Renderer
- Event Dispatch & Layer Stack
- Dear ImGui Real-Time Tooling
GRAPHICS PROGRAMMING / C++ GAME ENGINE
Architecture & Systems Engineering of a Modern C++ Game Engine
Hazel is an interactive 2D/3D game and graphics engine built in modern C++. Designed with strict separation of concerns, Hazel encapsulates platform-specific windowing and OpenGL graphics APIs behind clean, reusable abstractions including an event bus, layer stack, modular renderer, and integrated Dear ImGui debugging overlay.
Event-driven architecture & window management
Decouples windowing from platform backends using GLFW and an event-dispatch bus. Keyboard, mouse, and window resize events are wrapped into strongly-typed event classes and routed through the layer stack with early-consumption semantics.
Modular layer stack & lifecycle management
Applications are constructed by pushing distinct game logic and overlay layers onto a dynamic LayerStack. Each layer manages its own lifecycle (OnAttach, OnDetach, OnUpdate, OnImGuiRender, OnEvent), enabling clean modular separation of gameplay, physics, and tooling.
OpenGL 4.5 batch renderer & shader pipeline
Implements high-performance 2D batch quad rendering that groups draw calls into dynamic vertex and index buffers. Features GLSL shader compilation, uniform buffer management, multi-texture slot binding, and orthographic camera projection.
Dear ImGui integration & real-time telemetry
Integrates Dear ImGui with docking support for runtime diagnostics. Developers can inspect frame times, draw-call counts, memory usage, entity positions, and material properties dynamically without recompilation.
Engine Specifications & Core Modules
- Language / Standard
- Modern C++ (C++17) with CMake and Premake5 build toolchains
- Graphics API
- OpenGL 4.5 Core Profile with Glad loader and GLFW windowing
- Rendering Pipeline
- Dynamic 2D batch renderer, textured quads, custom GLSL shaders
- Event Handling
- Non-blocking event dispatching system with typed event callbacks
- Subsystems
- LayerStack, Input polling, OrthographicCameraController, Timestep
- Editor / Tooling
- Docking Dear ImGui interface with live frame profiling & debug viewports
Computer Graphics & Systems Programming Impact
Demonstrates advanced systems architecture in C++, resource management through RAII, GPU pipeline synchronization, and real-time interactive graphic software development.