← Selected work
01 / Game engine ecosystem

Umbra Engine

Umbra Engine logo

Umbra is a lightweight game engine built from the ground up for modern 2D and 3D development. It is both a working runtime and a long-term exploration of how focused tools can grow into a coherent engine ecosystem.

Technology
C++20 / Raylib / CMake
Status
Active development
Working on Custom Game Engine (C++)Latest development stream
Video & streams

Working on Custom Game Engine (C++)

Follow Umbra as engine systems move from architecture into working games, with the decisions and debugging captured live.

The challenge

How do you grow an engine without growing a monolith?

Game engines often become monoliths whose tools, runtime, and platform code cannot be separated. Umbra instead asks how an engine can grow through real games while keeping each boundary explicit and each useful subsystem capable of standing on its own.

The approach

Let real games define the engine.

Games set the requirements. The first Snake milestone established the application loop, dependency injection, state and scene management, entities, 2D rendering, collision, input, and debugging. Mature pieces are extracted into independent libraries rather than rewritten in isolation.

Inside the project

What it does.

  1. 01

    Application lifecycle with clear configuration and initialization hooks

  2. 02

    Interface-led Raylib abstraction for windows, rendering, and input

  3. 03

    Persistent and transient scenes with stack-based overlays

  4. 04

    Type-safe dependency injection with factory, instance, and singleton lifetimes

  5. 05

    An ecosystem of standalone logging, testing, JSON, language, and editor tools

Design principles

How decisions
get made.

Modular by default

Every module is designed to be useful without requiring the entire engine.

Driven by games

Capabilities are added when a real game creates the requirement, not in anticipation of hypothetical needs.

Interfaces at boundaries

Platform and third-party implementations sit behind replaceable contracts.

See the work

Umbra Engine

Explore the organization
Next projectNyx