S'amuser avec l'IA quand c'est assez, c'est assez

Faire une bonne intelligence artificielle pour les adversaires de l'ordinateur est difficile. Programmer un jeu comme un jeu de dames n'est pas terriblement difficile; L'ajout d'une IA convaincante pourrait toutefois prendre plus de temps que de créer le jeu lui-même. Mais que faisons-nous quand nous faisons cette IA? Est-il important pour lui d'examiner chaque mouvement possible sur le tableau, ou pouvons-nous tricher et simplement le déplacer au hasard? Qu'est-ce que l'IA doit faire et (surtout) comment pouvons-nous nous assurer que le jeu est amusant?

Bonne AI vs Fun AI

Le terme "IA" est un concept très large, et le type d'IA dépend du jeu.. Asymétrique des jeux, tels que Space Invaders, Mario ou Tower Defence, permettent au joueur de se frayer un chemin à travers des bandes d'ennemis sans effort. Puisque les "équipes" (joueur par rapport à tout le reste) sont déséquilibrées, ces jeux ont tendance à utiliser une intelligence artificielle muette.. Symétrique les jeux tels que Starcraft, Street Fighter ou Civilization prévoient que le joueur bat ses adversaires sur un pied d’égalité, et a donc besoin d’une IA plus complexe.

Space Invaders à gauche, Starcraft à droite. Le joueur combat une horde étrangère dans les deux cas; dans Starcraft, cependant, ils ont tendance à se défendre.

Cependant, les jeux doivent avant tout être amusants. Les joueurs apprécient un défi, ne perdant pas à plusieurs reprises. En fait, certains jeux tels que Checkers ont été "résolus", ce qui signifie qu'il est possible de construire une IA qui joue un jeu imbattable.

Lorsque mon équipe et moi travaillions sur notre jeu d'ordinateur / plateau Infecté, nous devions rendre l'IA du premier niveau intentionnellement affreuse pour ne pas effrayer les joueurs. L'intelligence artificielle du jeu était au départ plutôt simpliste, et l'ordinateur se comportait de manière hyper agressive, se concentrant entièrement sur les jeux les plus marquants sans aucune pensée pour la défense ou la présence au conseil. 

Même si l'IA était faible, nous avons constaté que les nouveaux joueurs risquaient de se faire écraser et de perdre tout intérêt. Nous avons révisé l'IA plusieurs fois, même si cela constituait encore un défi pour les joueurs. Finalement, nous avons simplement retiré l'IA, le jeu ne ferait donc qu'un mouvement aléatoire à chaque fois. Bien que certains joueurs encore réussi à perdre, cette rétention de joueur considérablement améliorée, nous permettant de réintroduire l'IA "sérieuse" à des niveaux plus élevés.

Infecté, un jeu plutôt basé sur un jeu Amiga du même nom.

Le problème de la "trop ​​bonne" intelligence artificielle peut être vu dans une variété de jeux: jeux FPS avec des robots qui ont une vision à 360 degrés, ou bat-les contre des robots avec des réflexes parfaits. Jouer contre ces IA n'apprend pas vraiment au joueur à bien jouer: il leur apprend à "jouer" avec les bots, pour essayer de trouver une faille dans l'algorithme qui permette de tuer facilement.

Cela ne veut pas dire que toute l'IA devrait être pauvre, mais plutôt qu'une bonne IA a de multiples facettes. Il commet des erreurs, mais tente d'éviter de tomber dans les mêmes modèles prévisibles. Donner à l'IA la capacité de s'adapter, et donc de varier les jeux, offrira probablement beaucoup plus de divertissement au joueur qu'une intelligence artificielle jouant le même jeu parfait à chaque fois..

"Tu n'es qu'un paquet de cartes!" crie Alice. Une IA irréaliste pourrait nous faire appeler quelque chose de similaire: "Vous n'êtes qu'un tas de code!".

Les rendant humains

Après avoir créé Infected, nous avons brièvement joué avec une suite, Infected 2. C’était le même principe, mais à plus grande échelle, semblable au jeu de plateau classique Risk. Étant donné que le jeu était plus grand, il était important d'améliorer considérablement l'IA: ce qui pourrait divertir le joueur tout au long d'un match beaucoup plus long et permettre à plusieurs IA de s'affronter.. 

Nous avons branché l'ancienne IA et plusieurs problèmes se sont posés. L'IA était prévisible, mais cela pourrait être amélioré avec un peu de travail. Le problème le plus important concernait l’attitude générale de l’IA et son rôle. 

Il y avait trois problèmes principaux:

  • Tout d'abord, jouer contre les IA n'était pas particulièrement amusant.
  • Deuxièmement, battre l'IA n'était pas particulièrement gratifiant.
  • Troisièmement, l'IA "tricherait" en lançant délibérément le jeu.

