que peut-on faire pour améliorer l'intelligence artificielle ultime du jeu de stratégie en temps réel?


12

J'ai eu une discussion avec un de mes amis pour savoir si une IA peut être créée ou non qui pourrait battre n'importe quel humain sans tricherie de ressources dans un jeu de stratégie en temps réel. Une IA qui jouerait presque parfaitement. L'IA des jeux d'aujourd'hui a de nombreux domaines qui peuvent être améliorés, la plupart d'entre eux reposent sur la triche des ressources, un meilleur développement de base précoce à cause de cela, et l'attaque par vagues.

Pourtant, la question est de savoir ce qu'il faudrait faire pour améliorer cela afin d'obtenir l'IA ultime. De plus, si vous avez un exemple de jeu où une certaine fonctionnalité a été utilisée, ce serait génial.

Edit: Il y a peu de précisions que je peux apporter à ceux qui n'ont pas lu le titre ou les quelques paragraphes décrivant le problème. Il s'agit de jeux de stratégie en temps réel et de l'IA ultime. Cela signifie Strarcraft, Warcraft, Generals, Red Alert, Age of Empires, AI War etc. Jeux qui ont plus d'un niveau de difficulté, mais l'accent est mis ici sur le défi ultime.

tenpn a un poste fantastique rempli de grandes ressources. Merci, tenpn! Je souhaite que plus de gens contribuent dans cette direction.


6
Vraiment, cette question n'a pas de sens sans un cas spécifique. Tous les jeux ont des façons différentes de mettre en œuvre l'IA, selon les mécanismes de jeu impliqués, et `` comment les améliorer '' varieront considérablement. À tout le moins, cela devrait être un wiki communautaire, car il n'y a pas de «bonne» réponse ici.
MrCranky

2
Suite à la première: considérez que les échecs sont un jeu de stratégie.
Rushyo

1
Pourquoi voudriez-vous? Faire une IA parfaite pour le jeu de Pong est absolument trivial et absolument pas amusant à jouer. Le but de l'IA de jeu n'est pas de battre le joueur, car c'est le joueur (pas l'ordinateur) qui est censé s'amuser.
Ian Schreiber

1
Ian: L'OP parle de quelque chose de très différent de Pong. Il est facile de créer une IA Pong imbattable ou une IA Tic-Tac-Toe. Les échecs peuvent être portés à une IA que seuls les très, très, meilleurs peuvent vaincre. Mais RTS est un jeu de balle différent.
The Communist Duck

2
Vous pourriez être intéressé par l' algorithme STRIPS .
user712092

Réponses:


12

C'est une sorte de question difficile à répondre. Pour indiquer ce qui doit être amélioré, vous devez disposer d'une IA connue pour travailler. Cependant, voici quelques exemples de RTS AI de aigamedev.com (inscription requise):

Malheureusement, la plupart des trucs vraiment bons sont derrière le paywall.

Une solution d'IA courante est le planificateur d'action axé sur les objectifs, qui utilise des règles pour former des plans afin de satsify les objectifs. Cela fait un moment maintenant, mais c'est très cool. Il y a un bref aperçu (pdf) disponible sur le site de Jeff Orkin sur la façon dont il est appliqué à un FPS, mais exactement le même principe (avec des règles et des objectifs différents) fonctionne pour les RTS.

De nombreux RTS utiliseront des hiérarchies de GOAP, avec différents niveaux recevant des objectifs du niveau supérieur, et concernés par différents niveaux de détail du champ de bataille. J'ai lu un excellent article sur l'IA d'un jeu de guerre hexagonal de la Seconde Guerre mondiale qui était structurée comme ça, mais pour tout ce qui est google, je ne trouve pas le lien maintenant. Étoile d'or pour tous ceux qui peuvent m'aider.

Bien sûr, l'efficacité des GOAP et des autres planificateurs dépend de la façon dont vous analysez votre monde de jeu et du raffinement de vos actions et de vos objectifs.

Les autres technologies courantes incluent les architectures utilitaires (pdf) pour le score et les priorités, et les tableaux noirs pour analyser le monde du jeu.


6

Le fait est que si vous avez une IA

qui pourrait battre n'importe quel humain sans tricherie de ressources dans un jeu de stratégie en temps réel

alors vous avez un jeu auquel personne ne jouera car il n'a pas pu passer le premier niveau.

La partie la plus difficile de la programmation de l'IA est de rendre l'IA battable, mais battable par quelqu'un avec un peu de compétence. Rendez-le trop facile à battre et les joueurs seront rebutés par un manque de défi, faites-le trop dur et encore une fois, les gens en auront marre d'être battus tout le temps.

Il ne s'agit donc pas de créer une IA complexe (ce qui n'est pas difficile, après tout, l'IA peut traiter tout dans sa zone de jeu simultanément alors qu'un joueur ne peut traiter que ce qui est à l'écran), mais plutôt de créer un jeu équilibré.


