Forums Développement Multimédia

Aller au contenu

Conseil IA & Equilibre jeu

CODE

5 réponses à ce sujet

#1 Billyben

    KlouChiPonshoñistäs

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 2597 messages

Posté 23 March 2011 - 04:57 AM

Bonjour à tous.

J'ose en cette soirée/nuit solliciter votre haute bienveillance ainsi que vos conseils avisés. Je me lance dans la création de mon premier jeu ""un peu évolué"" (dans le but premier de me plonger ds les design pattern, enfin bref)

J'ai quelques soucis pour implementer l' """IA""" de celui-ci, j'avoue que je ne sais pas trop par quel bout prendre la chandelle, ainsi que pour équilibrer l'avancement du joueur dans le tableau...

Tout d'abord, pour planter le décors, voici le jeu à cette adresse (ce n'est qu'une deep preview...)

et une image :



(et pour la petite histoire, j'ai beaucoup aimé oil night chez fast games, mais l'ambition faisant...........)

Donc, comme le "how to play" n'est pas finalisé, je détail un brin : (en spoiler, histoire de raccourcir fictivement le propos)
Spoiler

1/ IA
Donc pour le moment, il n'y a d'implémenté que des sortes de pattern d'attaque de l'IA, c'est a dire des schémas de lancement de véhicules avec puissance/vie et vitesse pour les véhicules, ce qui est plutôt pauvre (donc là il ne fait qu'attaquer sans cesse...).
J'aimerais implementer un model de défense. J'ai pensé implémenter un système de pattern "state", alternant entre attaque, pause et défense. Le problème c'est la défense (qui n'existe pas ds la démo présentée). L'IA a accès à tous ce qui est lancé par le joueur,mais je n'arrive pas à équilibrer la réponse. Un delay sur celle-ci histoire de comptabiliser la puissance de l'attaque du joueur, sur un laps de temps, n'est pas vraiment adaptée, soit trop forte soit sous estimée....

A savoir que l'IA a accès à tous les éléments du jeu, avez vous des conseils et autre petites choses qui peuvent aider... (ma première IA, donc..... pas du tout au courant du tout! Donc n'hésitez pas, même sur des.choses bateaux)

