I think designers can control this by adjusting the scores to ensure the right decision is selected in these situations. This is difficult to achieve with other AI techniques, such as BTs or FSMs, because most designers aren’t familiar with designing BTs and FSMs to achieve their goals. Typically, they have to ask developers to update BTs and FSMs for them, which takes up a lot of the developers’ time.
I have a game idea where I want 10.000 NPCs to live in an open world doing daily routines and having “lives”. I know this wont be possible without ECS.
I also want them to do more than basic needs. Maybe delve deeper into complex decision trees regarding certain tasks.
Going to keep a close look at this and see if it might be possible in the future.
I can do 10k+ agents easily with Utility AI and the complexity of the agent behaviors scales well. The scoring function for Utility AI is stupidly fast with Burst and ScheduleParallel(). Parts are basic things like pathfinding, spatial queries, graphics, and other non-AI logic are less CPU friendly. The one issue that might prevent larger agent quantities would be memory consumption since each agent entity is storing arrays for inputs, considerations, and scores. This is done to loop through them in parallel, to allow caching of calculations, and to “stack” them (making scores and considerations that rely on other scores and considerations).