Yeoun, mage-archère-louve | Comment équilibrer son jeu
Ce qui suit est une méthode pour arriver à équilibrer son jeu. Il en existe plusieurs, des plus simples, des plus compliquées que celle-là. La méthode que je vous présente, je l'ai créée à partir de mon expérience en JDR (Jeu De Rôle, sous-entendu sur table). C'est du sur-mesure pour mon jeu Forgotten.
Il y a des choses que je vais expliquer qui sont applicables à toutes sortes de systèmes. Il y en a d'autres qui seront spécifiques à Forgotten. Plus qu'un tutoriel, cet article est en fait une sorte de making-of. Je vous laisse lire et faire le tri de ce qui vous sera utile.
Un petit sommaire pour aller aux parties qui vous intéressent
Choix des statistiques
Minimum, maximum et valeurs-clés des statistiques
Utiliser à bon escient les valeurs-clés
Ancien article
Choix des statistiques
La première étape dans tout RPG quand on s'intéresse à l'équilibrage, c'est toujours la même : se demander ce qu'on veut équilibrer.
Par défaut, le logiciel RPG Maker propose les statistiques suivantes (exemple pris sur RPG Maker MV, onglet Classes) :
(HP max, MP max, Attaque, Défense)
(Attaque magique, Défense magique, Vitesse, Chance)
Si vous reprenez le système de combat par défaut du logiciel, vous pouvez tout à fait avoir besoin d'équilibrer toutes ces statistiques. En revanche, si vous faites vos propres formules de combat ou que vous utilisez votre propre système de combat, il y a de fortes chances que vous deviez redéfinir les noms de ces statistiques et leur utilité dans votre système.
Un exemple avec le jeu Forgotten : il est issu d'un JDR où on joue habituellement avec 7 caractéristiques principales : la Force, la Constitution, l'Agilité, la Vivacité d'esprit, la Mémorisation, la Volonté et enfin le Charisme. J'ai donc choisi pour mon système de jeu de reprendre ces statistiques.
Petit problème inhérent à mon système, RM propose 6 statistiques et j'en ai 7. J'ai donc décidé de supprimer la Mémorisation. Je peux le justifier par deux éléments : en premier lieu, l'effort de mémorisation est souvent fourni par le jeu lui-même dans un jeu-vidéo, sous forme de carnet, de journal des quêtes ou encore de PNJ qui répète à volonté la dernière direction à prendre. En second lieu, les deux personnages que le joueur contrôle ne sont pas très savants. Ils ont peu de choses à retenir et par conséquent, il est facile de se rappeler de nouveaux éléments. La statistique Mémorisation n'a donc pas vraiment de raison d'être dans ce jeu (par rapport à la version papier).
Je me retrouve donc avec 6 statistiques. Et elles vont servir à calculer tout le reste dans mon système de combat et mon système d'interaction avec les PNJ, y compris les PV max, les PM max, même les PT max ! En contrepartie, je vais devoir réécrire certaines parties du code du jeu, mais ça c'est un problème de programmation, pas d'équilibrage.
Par conséquent, je n'ai pas 8 statistiques à équilibrer dans mon jeu, mais seulement 6, qui sont :
- FOR : la Force (Attaque sur RM)
- CON : la Constitution (Défense sur RM)
- AGI : l'Agilité (Rapidité sur RM)
- VIV : la Vivacité d'esprit (Attaque magique sur RM)
- VOL : la Volonté (Défense magique sur RM)
- CHA : le Charisme (Chance sur RM)
À noter que je vous donne les noms que j'utilise personnellement quand j'équilibre et entre parenthèses les noms sous lesquels je stocke les valeurs sur RM, mais ça ne veut absolument pas dire par exemple que VIV est équivalent à l'attaque magique, bien loin de là !
Il est absolument indispensable de bien identifier les statistiques que VOTRE jeu utilisera. Ce n'est pas parce que le logiciel vous propose 8 statistiques par défaut qu'il faut que vous les utilisiez toutes.
Dans l'exemple que j'ai donné, on constate que je n'ai que 6 statistiques à équilibrer, vu que les PV max et les PM max sont calculés à partir de mes autres statistiques. Voilà pourquoi il faut définir à l'avance les statistique que vous voulez utiliser dans votre jeu, ça évite de faire du travail pour rien. De plus, chaque statistique que vous équilibrez doit avoir un sens pour vous. Si vous l'utilisez pour la seule raison qu'elle est fournie par le logiciel, ce n'est pas une bonne raison.
Étape facultative : afficher les bons noms de statistiques au joueur
Ça se passe dans l'onglet Lexique/Termes (ou Système sous XP) du logiciel. En général, c'est le dernier onglet.
Sur mon projet, je n'affiche pas directement ces statistiques, mais des statistiques dérivées
(via un plugin), du coup je me sers de cet onglet comme pense-bête.
C'est donc ici que vous pouvez renommer vos statistiques. Elles seront visibles à plein d'endroits étriqués dans les menus du jeu, donc il vaut mieux garder des noms courts ou même écrire des abbréviations. Si vous conservez le système par défaut, vous pouvez tout de même modifier les noms pour que ça colle mieux à l'ambiance de votre jeu.
Minimum, maximum et valeurs-clés des statistiques
Une fois qu'on a défini les statistiques avec lesquelles on veut travailler, il faut à présent leur attribuer des valeurs qui ont un sens. J'insiste vraiment sur ce point.
La plupat du temps, dans un RPG, les chiffres associés aux caractéristiques ne font que croitre jusqu'à obtenir des valeurs totalement démesurées, mais sans que ça ait un véritable sens. Souvent, les valeurs maximales sont fixées par des limites technologiques (par exemple, les statistiques vont jusqu'à 255 dans Final Fantasy X). Mais une limite technologique n'a pas de sens aux yeux du joueur !
Comme je suis une joueuse de JDR papier, j'ai redécouvert la signification des chiffres derrière les statistiques. Parce que très souvent, dans les JDR papiers, on vous indique quelles sont les valeurs moyennes pour une population donnée, quelles sont les valeurs maximales et minimales et à quel point ces extrêmes sont éloignés de la moyenne. Le mot-clé ici est : population. J'y reviendrai plus bas.
Définir proprement un minimum et un maximum
Grâce aux jeux de rôle papier, j'ai aussi redécouvert qu'il est inutile d'avoir des nombres à cinq ou six chiffres (c'est surtout très peu pratique lorsqu'on doit faire des calculs de tête). Certains jeux utilisent des nombres à un seul chiffre, d'autres des pourcentages, quelques uns s'octroient le privilège de monter à trois chiffres (et ceux-là, je me dis qu'ils seraient plus adaptés en jeu-vidéo...). En résumé, ce qui fait la signification d'un nombre, ce n'est pas le nombre de chiffres qui le compose.
J'aime beaucoup l'idée des pourcentages et j'ai décidé de la conserver pour ma méthode d'équilibrage. Ensuite, j'ai souhaité que ces pourcentages me parlent, et voici l'échelle que j'ai fabriqué :
- la moyenne, qui me sert de référence, est à 0% (0 parce que c'est la neutralité absolue)
- l'amplitude maximale de mes statistiques par rapport à la moyenne est de +/- 100% (parce que c'est simple à comprendre et à retenir)
-> ceci définit une échelle qui va de -100% à 100%
J'ai également décidé que l'appliquerai la même échelle à toutes mes statistiques. Ça ne sera peut-être pas possible pour votre propre système.
Un avantage de cette échelle, c'est qu'elle est très facile à représenter visuellement sans chiffres, sous forme de jauge. Et c'est beaucoup plus parlant pour le joueur de constater les effets d'un changement d'équipement ou d'un up de niveau sous forme de jauge. Petit soucis en revanche, on ne peut pas entrer des nombres décimaux dans l'éditeur de base de données RM (toutes versions) et on peut encore moins entrer un nombre négatif... Du coup, au lieu d'utiliser une échelle qui va de -100% à 100%, j'utilise une échelle qui va de 0 à 100.
Le but de cette étape est de définir un intervalle centré autour d'une valeur moyenne qui a une signification forte pour vous, c'est à dire de définir un minimum et un maximum par rapport à cette valeur moyenne. Il est possible de créer autant d'intervalles que de statistiques.
En résumé
Valeur minimale : -100% (0 unités en base de donnée RM)
Valeur moyenne : 0% (50 unités en base de donnée RM)
Valeur maximale : +100% (100 unités en base de donnée RM)
-> Écart entre les extrêmes et la moyenne : 100% (50 unités)
À partir d'ici, je raisonne avec les unités au lieu des pourcentages, parce que c'est ce que je vais finalement rentrer dans la base de données.
Définir des valeurs-clés
Cette étape est très importante ! Sans elle, il sera très difficile de créer vos premières classes, quelques objets et vos premiers monstres. Elle vous permettra d'avoir une idée des valeurs adaptées pour vos premiers tests.
Une valeur-clé, c'est une valeur seuil que vous pouvez faire correspondre à un adjectif qui caractérise votre statistique (mauvaise, moyenne, exceptionnelle, par exemple). Il est plus facile de créer une classe, un monstre en se disant que sa force est assez exceptionnelle, mais que son endurance est faiblarde, plutôt qu'en attribuant des nombres. Et surtout, ça permet d'avoir des collections d'objets homogènes en base de données : par exemple, toute arme forgée en mithril apportera un bonus fort, alors que toute arme forgée en cuivre apportera un bonus faible. Il sera toujours possible plus tard de préciser la valeur numérique exacte qui permet de dire qu'unne épée à deux mains en cuivre offre un bonus un petit peu plus élevé qu'une dague en cuivre.
Quand je détermine mes valeurs-clés, je procète toujours en deux temps.
Dans un premier temps, je reprends l'échelle créée à l'étape précédente et je lui ajoute des paliers intermédiaires, auxquels j'associe toujours un adjectif ou une petite phrase. Je fais toujours des palliers symétriques, mais ce n'est pas obligatoire.
Par exemple, sur Forgotten, j'avais défini les valeurs-clés suivantes à partir de ma moyenne 50 :
0 = incapacité totale
10 = lacunes/difficultés sévères, capacités d'un bébé
25 = grosses lacunes, manque d'expérience, capacités d'un enfant
40 = en dessous de la moyenne, dû à un retard, une faiblesse...
50 = état normal, capacités d'un adulte en pleine possession de ses moyens
60 = au dessus de la moyenne grâce à un entrainement acharné ou beaucoup de volonté
75 = état d'un athlète de haut niveau, d'un scientifique émérite, d'un général de guerre...
90 = vraiment exceptionnel, dans le top mondial de sa catégorie
100 = totalement inhumain
Des fois j'en reste là, ça me convient. Mais souvent, et c'est le cas de Forgotten, j'aime raisonner en termes de population pour m'assurer que mes valeurs-clés sont bien choisies.
Attention, la suite fait intervenir des notions de statistique. J'essaie de me concentrer sur la méthode plutôt que sur les explications mathématiques. Si le sujet vous intéresse, j'ai glissé des liens wikipedia ou vers des images dans mon article.
À présent, je ne vais plus voir simplement des valeurs-clés, mais une répartition de ma population derrière ces chiffres. La méthode la plus naturelle, je pense, pour appréhender cela, c'est de subtiviser mon échelle en tronçons qui font tous la même taille et de considérer que j'ai autant de personnes dans chaque tronçon.
Pour avoir une idée de la répartition, je consifère mes valeurs-clés, et je regarde combien de tronçons je peux caser entre mes valeurs-clés.
Application sur Forgotten : mon intervalle est [0;100] et mes valeurs-clés sont 0 - 10 - 25 - 40 - 50 - 60 - 75 - 90 - 100. Mes valeurs-clés sont toutes multiples de 5, je décide donc de définir des tronçons de 5 unités de alrge. Je peux diviser mon échelle en *(100-0)/5 = 20 tronçons. Chaque tronçon représente 1/20ème de ma population, ou 5%.
Ensuite, je regarde simplement combien j'ai de tronçons entre deux valeurs-clés (moyenne exclue) pour avoir une idée de la répartition de ma population :
- de 0 à 10 : deux tronçons, soit 10% de ma population
- de 10 à 25 : trois tronçons, soit 15% de ma population
- de 25 à 40 : trois tronçons, soit 15% de ma population
- de 40 à 60 : quatre tronçons, soit 20% de ma population
- de 60 à 75 : trois tronçons, soit 15% de ma population
- de 75 à 90 : trois tronçons, soit 15% de ma population
- de 90 à 100 : deux tronçons, soit 10% de ma population
* Formule = (maximum - minimum) / (largeur d'un tronçon)
En fait, sans le dire, je viens d'appliquer un modèle statistique à ces valeurs-clés. Ici, il s'agit d'une répartition uniforme, ce qui veut dire que la population est répartie de manière uniforme équilibrée entre chaque tronçon.
Je n'aime pas vraiment la répartition uniforme parce qu'elle est un peu trop équilibrée à mon goût. En particulier, je trouve qu'on n'obtient pas assez de personnes moyennes (ou que si on veut plus de personnes moyennes, il faut des valeurs-clés qui s'éloignent un peu trop de la valeur moyenne à mon goût). Pour un jeu vidéo ce n'est pas bien grave, en réalité. Mais je lui préfère malgré tout la répartition de la loi normale : on trouve davantage de personnes au sein d'une population avec des valeurs proches de la moyenne et les valeurs extrêmes sont très rarement atteintes.
Il existe plein d'autres lois en statistiques, vous pouvez choisir celle que vous préférez ou ouvrir le spoiler pour voir comment j'utilise la loi normale et comment vous pouvez adapter cette méthode à votre échelle.
Définir des valeurs-clés à l'aide de la loi normale
Spoiler (cliquez pour afficher)
Illustration d'une loi normale configurée pour Forgotten.
La zone grise contient environ 95% de ma population.
La loi normale a quelques caractéristiques qui fait qu'elle est agréable et assez facile à utiliser.
1) elle a deux paramètres assez facile à appréhender :
- l'espérance μ (ce qu'on appelle aussi la moyenne)
- l'écart-type σ (qui mesure la dispersion des valeurs par rapport à la moyenne : en gros, plus il est faible, plus les valeurs sont proches de la moyenne)
2) elle a quelques propriétés rigolotes :
- sa courbe (de densité) est sysmétrique par rapport à la moyenne (ceci assure que les valeurs-clés sont également symétriques par rapport à la moyenne, plus facile à mémoriser)
- la règle des 3 sigmas : ce qui nous intéresse ici, c'est que environ 95% des valeurs sont comprises dans l'intervalle [μ - 2σ ; μ + 2σ] et que quasiment 100% des valeurs sont comprises dans l'intervalle [μ - 2σ ; μ + 2σ] (je vous expliquerai pourquoi plus bas)
Je vous conseille d'utiliser ce calculateur en même temps que j'explique comment j'ai utilisé la loi normale pour trouver mes valeurs-clés.
Cette étape utilise le fonctionnement inverse de ce qu'on a fait juste avant. Au lieu de déterminer des valeurs-clés et d'en déduire une répartition de la population, on commence par définir comment on veut que la population soit répartie et ceci définira les valeurs-clés.
Par conséquent, il vous faut avoir une idée de la manière dont vous voulez que votre population se répartisse. Vous pouvez tout à fait reprendre ce que vous aviez jusqu'à présent et l'adapter un peu, ou repartir totalement de zéro.
Pour ma part, je repars toujours de ce que j'ai défini à l'étape précédente. Ensuite, je l'affine de deux manières. D'abord, je rajoute des subdivisions dans mes valeurs extrêmes. Ensuite, je redéfinis le pourcentage de personnes dans la moyenne et je fais la distinction entre les gens qui sont à peu près dans la moyenne et les gens qui sont vraiment très proches de la moyenne.
Résultat pour Forgotten :
- seulement 0.1% de ma population aura des statistiques vraiment aberrantes (non viable et à l'opposé divin) ;
- 5% de ma population sera dans les valeurs extrêmes (statistiques clairement insuffisantes et statistiques exceptionnelles) ;
- 20% de ma population aura des statistiques très basses ou au contraire très bonnes, mais pas extrêmes (on monte à un quart en englobant les valeurs extrêmes) ;
- la moitié de ma population aura des statistiques qu'on pourrait considérer dans la moyenne et dans ce groupe, je considère que la moitié environ a des statistiques vraiment proches de la moyenne (ce qui représente tout de même un quart de la population) ;
- il reste un quart de ma population, qui sert de zone tampon entre les très bons/nuls et les personnes moyennes, on pourra les définir comme des personnes mauvaises mais pas nulles, ou bonnes mais pas brillantes.
Les gros changements effectués par rapport à ma première estimation sont la réduction drastique des extrêmes (de 20%, je passe à 5%) et la très forte augmentation des personnes considérées dans la moyenne (de 20% je passe à 50%). Les autres catégories ont été un peu adaptées.
Ensuite, il faut passer à la "configuration" du calculateur de loi normale.
Quand vous cliquez sur le lien vers le calculateur, il est configuré pour l'étude d'une loi normale dite centrée réduite avec ces paramètres-là.
1) remplacez -1.96 par votre valeur minimum (0 pour Forgotten) et 1.96 par votre valeur maxmum (100 pour Forgotten) ;
2) remplacez l'espérance par votre valeur moyenne (50 pour Forgotten) ;
3) ici ça devient un peu plus compliqué, il faut remplacer l'écart-type par une valeur telle que le résultat en rouge soit 1 ou très légèrement inférieur à 1 (0.9999). Pour ceci on peut détourner la règle des trois sigmas : calculez l'écart entre votre minimum et votre moyenne et divisez par 3. Pour Forgotten, cela donne (50-0)/3 = 16 à peu près. Puis diminuez de 1 (ou de 0.5) jusqu'à ce que la valeur rouge se rapproche de 1.
(Une fois que vous avez dépassé 1, il est inutile de réduire encore votre valeur, le résultat donnera toujours 1.)
4) par ailleurs, toujours selon la règle des 3 sigmas, vous pouvez calculerle double de la valeur que vous allez définir. Je vais l'appeler 2σ. Sachez que les valeurs comprises entre votre valeur moyenne et +/- 2σ correspondent à 95% de votre population. Vous pouvez donc adapter votre écart-type en fonction de cette propriété si vous hésitez entre deux valeurs.
Par exemple, pour Forgotten, avec les paramètres minimum = 0, maximum = 100 et espérance = 50, j'hésitais entre 12.5 et 13 pour l'écart-type. À 12.5 j'englobe 100% de ma population et à 13 j'englobe 99,99% de ma population. Pour trancher entre les deux, j'ai regardé ce que donnait 2σ.
Pour un écart-type de 12.5, un peu plus de 95% de mes valeurs sont comprises entre 25 et 75.
Pour un écart-type de 13, un peu plus de 95% de mes valeurs sont comprises entre 24 et 76. Par conséquent, je ne dois pas être loin des 95% entre 25 et 75.
C'est comme ça que j'ai sélectionné la valeur 13.
J'ai donc décidé que pour Forgotten, la répartition des statistiques de ma population suivrait une loi normale de paramètres espérance = 50 et écart-type = 13. Ce qui englobe 99,99% des valeurs comprises entre 0 et 100.
Une fois que vous avez correctement paramétré votre calculateur, il ne reste plus qu'à remplacer votre minimum et votre maximum par des valeurs qui vous semblent intéressantes ou simples à retenir et vérifier que le résultat en rouge n'est pas trop éloigné de la répartition que vous avez établie plus tôt. Faites ceci pour tous les pourcentages que vous avez défini (en partant du minimum par exemple) et vous obtiendrez vos valeurs-clés.
Valeurs-clés entrées dans un tableur pour Forgotten. Le tableau du bas me permet de vérifier que mes grandes catégories
(qui englobent plusieurs sous-catégories) ont un pourcentage total proche de ce que je souhaitais.
À l'exception de 41 / 46 / 54 / 59, toutes les autres valeurs définies sont des multiples de 5, ce qui est très facile à mémoriser !
Vous ne tomberez pas exactement sur les pourcentages que vous aviez défini en choisissant des valeurs faciles à retenir. Mais il vaut mieux ça que des pourcentages exacts. Essayez de vous rapprocher un maximum de votre répartition idéale tout en sélectionnant des multiples de 2, de 5 ou de 10. Et si vraiment ça ne colle pas, essayez de nouveau en modifiant légèrement l'écart-type.
Voici le résultat final pour Forgotten
de 0 à 10 : ≈0.1% de ma population a une statistique non viable
de 10 à 25 : ≈2.5% de ma population a une statistique vraiment très basse
de 25 à 35 : ≈10% de ma population a une statistique limitée
de 35 à 41 : ≈12.5% de ma population a une statistique plutôt basse
de 41 à 46 : ≈12.5% de ma population se situe dans la moyenne basse
de 46 à 54 : ≈25% de ma population se situe dans la moyenne (valeur moyenne = 50)
de 54 à 59 : ≈12.5% de ma population se situe dans la moyenne haute
de 59 à 65 : ≈12.5% de ma population a une statistique plutôt bonne
de 65 à 75 : ≈10% de ma population a une statistique élevée
de 75 à 90 : ≈2.5% de ma population a une statistique qui lui confère le statut d'élite
de 90 à 100 : ≈0.1% de ma population a une statistique de nature divine
Par comparaison avec la répartition uniforme, les catégories "non viable" et "nature divine" n'existaient pas vraiment ; les catégories extrêmes et limitées/élevées sont plus proches de la moyenne et une nouvelle subdivision a fait son apparition ; l'ensemble des catégories "moyenne basse" + "moyenne" + "moyenne haute" s'étend toujours entre 40 et 60 à peu près, mais elles englobent 50% de la population contre 20% auparavant.
Utiliser à bon escient les valeurs-clés
On a donc défini une échelle de valeurs et des valeurs-clés le long de cette échelle qui permettent de la scinder en intervalles. Chaque intervalle associé à un adjectif ou une petite phrase. Et enfin, on a une idée de la façon dont ces intervalles de valeurs/adjectifs sont répartis dans la population.
À présent, on va pouvoir réfléchir à l'équilibrage. En guise d'illustration, je vais prendre la classe Guerrier de Forgotten.
Le Guerrier est un... combattant. Il est donc habitué à donner et à recevoir des coups. Son long entrainement l'a rendu plus résistant que la moyenne. Par ailleurs, spécialiste du corps à corps, il a la capacité de manier de lourdes armes, témoignage de sa grande force. Le Guerrier est également un meneur d'hommes, charismatique. En revanche, si un entrainement régulier permet d'améliorer les réflexes et la justesse du mouvement, il ne stimule pas vraiment les capacités de réflexion du Guerrier. Cela dit, un Guerrier qui ne fait pas preuve d'une certaine promptitude à l'analyse ne fait pas long feu.
De ce petit texte, on en déduit que ses statistiques principales sont la Force et l'Agilité. Suivent la Constitution et le Charisme. Rien n'est indiqué sur la Volonté, on peut supposer qu'elle se trouve dans la moyenne. Sa Vivacité d'esprit est un peu à la traine d'après cette description, mais pas trop non plus. Voilà ce que je propose pour cette classe :
- Force : élite
- Constitution : supérieure à la moyenne - élevée
- Agilité : élevée
- Vivacité d'esprit : moyenne inférieure
- Volonté : moyenne
- Charisme : moyenne supérieure - supérieur à la moyenne
Ceci est le coeur de la démarche : pas de chiffres encore, il suffit juste d'apposer des adjectifs à vos statistiques. À présent, deux problèmes se posent. Comment équilibrer des classes entre elles ? Comment gérer la montée de niveau ?
Équilibrer des classes entre elles
Ancien article, que je garde en mémoire parce que c'est comme ça que je ne dois PAS rédiger... Je l'élague au fur et à mesure que je le réécris.
Spoiler (cliquez pour afficher) Ceci m'aidera à faire des classes équilibrées.
Par exemple, si on reprend la répartition que j'ai donnée en exemple, un magicien aura sans doute une attaque magique à 60 ("bonne" stat) et cette valeur attendra 65-75 vers la fin de sa carrière (stat "exceptionnelle"). Son attaque physique quant à elle sera proche de 40 et ne devrait pas dépasser 46 (stat "un peu en dessous de la moyenne").
Cela permet aussi de voir comment les statistiques évolueront pour une classe donnée. De manière générale, on va plutôt suivre une croissance exponentielle en s'éloignant de 50 et au contraire une croissance logarithmique en s'approchant de 50.
On vient de faire la moitié du travail !
Il faut voir comment ces stats vont influencer les combats.
Les statistiques - formules de combat adaptées
Feignasse un jour, feignasse toujours !
J'ai donc choisi une règle simple : une personne normale fait 100% de dommages. C'est notre étalon. Définissons les extrêmes : un dieu fait le double de dommages et une personne incapable de taper ne fait aucun dommage.
Du coup, la formule de dégâts revient à : degats = dégâts_de_base * stat_d_attaque * 0.02
Maintenant, on passe à la défense. J'applique le même principe : l'étalon reçoit 100% des dommages, le dieu aucun et la personne incapable de combattre prend le double de dommages.
On obtient donc : degats_recus = degats * (2 - 0.02 * stat_de_defense)
Du coup, si j'appelle comme dans le logiciel a = attaquant et b = défenseur, on obtient la formule générale sivante : formule_de_degats = base * 0.02 * a.atk * (2 - 0.02 * b.def)
Pourquoi s'embêter avec des formules qui sont sacrément plus compliquées que le classique 4*a.atk - 2*b.def ?
Parce qu'on a une bonne idée de ce que ça va donner sans même faire de combats tests.
Exemple : une boule de feu à 1000 de dégâts de base lancée par un magicien débutant (stat d'attaque magique de 60) fera 20% de dégâts en plus. Un maitre magicien, avec une stat de 75, fera lui 50% de dégâts en plus.
Le chevalier, sur un coup de tête, décide de lancer lui aussi une boule de feu. Après tout, pourquoi pas ? Avec une stat d'attaque magique de 35, il fera 30% de dégâts en moins. Il lancera une boule de feu à 700 de dégâts, là où le magicien en lancera une à 1200, soit une sacrée différence !
Pour une personne lambda (statistique comprise entre 47 et 53), la boule de feu fera des dommages compris entre 940 et 1060 dégâts.
Ensuite, il faut appliquer la défense ! Imaginons que le magicien lance sa boule de feu sur un étudiant lambda, l'étudiant encaissera 1200 dommages (100% des dégâts). Maintenant, imaginons qu'il la lance sur le chevalier qui a un petit 60 en défense magique (grâce à son armure par exemple), les dégâts vont être réduits de 20%. Le chevalier encaissera 960 dommages.
Note : on voit ici qu'à attaque et défense égales, c'est la défense qui l'emporte. Étrange ? Pas tant que ça. Plus d'infos en spoiler, avec des formules alternatives.
Spoiler (cliquez pour afficher) En fait, pour la défense je n'ai pas appliqué tout à fait le même principe. L'opposé d'infliger 200% de dégâts, ce serait de recevoir 50% de dommages en moins. Au lieu de réduire les dommages à zéro.
On a donc cette échelle de valeurs : 0 déf = 200% dommages reçus, 50 def = 100% dommages reçus et 100 def = 50% dommages reçus.
Passage rapide sur un tableur pour obtenir la formule suivante : dommages_recus = degats * (2 - 0.025 * stat_de_def + (0.01 * stat_de_def)²)
Sans passer par un plugin, ça commence à devenir fastidieux à écrire dans la case réservée à la formule de dégâts... Il est tout à fait possible d'obtenir d'autres équations. Par exemple, une de la forme f(def) = 1.5 - 0.01 * def si on estime que la personne incapable de se battre reçoit de fait 50% de dommages en plus.
Une fois que vous êtes fixé sur la (ou les) formule(s) que vous allez utiliser, place aux simulations ! Le but est d'estimer le nombre de PV qu'une attaque va infliger connaissant les dommages de base et les stats d'attaque et de défense des protagonistes (ou au moins une idée des variations de ces stats). Ensuite, il faut estimer le nombre de coups qu'il faudrait donner avec ladite attaque pour tuer l'ennemi/mettre le héros KO. Ceci donnera le nombre de PV dont disposent les ennemis et les héros.
C'est la méthode que j'utilise pour remplir ma base de données. Ça nécessite de se créer pas mal de tableaux de référence, mais le tableur est un passage obligé pour arriver à faire un premier jet de la base de données qui tient à peu près la route.
Je n'ai pas encore parlé de variance et de coups critiques. À ce stade, je les oublie purement et simplement. Pour la variance j'utilise le magnifique outil qu'est AnyDice (qui autorise les formules du style (-1)^1d2) pour avoir une idée de la répartition des dégâts. Pour les critiques, je n'ai pas encore vraiment réfléchi à la question. En général, un coup critique a X% de chances de se produire et augmente les dégâts de Y%, ça ne va pas chercher plus loin.
J'utilise souvent quelques autres trucs dans mes formules de dégâts : la position des uns et des autres en combat par exemple (un guérisseur placé à l'arrière prendre moins de coups, mais en contrepartie il fera moins de dégâts) ou encore des variables comme les TP pour simuler la rage de vaincre.
Un petit bout de réflexion sur ça se trouve sur le forum du
Persque arrivée au bout ! Il reste encore à parler de l'expérience, mais ce sera beaucoup plus rapide !
Edit : article de CuddleFox sur un sujet similaire : http://www.rpg-maker.fr/index.php?page=forum&id=26654
|