Le jeu était amusant contre d'autres joueurs, mais pas contre l'IA. Pourquoi le défi était-il identique? Pourquoi y avait-il une telle disparité entre le joueur contre l'IA et le fait de jouer contre une autre personne, si le gameplay était identique??

Nous nous sommes ensuite souvenus que les humains n’avaient qu’une chose en informatique: les émotions..

Une partie du jeu devient émotive; nous aimons une victoire palpitante, nous détestons une défaite écrasante. Nous adorons frotter nos victoires sur le visage de nos amis et nous devenons mesquins et vengeurs quand ils nous trahissent. Les jeux sont intrinsèquement liés à nos émotions et c'est quelque chose qu'une intelligence artificielle ne peut jamais ressentir… mais c'est quelque chose que les développeurs peuvent imiter..

L'étincelle vitale

Pourquoi n'a-t-on pas joué à l'IA? 

Parce que l'intelligence artificielle était si évidente artificiel. Tous les robots ont joué de la même manière; ils avaient tous les mêmes approches du jeu; ils étaient tous également prévisibles dans leurs habitudes de déplacement.

Même dans Pac-Man, les quatre fantômes (Inky, Blinky, Pinky et Clyde) ont leur propre personnalité et leurs propres modèles de mouvement..

Nous avions besoin de quelque chose pour les différencier. Nous avons donc introduit des personnalités: téméraire, défensif, explorateur. L'IA donnerait un poids artificiel à certaines stratégies, puis évoluerait dans ces schémas d'attaque.

Même sous une forme de base, il s’agissait d’une amélioration considérable: chaque jeu n’était plus identique, mais il devenait imprévisible pour les mouvements de l’ennemi et rendait plus difficile la formulation d’une stratégie unique consistant à «gagner le jeu». Si les IA étaient randomisés au début du jeu, le joueur ne serait pas en mesure de prédire le déroulement du jeu..

Personnalités sur l'IA n'est pas une nouvelle idée. La civilisation donne des personnalités à ses dirigeants (Gandhi adore les personnes nucléaires), les IA de Age of Mythology déterminent dans quelle mesure elles sont susceptibles d’utiliser des stratégies telles que la tortue ou la précipitation, et les robots de Tournoi Unreal ont des armes préférées.

Gandhi dans Civilization 5: évitez d'invoquer sa colère.

Pourquoi ne pas battre l'IA récompensant?

Le problème principal était que l'IA a joué ce qu'elle considérait comme un "meilleur coup" à chaque tour. Il a simplement évalué le plateau de jeu, sans égard pour la diplomatie. S'il avait besoin de vous attaquer, il le ferait. Si vous l'attaquiez en retour, cela ne le concernait tout simplement pas. Il considérait le jeu comme un casse-tête mathématique à résoudre, plutôt que comme un match contre des joueurs humains complexes. Jouer contre notre intelligence artificielle a abouti à un jeu artificiel.

Notre solution provenait d'un jeu Amiga de 1989 appelé Nuclear War. Pendant la guerre nucléaire, vous avez combattu divers dirigeants du monde et essayé de détruire leur pays. Celui qui a réussi à survivre gagnerait. Bien que simpliste, il était étonnamment amusant de regarder vos ennemis se faire prendre dans des vendettas personnelles et se lancer des ogives.

Ce système "amis et ennemis" utilisait une métrique très simple: le bonheur. Chaque leader mondial avait une variété d’expressions faciales qui permettaient de juger facilement son attitude à l’égard de vous. Sans surprise, le fait de frapper les gens a tendance à les rendre malheureux très rapidement. De plus, vos ennemis ne se fâcheraient pas contre vous, mais entre eux. Cela signifiait qu'un seul missile égaré pourrait dégénérer en une lutte soutenue à mort.

Une fois encore, ce système a été utilisé dans de nombreux jeux, y compris Civilization. Une nation ennemie avec un niveau élevé de «bonheur» s'alliera probablement plus facilement avec vous et vous enverra des cadeaux, alors qu'un ennemi qui vous hait peut investir beaucoup de ressources pour écraser vos villes..

En ajoutant un indicateur de bonheur rudimentaire à notre jeu, nous avons laissé naître des amitiés et des rivalités. Un jeu est plus excitant lorsque vous développez une némèse ou lorsque des équipes et des alliances se forment. Soudain, le jeu est devenu personnel et les actions ont semblé peser lourd. Nous avons également constaté qu’un indicateur de bonheur visible était important, sinon le joueur ne comprendrait pas ce qui se passait. Une simple icône de visage heureux donne immédiatement l’idée que les ennemis peuvent être "contrariés", et le fait de regarder le visage changer à chaque action précise clairement les conséquences de ces actes..