2/ Equilibre
J'ai beaucoup de mal à équilibrer les pouvoir du joueur... entre ses capacités de productions, les puissance des véhicules qu'il peux lancer, les capacités de prod/bâtiment, leurs upgrades et autre petites choses, l'avancée dans le niveau (le seul pour l'instant) est plutôt érratique, notamment entre le cout des upgrades pour les batiments/véhicules et le cout de lancement de ces derniers.
Sachant que je peux a peu près tout réguler sur les paramètres du jeu (facilement j'entends), des véhicules (vie, puissance, delay, cout, cout d'upgrade, etc...), des bâtiments (notamment niveau de prod/temps de prod, cout d'upgrade), là encore avez vous des conseils/suggestions....? (j'imagine que c'est un tâtonnement, mais comme je suis complétement dans le code, je connais trop les ressorts du jeu....)

Voila, à savoir que les graphismes sont de moi, et au vue de mes capacités dans ce domaine....(pourtant j'y ai mis du mien..!) et la gestion des sons est en cour.... (et pas de sauvegarde pour le moment, mais c'est prévu!)(et j'ai un tout petit problème de mémoire quand on charge un nouveau monde (en fait le même ici vu qu'il n'y en a qu'un....), je sais à peu près d'où ça viens, mais je ne parvient pas à régler le pb..........)

Voilà, merci de vos futurs conseils/retours/suggestions/liens qui pourrait m'aider!

Miniature(s) jointe(s)

  • Image attachée: game.jpg


#2 Billyben

    KlouChiPonshoñistäs

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 2597 messages

Posté 26 March 2011 - 12:51 PM

Re bonjour à tous!

Bon alors, mes lectures m'ont conforté dans le choix du pattern "state" pour mon IA, d'après ce que j'ai lu c'est un truc comme Final State Machine (FSM pour les intimes). Pour le support au décisionnel de l'IA, se serait un truc comme un Graph, enfin un truc qui va suivre les actions du joueur sur le temps dans mon cas.

Alors, mes states sont prêts, tout beaux tout chauds, mon "graph" me permet de suivre les manip du joueur (à savoir puissance des véhicules lancées, augmentation/tps de ceux-ci, avec la pente sur une durée déterminée, la puissance des véhicules auxquels le joueur à accès (avec augmentation et pente/tps donnée), modification de la vie du joueur (tjrs avec augmentation et pente /tps) et celle de l'IA), mais je galère comme un fou sur l'algo capable de traiter ces informations et de prendre une décision sur la marche à suivre...

Auriez vous une piste "conceptuelle" à me montrer? parce que pour le moment, j'ai des If else partout qui s'imbrique, et ce n'est pas top éfficace, et surtout complètement indigeste.

#3 Pripoko

    Ceinture Verte

  • Members
  • PipPipPipPip
  • 59 messages

Posté 31 March 2011 - 16:33 PM

Sympa comme jeu! (Tant bien l'original que le tien, les graphismes sont pas moches! :) )

Je n'y connais rien en AI, (ni même trop en programmation...), mais une idée comme ça qui me viendrait (on sait jamais si ça peut servir): tu ne pourrais pas faire ça par paliers de niveau? :)

Comme tu as des graphiques, il est peut-être possible de calculer des coefficients. Et en fonction de tel ou tel coefficient, l'IA va passer au niveau supérieur. Un switch sur le niveau permettrait de changer assez facilement les caractéristiques...

Enfin bon, je dis ça, encore une fois, je n'y connais rien. Je ne fais que lancer une piste en espérant qu'elle puisse te donne une idée de génie! ;)

Pripoko

#4 loudoweb

    Ceinture Noire

  • Members
  • PipPipPipPipPipPipPip
  • 213 messages

Posté 31 March 2011 - 17:09 PM

tu es fan de sword & soldiers ?
---------------------------------
loudo
______________________
@loudoweb
http://www.loudoweb.fr
_____________________

#5 frangois

    Ceinture Noire

  • Members
  • PipPipPipPipPipPipPip
  • 224 messages

Posté 31 March 2011 - 18:12 PM

Il est bien ton jeu.

IA: pas sûr de l'intérêt des FSM, ça sert plutôt à contrôler des entités individuelles (des unités). Fais un arbre "stratégique", pondéré suivant le caractère de l'IA, les poids sont mis à jour selon les actions du joueur.

L'IA ne doit pas "répondre" à un clic (sinon c un script), mais au contraire elle tourne toujours en arr. plan. En continu (mais pas à 60Hz) tu mets à jour son arbre, et lui fait parcourir en partant de la racine. Il te renvoie, en fct des poids, une unité à construire ou une action à effectuer, caractèrisée par une feuille.

Game Programming Gems Tome 2, chapitre 3.7, de mémoire.

Equilibrage: tu mets toutes tes variables dans un XML, et tu tweakes. Il n'y a pas d'autre méthode.

#6 Billyben

    KlouChiPonshoñistäs

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 2597 messages

Posté 31 March 2011 - 18:46 PM

Salut, merci de vos réponses.

Pour le moment l'"IA" est dépendante du temps écoulé, tant en attaque qu'en défense (qui elle ne me satisfait pas, je cherche des cara à faire évoluer, pour le moment j'ai probabilité de la réponse et puissance proportionnelle de celle-ci)

J'ai mis en place un édulcoré de FSM, juste histoire de séparer le mode attaque de défense, avec les critères pour passer de l'un à l'autre.

Citation

L'IA ne doit pas "répondre" à un clic (sinon c un script), mais au contraire elle tourne toujours en arr. plan. En continu (mais pas à 60Hz) tu mets à jour son arbre
oui, pour ça j'ai un objet qui surveille le joueur et qui me sort des mini stat la dessus, mon problème c'est de sortir une valeur pour le décisionnel...

Citation

Fais un arbre "stratégique"
faut que je creuse ça..

Citation

Game Programming Gems
et voir ça, (mais je sens que c'est payant tout ça...)

Citation

Equilibrage: tu mets toutes tes variables dans un XML, et tu tweakes. Il n'y a pas d'autre méthode.
Hey oui, c'est ce que je me disais, en plus comme je n'ai aucune xp a dedans.... ça vasouille. (mais j'ai tout de défini ds un xml déjà, peut être un peu trop...)



1 utilisateur(s) li(sen)t ce sujet

0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)