Project Kim And The Secret Of The Burger Zombies
An AI-focused assignment at Futuregames Warsaw, where I built a lightweight Behavior Tree framework and two grid pathfinding backends (A* and Dijkstra) to drive an NPC's decision-making and navigation.

This assignment centers on an AI-controlled character (Kim) that has to evade zombies, collect burgers, and reach a finish tile on a grid-based level.
I structured the system in three layers: a Behavior Tree for decision-making, A*/Dijkstra pathfinding for route planning, and a movement layer that just follows the planned path so the decision logic and the pathfinding system can evolve independently of each other.
The Behavior Tree uses the standard Selector/Sequence/Condition/Action node types, letting behaviours play out over multiple frames instead of resolving instantly. Kim's decision-making prioritizes evading nearby zombies, waiting briefly to avoid jittery back-and-forth movement, chasing the nearest safe burger, and falling back to the finish tile once no burgers are safely reachable.
Both A* and Dijkstra navigate the grid in all 8 directions (including diagonals) and correctly avoid cutting through the corners of blocked tiles. A* finds paths faster by estimating distance to the goal, while Dijkstra is a simpler, heuristic-free version that explores more broadly. Both also treat tiles near zombies as riskier rather than fully blocked, so Kim avoids danger when possible but can still find a path if there's no safe option.
I also added stability features like a cooldown on replanning and a check to avoid recalculating the path unnecessarily, so Kim's movement stays smooth instead of constantly recalculating and stuttering.