We used reinforcement learning. (One of the paradigms supported by Unity ML Agents toolkit.)
We could specify a separate brain for each character within the game.
Refer to "The Training Configurations", where we show an alternative yaml file which defines two separate brains; one for the "Paladin" and another for the "Vampire".
Using the training model in this learning path, how long can it take to train the model to a competent level for our game?
Depending on the host machine, at time of writing it can take 6+ hours for the training model to reach 3,000,000 learning iterations.