Aide pour système de combat

Je suis en train de faire un Risk avec les même règle mais je bloque sur le système de combat…

Pour ceux qui connaissent, je voudrais bien qu’ils m’aident pour faire le même système avec gd.

Enfin je ne sais pas trop comment détailler ce que je veux, car c’est long et dur…

M dark,

Tu as bien raison de demander de l’aide. Les jeux de stratégie sont souvent compliqués à programmer. Il faut être très méthodique, et bien analyser le système de jeu, comprendre toutes les interactions entre les différents éléments avant de commencer à concevoir le programme.

A mon avis, le bon ordre, c’est à peu près celui-ci :

  • D’abord, assimiler les règles ; va voir cette page http://jeuxstrategie.free.fr/Risk_complet.php, elle te fournit la règle complète du jeu Risk. Efforce-toi de bien comprendre le jeu, et de déterminer si tu veux conserver toutes les règles, ou s’il y en a que tu veux adapter ou ignorer. Commence donc par imaginer ton jeu sur papier, et noter ce que tu gardes et ce que tu retires.

  • Au tout début, je pense qu’il te faut un plateau de jeu (un planisphère, divisé en territoires) ; je te conseille de démarrer avec un monde très simple (2 joueurs, et 12 ou 15 territoires). La forme n’a pas d’importance. A la rigueur, tu peux même commencer avec une quinzaine de “cases”, des carrés, des rectangles. Il n’est pas indispensable d’avoir tout de suite une belle carte. Donne des noms à tes territoires (si tu n’as pas trop d’idée, attribue-leur une lettre : Territoire A, Territoire B, etc.). L’ensemble des territoires sera à inclure dans un groupe d’objets, mais chaque territoire doit pouvoir être identifié et distingué. Les 2 joueurs (Bleu et Rouge par exemple), seront bien évidemment des joueurs humains, car il n’est pas question à ce stade de mettre au point une intelligence artificielle… Dans tes tests du jeu, tu devras donc contrôler alternativement chaque joueur.

  • Une fois que tu as ta carte, tu peux créer le système d’unités d’armées : je ne sais pas comment tu veux les représenter, par exemple des petites pastilles de couleur qui indiquent le nombre d’unités présentes sur le territoire A.

  • Maintenant que tu as des territoires et un système d’unités, il te faut réfléchir à la manière dont tu attribueras les territoires entre les joueurs. Choisiront-ils ex-mêmes les territoires qu’ils veulent occuper en début de partie, ou sera-ce une attribution aléatoire ? Personnellement, j’écris les idées qui me viennent, je n’ai pas suffisamment réfléchi pour te dire si cette phase est réellement importante à ce niveau. Tu peux aussi décider (puisque tu en es encore au tout début), de mettre cette phase de développement en attente, et de décréter par exemple que le Territoire A appartient dès le début au Joueur Bleu, et le Territoire B au joueur Rouge. Et aussi prévoir un nombre d’unités à répartir sur les territoires (par exemple, 20 unités que chaque joueur doit répartir sur ses territoires, sachant que chaque territoire doit être occupé par au moins une armée de la couleur du joueur auquel il appartient).

  • Une fois que ton plateau de jeu est “peuplé” par des armées, le jeu peut débuter. Et c’est là que va venir le gros-oeuvre, la programmation proprement dite. Pour concevoir le moteur de jeu, il semble évident que la première phase de programmation devra être consacrée à la structure du tour par tour. C’est le coeur du jeu. A ce stade, les “tours” seront vides. Cela n’a pas d’importe, ce qui compte, c’est de réussir à obtenir une succession de tours. Tu ne dois pas sous-estimer l’importance de cette phase de programmation. Tu dois réussir à isoler le tour de chaque joueur ; si tu ne le fais pas correctement, tu risques de constater plus tard dans le développement l’apparition d’énormes bugs. Avant de déménager (et de casser mon ordi) j’avais travaillé sur un jeu de combat stratégique en semi temps réel et semi tour par tour (je n’y ai plus touché depuis 3 mois, j’ai besoin de réviser…), et je sais par expérience à quel point il est essentiel de bien identifier les phases de jeu et séparer le tour des différents joueurs…

  • Une fois que tu as conçu un système stable de tours, tu peux t’attaquer au contenu des tours. C’est le gros morceau dans lequel tu programmeras le jeu en fonction des règles que tu auras choisies sur ton papier. Ce sera long et fastidieux, de reproduire les assauts de territoires, d’autant que si ton jeu est un Risk, tu devras concevoir un système aléatoire basé sur le “roll” de 1, 2 ou 3 dés suivant les forces du territoire attazquant et du territoire défenseur. Ainsi que les mouvements de troupes. A ce niveau, ne te préoccupe pas des renforts à pourvoir à chaque tour. Il en faudra nécessairement, mais contente-toi simplement dans ton programme d’indiquer que chaque joueur reçoit 8 ou 10 troupes à répartir à chaque début de tour.

  • Enfin, si tu as survécu à toute cette programmation laborieuse, tu pourras travailler le système de renforts. Dans Risk, les renforts s’obtiennent à partir de combinaisons de cartes, reçues à chaque conquête d’un territoire. Evidemment, ça risque d’être chaud ! Déjà que tu auras dû concevoir un système de dés pour simuler les assauts, si tu dois ajouter un système de cartes par-dessus, ça va peser lourd, ce sera limite indigeste… Si je me souviens bien, dans le Risk original, il devait y avoir 44 cartes (42 cartes Territoires + 2 jokers). Heureusement, si tu as conçu une petite carte à 15 territoires, tu pourras te contenter de 16 cartes (15 cartes Territoires + 1 joker). Mais c’est un sacré boulot malgré tout. Une remarque importante : si tu crées un jeu de cartes, alors il est tout à fait judicieux de créer un planisphère comportant un multiple de 3 de territoires ! De cette façon, les 3 types de cartes de Territoires (canon, cavalier, fantassin) peuvent être réparties de manière parfaitement égalitaire. Et n’oublie pas que quand le talon est épuisé, on mélange les cartes défaussées et on crée un nouveau talon… Bref, le jeu de cartes, ce n’est pas évident, mais cela reste très faisable… En revanche, si tu choisis de changer les règles et de créer ton système d’argent pour acheter des troupes, ce sera plus simple ; mais il faudra le faire de façon intelligente, sans quoi ton jeu risque de manquer d’équilibre…

  • A la toute fin du développement du jeu, tu pourras travailler sur les conditions de victoire, soit la conquête de tous les territoires (très simple à faire !), soit en créant des cartes “Objectifs” (beaucoup plus faciles à gérer que les cartes “Territoires” !). Ce ne sera pas dur à faire.

  • Une fois que ton jeu fonctionne bien ainsi, tu pourras faire une jolie carte (et l’agrandir), donner de vrais noms à tes territoires, même tenter de programmer une intelligence artificielle qui contrôlera automatiquement une ou plusieurs couleurs. Mais ça, c’est en option, à toi de voir.