1
Pour clarifier, faire une IA qui peut battre n'importe quel humain n'est pas si difficile car l'IA peut contrôler ses unités avec une meilleure granularité que tout humain pourrait espérer (en raison des contraintes de l'interface utilisateur). Un humain prend quelques secondes pour réagir aux événements, sélectionner et commander des unités, tandis que l'IA peut mettre à jour les ordres de chaque unité individuellement à chaque `` tour de jeu '' en réponse à n'importe quel événement. Mais en pratique, cela ne se fait pas car cela rendrait le jeu fastidieux. La partie vraiment difficile est de rendre l'IA assez stupide pour battre.
Skizz

3
Pour clarifier la clarification - rendre l'IA imbattable n'est pas si difficile; rendre l'IA battable, stimulante et engageante est de loin, beaucoup plus difficile.
Skizz

3

Beaucoup pouvait être fait, mais ma réaction immédiate à cette question était une contre-question: pourquoi quelqu'un voudrait-il l'ultime RTS AI? Et pourquoi cette personne ne joue-t-elle pas simplement en ligne, contre un autre adversaire humain?

L'essentiel est: ce n'est pas le problème de rendre l'IA imbattable, c'est le problème de la faire réfléchir assez vite (par exemple, il faut prendre des raccourcis) pour pouvoir jouer contre 3 ou même 7 adversaires AI sur la même carte avec un ordinateur ordinaire. Même aujourd'hui et demain, et je pense que cela n'aura pas changé dans dix ans.

Le problème suivant est: tant que l'IA suit des règles strictes, elle sera exploitable. Même des règles floues le rendront vulnérable aux exploits. L'IA devrait apprendre, et elle devrait faire des erreurs - intentionnelles et non intentionnelles. Cela devrait également vous surprendre. Et puis vous jouez contre un autre être humain. Étant donné que l'IA n'est même pas proche de copier la façon de penser d'un humain à la fois algorithmique et en termes de puissance de traitement, vous feriez bien mieux de ne pas perdre votre temps avec une IA à un seul joueur qui n'est pas aussi amusante à jouer qu'une autre être humain, ne serait-ce que pour les facteurs sociaux impliqués.


1

Ce que vous définissez comme «tricherie des ressources» est comme «augmenter l'équilibre» dans les jeux de course. Le `` boost '' est utilisé pour essayer de garder le pack à relativement proximité les uns des autres pour créer l'illusion d'une course serrée. Si le joueur n'est pas en tête, il peut garder le joueur CPU en vue, et si le joueur est en tête, il maintient la pression en mettant les adversaires directement sur votre queue, même si le CPU lui-même est un pilote médiocre.

Dans un RTS, vous regardez une collection de valeurs qui peuvent être organisées de manière optimale. Vous savez exactement combien de temps il faut pour obtenir une ressource, combien coûte un élément de construction, le temps de parcours de la carte, etc.

Si vous êtes celui qui a créé les tableaux et qui dispose facilement des informations, il suffit de chiffrer les données pour trouver les meilleurs ratios de sortie.

Mais combien est-ce amusant de jouer contre un ennemi qui fait toujours exactement la même chose en fonction du contexte du terrain de jeu?

Vous ajoutez donc du chaos. Vous donnez à l'IA une efficacité sur une échelle mobile. Vous l'avez harceler le joueur. Si le joueur semble se débrouiller trop bien, vous avez un peu triché et vous lui donnez des ressources ou des renforts supplémentaires pour garder le joueur sur ses gardes.

Vous voulez que le joueur éprouve la satisfaction d'affronter un adversaire difficile, plutôt que de donner la fessée à une IA faible ou d'être abattu par Hal9000. La perfection d'un adversaire CPU réside dans son imperfection. :)


2
Et différent, mais lié: c'est bien si l'IA fait parfois des choses qui ne sont pas techniquement leur meilleure option, mais ajoutent un peu de plaisir au jeu, comme l'utilisation d'unités ou de mouvements inhabituels (par exemple, larguer des troupes à l'arrière de la base du joueur) )
Bart van Heukelom

0

Une grande chose est que vous devez suivre le développement stratégique du jeu. Aucun développement ne permettra à une IA de gagner un match Starcraft 1 (en fair-play) si elle pense qu'une armée de base de marines est le moyen de jouer un jeu Terran vs Terran.

Non seulement cela empêchera l'IA d'être constamment battue en raison de son choix de stratégie obsolète, mais avoir un plus grand répertoire d'approches du jeu rendra l'IA plus engageante, si l'IA fait des choix viables en cours de route.

Un arbre de stratégie riche permet même un curseur de difficulté; Par exemple, l'IA Zerg démente aura tendance à adopter des approches flexibles qui peuvent s'adapter à l'ennemi et se développer rapidement si l'occasion lui est donnée, mais au niveau de difficulté normal, il est susceptible de choisir des constructions plus rigides et d'être moins sujet aux expansions massives.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.