JeuWeb - Crée ton jeu par navigateur
Algorithme de combat - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : Algorithme de combat (/showthread.php?tid=2788)

Pages : 1 2


Algorithme de combat - M@x - 21-07-2008

Bonjour à tous,

Je suis depuis un petit moment déjà en train de créer un jeu en ligne. Il est pas mal avancer, on peut actuellement construire bâtiments/recherches/unités, transporter et baser des ressources seulement je ne sait vraiment pas par ou je doit commencer pour l'algorithme de combat :/

J'aimerais donc connaitre votre avis et si vous connaissez un script ou un tutos pour ce genre d'algorithme.

Merci bien. Wink


RE: Algorithme de combat - Harparine - 22-07-2008

Salut !
Je te conseille te jeter un oeil aux règles de jeu de rôles que tu peux trouver. Tu y verras plusieurs types d'algorithmes applicables à des unités. Ensuite, pour calibrer le tout, il vaut mieux utiliser un tableur, c'est pratique. Après, il ne reste plus qu'à coder l'ensemble. A plus !


RE: Algorithme de combat - M@x - 22-07-2008

Bah euh.. ça m'aide pas beaucoup ^^

Merci en tout cas de ta réponse. Je crois que je ne vais pas trop avoir le choix. Beaucoup de temps/beaucoup de tests...


RE: Algorithme de combat - Mysterarts - 22-07-2008

Salut !
Afin de mieux te cerner, et donc mieux te répondre, je pense qu'un petit tour par la case "présentation" pourrait être utile (ce n'est pas une obligation pour autant).

Sinon, je pense que tu devrais vraiment te pencher sur la technique d'Harpa...
Avant de te lancer sur l'algorithme lui même, tu dois pouvoir (et même le faire) mettre sur papier le déroulement d'un combat, les variables qui rentrent en jeu, les formules mathématiques, les conditions à appliquer etc... Si tu n'es pas capable de le faire, alors c'est que tu n'as pas encore de "GamePlay de combat" en tête, et c'est là qu'intervient l'idée d'Harpa. Prends 3-4 jeux dont tu apprécies le système de combat et cherche à dégager la manière dont il se déroule, à retracer les étapes de résolution...
Normalement cela devrait te donner des pistes pour ton propre système !
Quand à la création "technique" de l'algorithme, sa programmation, tu ne peux avoir de tuto sur le sujet ! Parce que chaque système de combat et différents... La programmation d'un système de combat est souvent certes fastidieuse, mais elle n'est pas compliqué : ce sont des codes que tu as l'habitude de faire si tu fais un jeu en php : des if, des while comme d'habitude...
Le plus dure, encore une fois, c'est de construire le déroulement de ton combat, et ça, on peut pas le faire à ta place... Par contre, on peut te donner notre avis si tu en créé un et le post ici !

Une dernière chose : ici on ne fais pas d'aide à la programmation, c'est pourquoi je te dis que nous t'aideront surtout dans la partie GamePlay du combat...

Voilà, bon courage, tu attaques le bout du code qui paraît, d'après moi, la plus insurmontable (mais seulement en apparence) :p
Mysterarts


RE: Algorithme de combat - Roworll - 22-07-2008

tout dépends de ce que tu veux faire avec ton algo de combat.
Cela peut aller du très simple au très compliqué.

Il faut déterminer déjà le système de résolution que tu souhaite utiliser. quelques exemples

Valeurs simples
Chaque unité à une valeur de combat simple
Cette valeur représente sa capacité de combat dans son ensemble. Pas de distingo entre l'attaque et la défense mais une évaluation simple de la puissance de l'unité

Attaque et Défense
Chaque bloc/Unité engagé possède une valeur d'attaque et une valeur de défense. On utilise ainsi l'attaque de A contre la défense de B puis B ripostre en utilisant sa propre attaque contre la défense de A.

Par dessus ce système "de base" tu peux greffer des paramètres tactiques et stratégiques. Par exemple :

Vulnérabilités et avantages
Ce système augmente d'un cran la complexité. Il inclue la notion d'efficacité/vulnérabilté face à un certain type de cible. Une unité de tireurs d'élite sera moins efficace contre un char que contre une unité de fantassins. Dans un autre contexte, on peut dire que les Orcs sont plus vulnérables aux dégats magiques.
A toi de transposer ces paramètres dans ton système.

Position et Terrain
autres paramètres à prendre en compte. Des Hommes lézards auront un bonus dans les marais et un malus dans la neige. Une unité aura un avantage si elle surplombe sa cible, etc.

Une fois le système choisi, il faut ensuite travailler sur la résolution. Deux exemples

Tout d'un coup
On fait la somme de la puissance de l'attaquant (pondéré par d'éventuels modificateurs de terrain, avantage, etc), même chose pour le défenseur. On lance un dé pour pondérer le résultat, le plus gros l'emporte.

