Game Engine Architecture

Data-Driven Game Engine

A component-based engine bridging C++ memory management with Lua scripting logic

Engine Demonstration

// OVERVIEW: Dear ImGui Scene Editor. C++ engine exposes an API allowing the Lua scripting layer to render debug geometry, instantiate actors dynamically, and modify component properties in real-time.

Technology Stack

Core Engine

  • C++ (Standard Library)
  • SDL2 (Graphics/Input)
  • GLM (Mathematics)

Scripting & Logic

  • Lua 5.4
  • LuaBridge

Simulation & Tooling

  • Box2D (Physics)
  • Dear ImGui (UI)

Data & Storage

  • RapidJSON
  • Custom .scene Formats

System Architecture

Rather than hardcoding gameplay logic in C++, I architected this engine around a strict Component-Based Actor System. The C++ backend handles high-performance tasks like managing memory, updating the Box2D physics simulation, rendering SDL textures, and isolating input.

LuaBridge Integration

By mapping C++ memory pointers to Lua using LuaBridge, game designers can create entire UI overlays, game logic, and AI behaviors in scripts without recompiling the core executable.

ImGui Developer Tools

A custom feature where I integrated Dear ImGui. I wrote safe C++ wrappers to expose ImGui to Lua, allowing for the creation of a live Property Inspector, Asset Browser, and an pathing tool.

// Source Code

The complete source code for the engine, including the ImGui integration and Lua wrappers, is available on GitHub.

View Engine Repository