Unity Dungeon Crawler

A Unity 6 first-person dungeon crawler prototype built around fast combat, data-driven loot and spells, and run-based progression.

First-person view of the dungeon with enemies ahead and loot dropped on the floor

Project overview

A first-person dungeon crawler prototype built in Unity 6, centered on fast melee and spell combat, loot, and run-based survival. The player pushes deeper into the dungeon, grows quickly through XP, weapons, spells, and stat points, and loses the run on death.

The goal throughout has been expansion without rewrites. New enemies, weapons, spells, consumables, and loot tables are authored as data assets plus a small behavior class, stat formulas live in one calculator instead of being scattered across controllers, and the UI layer only displays and requests actions. Armor, rings, trinkets, boss encounters, and floor progression are the next systems on the foundation that is already in place.

Inventory screen filled with loot collected during a run

Technical features

  • Attribute-driven statsPower, Endurance, Vitality, Spirit, and Luck feed derived health, stamina, mana, damage, stamina discounts, and loot and gold scaling through a single stat calculator.
  • Per-item progressionWeapons and spells carry their own ID, level, and XP as runtime instances, so two copies of the same asset level separately. Spells cap at 20 with milestones at levels 5, 10, 15, and 20.
  • Inventory and equipmentA 30-slot grid with stack merging, plus twelve equipment slots covering weapons, scrolls, armor, rings, and a trinket. The first four double as hotbar action slots bound to keys 1 through 4.
  • Enemy AI state machineA shared Patrol, Idle, Chase, Attack, and Dead base on NavMeshAgent with field-of-view and line-of-sight detection, aggro memory, and last-known-position search.
  • Data-driven lootLoot tables roll each entry independently, shuffle the winners, and cap the result by drop count. Gold and bonus drops scale with Luck, and everything spawns into the world as engrams on death.