NPCs feel predictable or broken.
They get stuck, ignore the player or repeat the same pattern.
We build NPC behaviour that reads well in play with StateTree, Behavior Trees, EQS and Smart Objects, and add language models only where they help the game.
ST_Enemy_Grunt any state → Combat on sight (AI Perception: sight)
├─ Idle → Patrol after a short wait
├─ Patrol → Investigate on noise (AI Perception: hearing)
├─ Investigate → back to Patrol after 8 s
└─ Combat → Investigate when the target is lost
├─ Take cover EQS: cover points hidden from the target
├─ Suppress fire while the target is behind cover
└─ Flank EQS: positions outside the target's view cone
They get stuck, ignore the player or repeat the same pattern.
Every new enemy type copies and edits the last one.
Latency, cost, content risk and platform rules all need answers.
Readable decision logic for enemies and companions, and Mass with StateTree for crowds, with debug views designers can use.
AI Perception, Environment Query System queries and Smart Objects for believable positioning and interaction.
Navmesh setup, dynamic obstacles, navigation links and large worlds with World Partition.
Characters that answer in natural language, grounded in lore and quest state, with content filters, cost limits and authored fallback lines.
Automated players that explore levels and run scenarios overnight, feeding crash and performance reports.
Scripts and AI-assisted tools for repetitive production work, such as asset checks, localisation exports or bug triage.
We start from what the player should see: the enemy hears a noise, investigates, finds the player and takes cover. Each scenario becomes a small test level before any decision logic is written.
The logic is built with StateTree or Behavior Trees, with EQS for positions and Smart Objects for interactions. Designers get Gameplay Debugger and Visual Logger views that show why an NPC chose what it did, so tuning does not need a programmer.
For LLM features the prototype comes first. We measure latency, cost per session and how often the filters trigger, and you decide with real numbers whether the feature ships.
See the whole team.
Builds the AI systems, the LLM prototypes and the test bots.
Writes the behaviour scenarios with your designers and runs the playtests.
Turns the bots into nightly test runs.
They can, with clear limits: filtered output, fallback lines, cost controls and a plan for platform and age-rating requirements. We prototype first so you can judge the risk.
Your code, assets and data are never used to train third-party or general-purpose models. Any model we train for your game, such as a bot policy, belongs to you.
Both are good tools. StateTree suits many newer projects, and existing Behavior Tree setups often do not need replacing. We recommend one per project and explain why.
Send us the engine version, where the project is and the work you need done. We reply within two business days with who we would put on it, or tell you it is not a fit.