Back to project journal

PROJECT NOTES / C++ GAME ENGINE

Hazel Modern C++ Game Engine

An interactive graphics engine built in C++17 featuring an event-dispatch bus, modular layer stack, OpenGL 4.5 2D batch renderer, and Dear ImGui runtime tooling.

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.

01

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.

02

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.

03

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.

04

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.