Octodrone was the first ground-based enemy developed for Operation Starfall.
Its design combined state-driven AI, animation cycles, and responsive attack logic.
This system was built collaboratively with J5X.
We integrated Animator triggers with the enemy’s state machine, ensuring Octo’s Idle, Walk, Jump, Attack, and Fuzzy states transitioned smoothly. Unity Events were used to time animation transitions such as JumpUp → JumpTop → JumpAttack.
Each of Octo's animations:
In the gif above you can see Octo's Idle, Walking, Jumping, Attacking & Fuzzy animations. Visuals and animations by Alex Kentie, Creative Director at NeoN Origins.
Patrol and detection systems already existed in the codebase for flying enemies. Together, we refactored and extended this logic to support Octo as the first ground-based enemy. Through pair programming, we adapted pathfinding and detection behavior, allowing reliable grounded patrol routes and smooth directional updates.
A function from our patrolling script:
The snippet shows walkForce direction adjustments. In simple terms: if walkForce is negative, convert it to positive (and vice versa) depending on X-axis position to make Octo face and walk correctly.
Octo patrolling in-game:
Octo's orientation flips correctly thanks to the UpdateWalkDirection logic.
I handled final prefab adjustments and collider setup. We made sure animations, collisions, and logic worked smoothly together. Collaboration across the dev team meant we frequently supported each other once our own user stories were complete.
Octo Attacking:
The animator's transitions are highlighted when triggered, illustrating how animation events map to gameplay logic.
Our main contribution was getting Octo to patrol, detect, and attack consistently while refining prefab behavior and animation timing. The biggest challenge was understanding the ForceSystem and how it interacted with the state machine, but after debugging and iterating together, Octo’s behavior became stable and feels natural in-game.
JumpState: Octo's unique attack state
This script inherits from the base AttackState.cs.
JumpState.cs coordinates animation events & state transitions.
Along the way, we learned about Object-Oriented Programming, Unity Events, and writing clean, state-driven logic within a large existing codebase.
Octo's State Machine:
The diagram shows Octo's primary states and transitions (Patrol, Detect, Jump/Attack, Fuzzy).