Combat par Unités
Chaque camp comporte des unités. Chaque unité agit à son tour en fonction de sa portée et de sa vitesse (par exemple artillerie, fusilliers, archers, cavalerie et enfin piétaille). Cela demande à établir d'une part l'ordre d'attaque des unités mais aussi une liste des cibles prioritaires (Les catapultes attaqueront les Cavaliers en premier puis si il n'y en a pas/plus, les archers, puis l'infanterie)

Reste ensuite à appliquer les effets du combat
Les unités vaincues peuvent juste perdre des points de vie ou être détruites directement. Elles peuvent battre en retraite, perdre un pourcentage de leurs effectifs, etc

D'autres modificateurs importants peuvent affecter l'issue d'un combat.
Par exemple, tu peux prendre en compte le moral d'une unité, la qualité des unités de commandement l'accompagnant, le ravitaillement, etc.

Le Monde du Wargame, du Jeu de Plateau et du JDR pourra certainement te donner plein de chemins à suivre. A toi par contre de bien définir tes objectifs (niveau de précision et de complexité) avant de te lancer.

Enfin, si je peux me permettre un conseil, essaye de faire des unités identiques pour tous les camps ou à défaut de garder les même caractéristiques en changeant les noms. Cela simplifiera grandement les soucis d'équilibrage entre les camps/factions de ton jeu.


RE: Algorithme de combat - M@x - 22-07-2008

Et bien merci de vos réponse. Donc j'en conclut que avant de commencer la prog, je doit faire sur papier tout l'état du combat en indiquant le plus d'options/calculs/rapports.

Je doit bien réfléchir à la façons dont les unités s'attaquent entre-elles.

Pour information, mon jeu comporte 4 races. Des noms d'unités différents mais pour le moment identiques. Wink

M@x.


RE: Algorithme de combat - Mysterarts - 22-07-2008

Tu as tous compris !
Et c'est d'ailleurs ce qu'il faudrait faire pour tout les systèmes que l'on veut programmer, même si on pense dans un premier temps que cela est trop simple pour le faire...
Surtout, après une premier jet sur papier, laisse toi le temps de réflexion, fait des test (calculette en main)... parce qu'une fois lancé dans la prog', ce sera trop tard pour se rendre compte que les cavaliers vont moins vite que les lanciers Smile

Bel vue d'ensemble Row' ! A mettre sur le wiki d'après moi... Ce sont de bonnes pistes pour les nombreuses personnes qui sont apeurés à l'idée de coder le système de combat (j'en est eu fait partie, je sais ce que ça fait Big Grin )

Mysterarts


RE: Algorithme de combat - M@x - 22-07-2008

Mysterarts a écrit :Ce sont de bonnes pistes pour les nombreuses personnes qui sont apeurés à l'idée de coder le système de combat (j'en est eu fait partie, je sais ce que ça fait Big Grin )

Et la bilan ? Plus de peur que de mal ou... ^^


RE: Algorithme de combat - Mysterarts - 22-07-2008

Tout à fait !
Ce fut un peu long, c'est vrai (surtout que j'avais pas si bien préparer le travail avant, comme je te le conseil aujourd'hui), mais finalement pas si dur que ça !
Je me prépare d'ailleurs à faire celui de mon projet actuel (je suis même en plein dans les préparatifs), donc on est dans le même bateau Wink

Mysterarts


RE: Algorithme de combat - Argorate - 22-07-2008

Mysterarts a écrit :Surtout, après une premier jet sur papier, laisse toi le temps de réflexion, fait des test (calculette en main)... parce qu'une fois lancé dans la prog', ce sera trop tard pour se rendre compte que les cavaliers vont moins vite que les lanciers Smile

Heureusement que tu trompes totalement, sinon bien de jeu ne serait pas se qu'ils sont, et si l'amélioration et l'équilibrage se voyaient impossible, ce serait un désastre…

Sachant qu'un bon programme est facilement adaptable, si tu te rends compte que tes cavaliers sont trop ou pas assez rapide, tu es censé pouvoir aisément rectifier le tir en changeant un paramètre ou deux. Même une fois le moteur de combat entièrement réalisé, tu dois pouvoir équilibrer après.

La chose la plus importante au début, ce n'est pas réellement les stats, les pv et les dégâts, mais tout le reste, tout se que dois gérer le moteur de combat : gère les cible, le nombre, récupère les infos qu’il te faut au moment ou il le faut, gérer les contre attaque(le cas échéant) etc.
Tu dois d'abord y réfléchir, sur papier (si tu n'y arrive pas dans ta tête) mais perd pas trop de temps, autant commencer le code, et modifier au fur et a mesure. Les écrivains ne font pas leurs livres en une fois, et ne crois pas faire ton programme en une fois non plus.
Etant moi même entrain d'optimiser de a à z mon moteur de combat, je sais de quoi je parle. J’ajoute des fonctions auquel je n'avais pas pensé etc. bref, je pense que tu dois réfléchir un minimum pour savoir où tu vas et quel style de combat ton jeu doit gérer, mais après il faut surtout se lancer, car c'est au début le plus difficile, tu améliores avec le temps (faut t-il encore avoir un code entamé pour avoir quelque chose à améliorer Wink)