[Design Discussion] Utility VI Task Selection Design

So, currently I’m designing my VI (I feel like we need to start specifying the difference, as marketing seems to be latching on “AI” for publicity) for my game.

The structure I’m using is that groups of VI have a manager who spawns and maintains them. These managers are spawned in situation context (battle, tavern, marketplace, etc). They each have a task evaluator using that situation context and the VIs’ race.

These task evaluators will, in respect of the situation context, evaluate the VI’s context and select an appropriate task to perform.

I feel utility is the best way to design this selection, but I’d love to hear some other opinions and ideas.

The two paths I’m considering is using a strict scoring system with criteria, then selecting the highest scored task. But another idea I had was to use a score of +1 for each criteria, but rather than using a high score, it would be out of 100%. So each task would have a set limit of criteria, and if every criteria is met then that task would be at 100%.

With this, what happens if two tasks both return 100%? I was thinking you could create a priority the same way UAITasks does, and the higher priority task would be chosen.

Pros/Cons of the former:

  • Simple
  • Decisive
  • Versatile
  • Less predictable
  • Not as easy to follow (unexpected/unwanted behaviors possibly)

Pros/Cons of the latter:

  • More designed
  • More restrictive

Anyone have any thoughts? Perhaps experiences or new ideas?