A diploma project prototype of a cooperative online dungeon crawler built in Unity. Features procedurally generated dungeons and real-time multiplayer over Steam, powered by Mirror and Steamworks.NET.
🎯 Purpose: Demonstrate core gameplay systems — procedural level generation, networked player interaction, and Steam integration — in a playable Unity prototype.
-
Procedural Dungeon Generation
Multi-level dungeons are generated randomly using hand-crafted room and corridor prefabs. Room connectivity is established by building a minimum spanning tree, ensuring full traversability. The system supports configurable loops — you can specify the number of cycles and set a minimum cycle length (in rooms). Corridor routing between rooms uses the A* pathfinding algorithm for natural layouts. Adjacent dungeon levels are connected via special transition rooms (e.g., stairs or elevators). -
Steam-based Multiplayer (2–4 players)
Host-or-join lobby system using Steam P2P networking. All player actions (movement, interactions) are synchronized in real time. -
Expandable Inventory & Usable Items System
Players can pick up, drop, select, and use items (e.g., sword, fireball staff) during gameplay. The system distinguishes between pickable world items and inventory slot items, adhering to the Single Responsibility Principle. New item types with custom behaviours are added by subclassing the baseInventoryItemclass. All actions — pickup, drop, usage — are fully synchronized across the network using Mirror’s server-authoritative model, ensuring consistent state for all players. -
In-Game UI & Steam Overlay Integration
Main menu, lobby screen with Steam friend list support, and in-game HUD (including inventory panel) — all functional in networked sessions.