Comment mettre en œuvre l'IA pour le jeu de combat

8

J'ai construit un chasseur 2D http://neighr.com/mif/index.html hier.

Le deuxième «joueur» ne fait presque rien. En fait, rien. Pour être honnête, je n'avais jamais fait de match auparavant avec un adversaire comme celui-ci.

Donc ma question est, comment peut-on commencer avec la programmation de l'IA pour l'adversaire? Existe-t-il des tutoriels, des bonnes pratiques? Je veux que ce soit un défi (pour le joueur, pas pour moi).

Lanbo
la source

Réponses:

12

Les N-grammes sont populaires ici. L'idée de base est de garder une liste des mouvements effectués par le joueur. Vous pouvez alors, étant donné les N derniers coups du joueur, déterminer le pourcentage de probabilité de ce que pourrait être son prochain coup.

Votre jeu devrait avoir une base de données de compteurs et de blocs efficaces à chaque mouvement.

Pour les modes offensifs dans l'IA, vous pouvez toujours modéliser le joueur de base pour déterminer quelles attaques le joueur a eu le plus de difficultés à bloquer ou à contrer, et les réutiliser.

Pour la difficulté de l'IA, abaissez simplement l'IA à des niveaux plus faciles. Le pire mode AI peut inverser les choix (c'est-à-dire que s'il sait que le joueur bloque généralement les coups, il a une chaîne plus élevée que inférieure pour lancer un coup de poing). Le mode de difficulté le plus élevé utiliserait l'algorithme non handicapé, et va probablement battre la merde du joueur.

Si vous cherchez à rendre le jeu plus amusant, je recommande également d'ajouter de la personnalité à l'IA. Certains personnages peuvent se moquer davantage, certains peuvent être plus défensifs qu'offensifs, etc. les joueurs aiment pouvoir attribuer une intelligence humaine aux personnages de l'IA.

Sean Middleditch
la source
3

Honnêtement, autant que certaines des meilleures réponses recommandent une IA plus complexe, s'il s'agit d'une première tentative de jeu et que vous n'êtes pas encore habile avec le code, vous pouvez essayer une IA plus stupide

Par exemple, un système simple de

attendre (0-3 secondes)

Rouleau d6

choisissez parmi 6 actions.

Ou quelque chose de similaire selon le nombre d'actions que vous avez

ProtoJazz
la source
2

C'est ainsi que j'allais faire de l'IA pour un jeu de combat.

Faites des listes de coups (selon le personnage) qui conviennent à différentes distances du joueur et demandez-lui de choisir un coup. Si la difficulté est difficile. Demandez-lui de choisir un coup dur. Sinon, choisissez le coup qui fait moins pour le moyen et moins pour le plus facile. Vous pouvez également ajouter un facteur aléatoire qui choisit des plages différentes de celle à laquelle le joueur se trouve en fonction de la difficulté. Le nombre de décisions devrait être basé sur la difficulté où il évalue 3 secondes après chaque mouvement (facile) 2 secondes (moyen) ect. Déterminant à chaque fois sa ligne de conduite.

résumant, choisissez une distance (ensemble de mouvements), choisissez un mouvement et ensuite combien de temps ils attendent avant de faire la même chose. En attendant la prochaine action, ils peuvent mitrailler et esquiver par hasard. J'espère que cela t'aides.

Kaliber64
la source
+1 Il s'agit d'une solution extrêmement simple, mais absolument viable et efficace. Par hasard, sauriez-vous si un système comme celui-ci a été utilisé dans des jeux commerciaux? :)
Miguel
Non je ne sais pas. Je parle de très peu d'expérience. Donc, si c'est bon, et j'y ai pensé. Alors je ne suis sûrement pas le premier (si c'est bon). N mouvements serait plus intelligent. Mais plus dur.
Kaliber64