4,307 Commits over 1,919 Days - 0.09cph!
State containers implementation.
AI Serialization.
Protobuf changes.
Build fixes.
State changing can use state containers, initial state, etc.
generic type RPCCalls code gen change
ui/serialization/proto wip
Added AIMemoryBank<T>.
Added AIMemory,
Pass memory to event execution.
Updated test events to use memory.
Execeution rate tweaks.
Event fix.
Added event owners.
More test events.
Added PostExecute.
Clear accumulated delta times correctly.
Separated tick and execution.
Added execution rate limiting.
Events accumulate delta time between executions.
AIEventData basics. Events trigger. Test data.
wip AI state events & listener.
wip brain/state separation
Added CanEnter and CanLeave to states.
Only include states that can be entered when scoring weights.
Added AIStateScore with some pre-defined weight bands and increments.
BaseAIBrain.Debug.
Applied naviator shelved changesets
Applied GetBestRoamPosition changes
Reapply a ch47 fix from main in
54149
▌▄▌▌▉ ▍▅▌ ▉▋▇▉▉ ▊▍ ▊█▅▅ ▄▇▆▉█ ▇▌▌
Tooltips now append "Blueprint" to item name if it is a blueprint.
State history rendering and convars
Added setdestination_navmesh_failsafe convar, npcs will attempt to place themselves on a navmesh when setdestination is called and they're not currently bound to navmesh.
Added a warning when warping to a valid navmesh location but still not binding to it (mismatching agent type) to make it more obvious what's going wrong.
Moved GetBestRoamPosition from HumanNPC to AIInformationZone, optimised the loop checks.
Added "Tools/Scene/Focus Local Player" to select the LocalPlayer object and focus the scene view on it, useful for when testing in large/slow scenes.
StateDebugInfo now tracks state change type (enter/exit) and the world position at which the AI state changed.
Added StateDebugInfo, keep a history of the last 20 states and durations for a brain. (editor only)
Pulled HumanBrain / CH47Brain states out into partials instead of the main brain files, to make it clearer what's common and not.
Removed some calculations on variables that never get used, distance checks, inverseloops etc.
Some basic state cleanup.
Added AIThinkMode to base brain, all brains can set their think mode: interval or fixed update, as well as individual tick rates.
Moved a bunch of ShouldThink/DoThink logic to base brain so it can be used by all brains instead of each having its own delta implementation, age tracking etc.
Added "time in current state" to debug display.