Le dilemme du prisonnier est un concept bien connu de la théorie des jeux et de nombreux programmeurs ont passé du temps à essayer de créer le bot ultime pour concurrencer le dilemme du prisonnier réitéré. Curieusement, la stratégie gagnante pendant de nombreuses années était aussi la plus simple: connue sous le nom de tit-à-tat, elle copiait simplement le geste de l'adversaire.

Comment l'IA tricherait-il?

Le problème dans Infected 2 était souvent que l’intelligence artificielle ne cherchait que la perspective à court terme. L’intelligence artificielle a pour but de maximiser son score à chaque tour: si cela impliquait un mauvais coup, elle le ferait quand même..

La meilleure façon de l’imaginer est ce scénario:

  • Alice, Bob et Carol jouent à la guerre.
  • Alice a 100 soldats. Bob a 75 soldats. Carol a 150.
  • Ni Alice ni Bob ne peuvent battre Carol.
  • Cependant, Alice et Bob combinés peuvent battre Carol.

Le problème était que l'IA ferait tout ce qui lui donnerait le plus de points. Dans le scénario ci-dessus, cela signifiait qu'Alice attaquerait Bob: à court terme, un excellent coup, mais à long terme, désastreux. Non seulement Alice fait un geste qui se condamne elle-même, elle condamne également Bob à une certaine défaite. Bob est naturellement contrarié.

Ce type de situation est difficile à éviter, car voir la situation dans son ensemble nécessite un raisonnement complexe allant au-delà de la plupart des IA simples. Nous avons essayé d'assurer "l'équité" en rendant les joueurs moins susceptibles d'être attaqués s'ils perdaient ou s'ils avaient été attaqués récemment. Bien que tous les jeux ne puissent pas appliquer une solution simple, il est important de comprendre que les joueurs détestent être attaqués sans raison apparente..

Si Infected 2 n’a jamais dépassé le stade alpha, il nous a appris de précieuses leçons. Plus important encore, il ne suffit pas de jouer contre des robots ennemis: vous voulez être impliqué dans le jeu, développer des rivalités et écraser tous ceux qui se dressent contre vous..

AI Done Right

Il y a de nombreuses années, un jeu a été publié qui semblait faire des bonds en avant de la concurrence. Bien qu’il s’agisse d’un jeu multijoueur par conception, les bots étaient assez bons pour pouvoir être joués en solo. Et, même si, selon les normes actuelles, il est médiocre, ce jeu Unreal Tournament avait une intelligence artificielle qui a fait exploser d’autres jeux..

Nous pouvons regarder une capture d'écran dans le jeu pour voir ce qui a servi à créer un bot:

Bot 19, alias Tamerlan.

La compétence était le facteur principal dans la détermination du comportement des robots: les robots novices étaient lents, devaient rester immobiles pour tirer et tardaient à se retourner, tandis que les robots de niveau supérieur étaient plus rapides, pouvaient esquiver, avaient un plus grand champ de vision et pouvaient utiliser des fonctions avancées. techniques de combo d'armes.

Les bots pourraient ensuite être modifiés avec des niveaux de précision, de vigilance, de camping et de mitraillage. La «personnalité» serait déterminée par le style de combat et l'arme favorite, déterminant si le bot souhaitait se rapprocher de soi ou essayer de sniper à distance. Les bots pourraient également narguer le joueur et se venger. Chacun des 32 robots peut être personnalisé, ce qui signifie que vous pouvez avoir 32 personnalités distinctes. Certains robots, tels que Loque, sont devenus notoires parmi les joueurs.

Tous ces facteurs ont contribué à créer des robots qui se sentaient plus Humain. Même si le jeu serait toujours bon sans cette sophistication, il ajoute une couche de plaisir supplémentaire, presque imperceptible..

Conclusion

À la fin de la journée, vous devez demander: que voulez-vous de votre IA? Les ennemis vont-ils aveuglément précipiter le joueur et entrer tête nue dans les fosses, ou essayez-vous de développer quelque chose de plus, quelque chose qui offre un niveau d'interaction plus personnel avec le joueur? Quoi que vous décidiez, rappelez-vous trois points clés:

  • Si les robots font des erreurs, ils se sentent plus humains et moins comme un "jeu de cartes".
  • S'ils jouent délibérément en fonction de leur personnalité (ou de leurs émotions, comme de la vengeance), un jeu imprévisible et passionnant est plus susceptible de se produire..
  • Si les robots essaient de jouer intelligemment, plutôt que de façon à court terme, ils ont plus de chances de rendre le jeu juste à nos yeux..

Références

  • Prévisualisation de l'image: Ghost d'Andres Flores du projet Noun
  • Image d'aperçu: Pacman d'Andres Flores du projet Noun
  • Illustration d'Alice au pays des merveilles: par John Tenniel, dans le domaine public