I want to make challenging, adaptive, unique, intelligent computer players and bots in my game. I also need them to know what they are doing. I want the CPU players to be well aware of how to win a game and avoid obstacles. lastly, I would like to see CPU VS CPU. Can Unity make this possible?
The answer to that question, put simply, is yes…
… but it’s not related to Unity at all, strictly speaking.
AI development is purely tied to the knowledge, dedication, and time investment of the programmer (as well as many other people, especially in the context of “dedication” and “time investment”).
At any rate, there’s not really any simple answer to be given, and the only (typical) way to make a competent CPU player for a game is to make it specifically tailored for that game. There’s not really a catch-all, because there are infinitely-many potential factors working against them.
For example, If it’s a first-person shooter:
-Are projectiles instant trajectory?
-If not, do the projectiles fall over distance as they fly?
-Can the characters jump?
-How high can they jump?
-Are the levels designed with jumping-driven shortcuts in mind?
-In a multiplayer game, can players cooperate to reach places they can’t alone?
With just those few examples in mind, the potential strategies for CPU characters to employ can be rather extreme when there’s any degree of skill/dexterity required to play the game well.