A custom 2D engine built around SDL3 and modern OpenGL 4.6 with a hot-reloadable gameplay module. The runtime host loads a shared gameplay library, preserves state across reloads, and supports asset packs plus cross-platform bundles.
Screenshot 1.
Screenshot 2.
SDL3 window/input/audio with GLAD-initialized OpenGL 4.6 context.
Sprite batching, tilemap streaming, 2D camera, dynamic lighting, particles, color grading LUTs, and CRT post-processing.
GUI stack for HUD/inventory/stats; gameplay controllers for movement, combat, AI, progression, and persistence.
Hot-reloadable gameplay module: state is serialized, module is reloaded, then state is restored.
Asset packer consolidates runtime assets into a single archive; toggles between packed and loose assets at runtime.
Packaging targets for Linux and Windows (cross-built via MinGW-w64); bundles include runtime + engine + gameplay + assets.
Doxygen API docs for engine and gameplay modules.
Engine (libengine): rendering (sprite batch + shaders), input, audio, assets, platform/logging, lighting/particles, virtual resolution, rendering callbacks (draw/lighting/overlay).
Game module (libcorvus_core): scenes (menu, gameplay, UI), asset policy, save/load, state serialization, exposed C exports for init/run/shutdown.
Runtime host: entry/main, hot-reload loop, asset root rebasing, env overrides for library/asset pack selection.
Assets/Tools: asset packer, release/bundle helpers, cross files for MinGW.
System architecture overview.
Meson/Ninja project; single target builds engine, runtime host, and hot-reloadable gameplay module.
Asset packer target bundles assets/ into a pack for all release bundles.
Cross-builds to Windows from Linux via MinGW-w64 with dedicated cross files; bundles include runtime, engine, gameplay, assets, and needed DLLs.
Doxygen config ships with the repo for generating API docs.
Requires GPU with OpenGL 4.6 drivers.
SDL3/SDL3_ttf/SDL3_mixer dev libraries for native Linux builds; Windows bundles embed SDL via the bootstrap step.