
Gameplay
Enhanced Input
UI
DURATION
20 Weeks
ROLE
Project Manager / Programmer
TEAM SIZE
5
PLATFORM
PC
ENGINE
Unreal Engine
TRAILER
Worked On Systems
EXPLANATION
CODE
Gameplay
The Challenge:
We needed a fast dungeon Generator to create unique layout every time a player enters the dungeon. sizes up to 500x500 units per dungeon
My Solution:
I created a custom procedural dungeon generator combining Binary Space Partitioning (BSP) for the structural layout and Cellular Automata for organic cave-like structures. To ensure every map is fully playable, I integrated a Flood Fill algorithm to eliminate isolated pockets and developed a custom corridor-checking algorithm to elimate desgin errors.
Extra:
To speed up our workflow, I didn’t just stop at the generator itself: I built a interactive in-engine tool. This allowed me to instantly test seed generation and even paint custom layouts by hand,
EXPLANATION
CODE
State Machine / AStar
The Challenge:
We needed an intelligent, role-based AI system where enemies dynamically form squads with Leaders and Minions, defend valuable assets in the mines, and intelligently fallback to standalone behaviors if they are separated from their group.
My Solution:
I built a state machine with six behaviors: Idle, Grouping, Searching, Patrolling, Retreating, and Attacking. The system is driven by a 'Group Manager' from Boss enemies, as well as valuable points of interest around the dungeon that enemies patrol to protect. Everything is designed so that enemies look for groups to fight alongside; however, if no groups or valuable spots are nearby, they will patrol alone and fight independently.
Extra:
To complement the chase system, I developed a custom AStar tailored specifically to my dungeon layouts. This ensures enemies can relentlessly pursue the player without getting stuck on walls, environmental decorations, or interactable objects like ores and chests.
EXPLANATION
CODE
2D Animation
The Challenge:
To support our pixel-art art style, we needed a custom animation controller capable of handling all pixel-based sprite animations across both the player and diverse enemy types. The core challenge was creating a highly generic, reusable system that featured a robust event architecture that triggers on various animation states.
My Solution:
I developed a highly decoupled, ScriptableObject-driven animation controller that requires only a movement component to function. The system automatically calculates the entity's directional vector, handles sprite rendering, and fires precise frame-specific events based on the current animation state. By leveraging ScriptableObjects, adding new actions or behaviors is entirely data-driven and requires zero extra code.
Screenshots
COPYRIGHT © TOBIAS HÖFLMEIER 2026