Voilà j’ai été très long, mais il me semble que la meilleure façon de procéder est celle-ci. Dans tous les cas, M dark, prends ton temps, ce n’est pas le genre de jeu que tu peux terminer en un mois ou deux…

J’ai déja fait une partie que tu as dictée, c’est à dire le placement et les renforts de début (2 joueurs humain, ordi). Et je n’ai mis que peu de territoire (des carrés avec des noms).

Pour la règle, je la connais, mais j’ai peur d’avoir sauter deux, trois choses…

Et pour les tours, j’ai trouvé comment faire avec des variables.

Le problème c’est l’étape de combat et de déplacement qui est difficile… Heureusement Colin est rentré de vacances et m’a proposé de m’aider pour les evenements :slight_smile:

C’est pas grave, je prend grand plaisir à lire toutes ces lignes :slight_smile:

Au fait M_dark as-tu toujours besoins de Moi ou tu as trouvé un moyen (Désolé cet après-midi j’ai pas été présent souvent et j’ai jouer à UT 2004 quand j’ai pu :unamused: )

C’est bien pour ça que je te conseille, avant de te lancer, de bien “assimiler les règles” ; l’intérêt est non seulement de pouvoir planifier la programmation en strates cohérentes et successives (pour pouvoir tester ton jeu et débusquer au fur et à mesure les éventuels bugs). Si tu travailles un peu n’importe comment, sans ordre, sans méthode, si tu travailles à l’impulsion en ajoutant des bouts de codes par ci par là sans former une structure claire (à la fois dans ta pensée et dans tes événements), tu constateras plus tard l’apparition de bugs dont tu auras bien du mal à déterminer l’origine. La règle du jeu, c’est très important. Si tu modifies ou supprime une règle, tu dois réfléchir aux conséquences sur le jeu, et bien vérifier si cette modification ou suppression ne dénature pas ou ne déséquilibre pas le jeu. Imagine, si tu programmais un jeu de football en “sautant” la règle de la touche. Que se passerait-il dans ton jeu, si le ballon sortait du terrain ? Donc, si tu “sautes” 2 ou 3 choses, tu dois penser précisément quelles sont ces choses (quelle est leur importance dans le jeu) et pourquoi tu les “sautes”… Si certaines personnes aiment jouer à Risk, essaient ton jeu, et ne reconnaissent pas un peu le jeu qu’elles aiment, elles seront déçues, et estimeront même abusif de ta part de qualifier ton jeu de Risk s’il n’y ressemble pas assez… Tu ne dois pas “arnaquer” tes futurs joueurs, en leur promettant un jeu qui n’est pas celui qu’ils imaginent.

