FORATH
A first-person medieval-fantasy action RPG of dungeons, loot and a town that grows with you.
Engine Unreal Engine 5 · Blueprints · Windows PC
2 - 4 player online co-op
2 - 4 player online co-op
Game Designer & Gameplay Systems
Currently in Pre-production & Prototyping
Explore - Collect - Build
Forath is a first-person co-op action RPG for one to four players. You and your friends dive into procedurally generated dungeons, fight and gather, bring the loot back home, sell it in your own shop, and invest the earnings in a town whose townsfolk arriver as it grows.
I design and build Forath's gameplay systems in Unreal Engine 5 Blueprints. They are modular and talk through Actor Components, Blueprint Interfaces, Gameplay Tags, structs and data-driven item definitions, so the same inventory, loot and interaction logic serves the player, NPCs, merchants and containers.
THE CORE LOOP
Explore the overworld and descend into a generated dungeon.
Fight and gather enemies, chests and resource nodes.
Keep, equip or sell what you found.
Earn and invest through your own shop.
Develop the settlement and unlock new townsfolk.
Explore again, better equipped.
FEATURED SYSTEM
Procedural Dungeon Generator
Every dungeon is generated from a seed, so any layout can be reproduced exactly for testing and bug reports.
Data first, actors last
The whole layout is built as data before anything spawns. A failed layout is thrown away and retried with a new seed, instantly, because nothing exists in the level yet.
Main path, branches, loops
A random walk with backtracking carves the route from entrance to boss room, then side branches and extended loops keep it from being a single corridor.
Template matching
Each cell knows which exits it needs. Every room template that fits, in any rotation, becomes a candidate, and one is picked by weight while avoiding recent repeats.
Deterministic population
Each room stores its own seed. Per-room-type profiles set enemy and chest counts, so a room always fills the same way, even when it is filled later as the player approaches.
Tooling
- Seed Stress Test: Generates a batch of dungeons from consecutive seeds without spawning the player, stops at the first failure and reports the exact seed so the bug can be reproduced.
- Debug Cell View: Draws every cell in the level as a colour-coded box (main path, branches, loop connections), with each cell’s data shown, so layout problems are visible at a glance.
- Text Seeds: Any word can be a seed. It’s trimmed, made case-insensitive and hashed to a number, so “DRAGON” always builds the same dungeon and seeds are easy to share.
- Size Presets: One setting switches the whole generator between dungeon sizes, for example 8–12 main-path rooms with up to 20 cells, or 12–18 rooms with up to 35 cells.
- One-Click Regenerate and Auto-Retry: Regenerate steps to the next seed instantly, and a failed layout retries with a new seed while keeping your original seed on the first attempt.
Enemies & Boss
A lightweight enemy framework built for co-op; on base enemy, with each type defined by a data asset. Enemies think on a timer instead of every frame, and they sleep fully when no player is nearby.
The Slime Family
Gloob
The classic green slime. Gloob hops around its room, leaps at players when they get too close, and wobbles! Gloob runs a time-driven AI with no per-frame tick, and sleeps completely until a player enters adjacent rooms.
Dave
A water slime with half gravity, so it floats through the air. It is a child of the base slime, so the new behavior needed no extra network traffic. Every player sees the same thing from the slime's existing state
KaGloomba
A heavy, dark slime that hits hard and explodes when killed, knocking players back and dealing damage to all pawns nearby.
Boss: Mama Slime
The boss... a giant slime that slams the ground, gives birth to baby slimes, and gets more aggressive at half health. Her babies are capped so a long fight doesn't flood her room. Upon defeating her, a portal opens to let the player return back to the entrance room.
The classic green slime. Gloob hops around its room, leaps at players when they get too close, and wobbles! Gloob runs a time-driven AI with no per-frame tick, and sleeps completely until a player enters adjacent rooms.
Dave
A water slime with half gravity, so it floats through the air. It is a child of the base slime, so the new behavior needed no extra network traffic. Every player sees the same thing from the slime's existing state
KaGloomba
A heavy, dark slime that hits hard and explodes when killed, knocking players back and dealing damage to all pawns nearby.
Boss: Mama Slime
The boss... a giant slime that slams the ground, gives birth to baby slimes, and gets more aggressive at half health. Her babies are capped so a long fight doesn't flood her room. Upon defeating her, a portal opens to let the player return back to the entrance room.
Data-Driven Item System
A centralized item framework using reusable item data and instances to define properties such as category, stack size, value, equipment type, stats, economy tags, and loot behaviour.
Loot & Container System
A reusable loot system supporting randomized loot pools, weighted drops, item quantities, persistent containers, and two-way item transfers between player inventories and chests.
Merchant System
A complete buying and selling system featuring merchant inventories, item quantities, stock management, pricing modifiers, player currency checks, and integration with the wider economy.
Currency System
An integrated currency framework used across pickups, inventories, merchants, transactions, and economy systems, with automatic balance validation during purchases and sales.