KOZUNENKO@PORTFOLIO

Flying enemy AI (Unreal Engine 5)

Gameplay/AI programmer

2025

  • Unreal Engine 5
  • C++
  • StateTree
  • Behavior Tree
  • GAS
  • Niagara
NOTES

A Lyra-based Unreal Engine 5 project, a bullet hell with Returnal as the reference, unreleased. Developer: Nvizzio Creations. I worked as gameplay and AI programmer. The work breaks into five parts.

Octree flight

  • Enemies had been on the standard navmesh. I moved them onto an octree so they fly through volume instead of over a surface.
  • The navigation is multithreaded C++ — a reusable native FlyTo task, not a wrapper around MoveTo.
  • One task, three callers: StateTree, Behavior Trees and Animation Blueprints all drive it.
  • Roughly 100 flying enemies at 60 FPS in the target scenario.

The movement-pattern framework — the core, and entirely mine

  • Patterns are fully data-driven assets. Blueprint override points sit on C++ entry points.
  • C++ carries the weight: the framework, the flights, the searches, the collections, the traversal and the heavy methods.
  • It is network-replicated.
  • Targets are polymorphic — a player, a direction, a point relative to the enemy, or a point that exists only because PCG made it.
  • Example: an enemy flies a diamond, stops at a corner, attacks halfway through the stop, then attacks again at 50% of the next leg. Both triggers are data; the framework fires a GAS ability by reference.

The other three parts

  • Niagara pattern replication, prediction and health attributes. I did not own the bullet-hell attack patterns or the Niagara system behind them — a colleague wrote those. I worked on that system directly for replication, prediction and applying the effect to health.
  • Do Movement Pattern, one custom C++ node of mine, brought old Behavior-Tree-and-navmesh enemies onto the framework and the octree.
  • Gates and wave spawning are mine. Gates open, enemies spawn in waves inside the procedural space, with a difficulty budget per level and a cost per enemy.
Flying enemy AI (Unreal Engine 5)

Credit: Nvizzio Creations

Flying enemies inside colored octree volumes on a greybox arena.
Flying enemies moving through a procedural city.
An enemy flying a diamond of waypoints and attacking along the path.
The same movement pattern over a procedural town.
A gate opens and enemies spawn in a wave on a street.