J’espère vraiment pour toi que ton système de variable tient la route (l’as-tu testé ?). Comme je l’ai dit avant, dans un jeu au tour par tour, il est très important d’isoler hermétiquement le tour de chaque joueur. Si tous tes joueurs, pour le moment, sont contrôlés par toi ou par d’autres joueurs humains, ça n’a peut-être pas trop de conséquence… En revanche, imagine que plus tard tu programmes une intelligence artificielle, qui contrôle automatiquement une ou plusieurs couleurs. Eh bien dans ce cas, il est indispensable que cette intelligence ne puisse pas agir en dehors des tours où c’est à elle de jouer. Alors, m dark, avant de dire “j’ai trouvé comment faire avec des variables”, essaye ton système, ajoute des événements quelconques dans ta scène (apparition d’une image ou d’un texte “tour du joueur Bleu” par exemple) et vérifie bien que tu obtiens une succession de tours bien identifiables.

Pour te dire les choses comme je les pense, tu m’as tout l’air de vouloir aller trop vite, au détriment de la réflexion et de la qualité de ton projet.

Mon cher Colin, si M dark va jusqu’au bout de son idée de programmer un Risk, il aura forcément besoin que nous l’aidions. Et pas seulement une fois… (pourquoi tu as mis une majuscule à “Moi” ? :astonished: ) Moi, Moi, rien que Moi… Je Me regarde dans le miroir, et je trouve que le plus beau, le plus grand, c’est MOI :laughing: )

Moi (avec une majuscule, mais seulement parce que c’est le début de la phrase :smiley: ), hier soir, j’ai joué à vieux truc aussi : Deus Ex, encore plus ancien qu’Unreal Tournament 2004. Ces vieux jeux sont tellement bien… :slight_smile:

Oui effectivement je l’ai testé et il fonctionne avec les CPU.

Oui comme dit voyageur, je vais avoir besoin d’aide et l’après midi d’hier je l’ai passé à ammeliorer ce qui se passe avant le combat.

Le M majuscule, Heu ça je m’en était pas aperçu c’était non voulu désolé :blush: (j’ai du confondre avec un nom propre en allant trop vite :laughing: )
Ok M_dark, dans ce cas faut que tu me passe la mise à jour mais pas avant ce soir je suis à un anniversaire cet aprèm :slight_smile:

Bonjour,

J’ai une idée pour ton système de déplacement :
A chaque coup de l’IA il choisis un chiffre entre 0 et 5 qui sera stocker dans la variable déplacement.
Exemple : Faire random 5 a la variable déplacement
Ensuite on définis un mouvement pour chaque variable.
Exemple:
Si la variable est 3 aller a la position = x780 y130
Si la variable est 4 aller a la position = x120 y23
et chaque position et défini par une variable si la variable et égale à 0=non occuper mais si c’est égal à 1 c’est occuper donc on recommence le calcul.
Exemple :
Si la variable position320 et =1 ça veut dire que la case est déjà occuper donc on recommencer tout le calcul en diminuant la variable, et si l’ordinateur se retrouve dans l’incapacité de bouger il doit attaquer.
Exemple :
Si la variable déplacement est <=(inférieure ou égal ) à 0, attaquer.

J’espère t’avoir aider :smiley:

Oui, mais ça ne marche pas comme ça… Telecharge ça et regarde

toofiles.com/fr/dl/documents … rojet.html

J’ai regarder ce qu’il faut que tu face c’est que tu enregistre leurs position dans différentes variable globale.

En fait c’est plus dur que ça, il faut que ça soit une ile à coté et que ça soit des variables qui changent de place

J’ai trouver le problème et je suis en train de le re-créer avec les mêmes images exactement le même déroulement que avant mais grâce a ce changement je pourrait créer le système je t’envoie ton projet dès que le système de combat est ok :slight_smile:

Bone chance :slight_smile:

Merci mais en faite là je me heurte à un problème une variable ne veut pas se déclencher…
C’est bon c’est rectifier mais maintenant il y en a une qui ne veut pas s’afficher :confused:

Comment ça? Explique

C’est bon c’est régler maintenant je passe au système de combat !

Déja? Wow :smiley:

ça ma pris 1H30 non stop :imp:

Merci de maider :slight_smile:

Et je veut bien faire partis du projet :sunglasses: