THE AGE OF GLOOM
A gameplay-first world of ruin and strategy — featuring eight unique wagon classes, multi-threaded procedural hex world generation, a custom post-process shader system, and a full art-direction pivot from 3D to 2.5D. A technically ambitious contracted project that pushed the limits of what's possible in Unreal Engine 5 for a small team.
// GAMEPLAY_VIDEO
[ VIDEO SLOT ]
Add a gameplay clip or dev showcase — the shader system and procedural generation are both very showable.
<iframe class="yt-embed" src="https://www.youtube.com/embed/YOUR_VIDEO_ID" title="The Age of Gloom gameplay" frameborder="0" allowfullscreen></iframe>
// KEY_RESPONSIBILITIES
Developed a custom post-process material to visualize the core Gale vs Gloom mechanic — dynamically saturating the environment based on proximity to the player's lantern. The viewport is first globally desaturated; objects tagged as "Gale" are then re-saturated using stencil masking, noise blending, and lerps. The result: a powerful atmospheric tension system that communicates danger without any UI. Built entirely in UE5's material editor, optimized for real-time updates as objects enter and exit the lantern's range.
Built a hex-based procedural world generator that creates a unique map every playthrough. Used UE5 Level Instances to stream hundreds of tile variations in and out without performance impact, and implemented a custom multi-threaded tile loading system so new hexes are ready before the caravan reaches them. Each hex tile pulls from procedural rulesets governing terrain, asset spawning, and encounter points. Hand-designed every core hex variant in collaboration with the book's author.
Directed the full shift from 3D to 2.5D to achieve a more defined and readable art style. Built a custom terrain system generating procedural ground planes with a tile-based structure. Using PaperZD and pixel art animation blueprints, created a responsive animation system for wagon attacks and state transitions — retaining spatial depth while gaining the clarity and expressiveness of pixel art.
// SCREENSHOT_LOG