
TRAILER
Worked On Systems
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




