/Legion

Primary LanguageC++

Unreal Engine BT's changing based on states. Proof of concept

When to use:

  • When you want to create a lot of small generic BTs and combine them for AI characters
  • When you want to create AI characters with interaction based logic. Interactions could be used as states
  • When you want to have same behavior for some states for all AI characters (for example, Disabled/Stunned state)
  • When you want to try something new :)

Main concept:

  • AI character has specific controller
  • Controller has map with different behaviors based on states
  • Every state has own BT

States Behaviors

Test implementation:

  • Spawn legioner with "Space". State changes to Spawning. BT starts
  • After BT is end, it's waiting
  • Press "1" to change state to Attacking. Old BT is stopped and new one is running
  • BT is working until we press "2" to change state to Blocking. Old BT is stopped and new one is running

Demo

How to improve:

  • Buffer for queue of states to change
  • Change states conditions implementation