Oniromancie: Articles personnels - Le casse-tête de l'équilibrage


Comment ça marche?

Aëdemphia
Par Sylvanor

Fighting Robots Quest
Par Boulon

Forstale
Par Ødd Clock

Geex
Par roys

Inexistence
Par Falco

La Légende d'Ibabou
Par Zaitan

Lije
Par Gaetz

LoveMaster
Par Cuddlefox

Sarcia
Par Kaëlar

Super Mario RPG - Lost Souls
Par Omegabowser

Jeux: Polaris 03 / Jeux: LoveMaster v1.2.12 / News: Test de Creepypasta Universe 3 / Jeux: Monster World RPG / Jeux: Pif et Hercule /

Chat  (50 connectés)

Bienvenue
visiteur !








Statistiques

Liste des
membres


Contact

57 connectés actuellement

9289448 visiteurs
depuis l'ouverture

1150 visiteurs
aujourd'hui

Groupe Facebook

Barre de séparation

Partenaires




TOP
GAMEMAKING


Les 5 plus
visités

Lunae, le baz'arts d'Emz0

Le studio du chat vert

Pixelandgame

Tashiroworld

HeyMakeGames

Au hasard

Final Fantasy VII Origin

RPG Maker VX

HeyMakeGames

Les deux derniers

Lunae, le baz'arts d'Emz0

Le studio du chat vert

Nos autres partenaires

Devenir
partenaire


Barre de séparation

Un site du réseau
War Paradise

Annuaires référenceurs




Le casse-tête de l'équilibrage

HuLijin - posté le 23/09/2017 à 21:08:31. (427 messages postés) -

C'est un sujet qui avait déjà été évoqué dans la section débats, je crois. Il a à nouveau été évoqué sur le Discord et je me suis dit que ça pourrait être intéressant de vous faire partager ma façon de me dépatouiller avec ça.

Postulat de départ : je suis une feignasse. Perfectionniste, mais feignasse quand même. Donc tout ce qui peut me simplifier la vie, je prends !

J'ai la chance de côtoyer quotidiennement un mec d'Oniro bourré d'idées et il me les fait souvent partager. L'une d'elles, qui me plait beaucoup, c'est le retour aux sources : utiliser les JDR papiers, à l'époque où les stats voulaient dire quelque chose !

Partant de là, 2 axes de réflexion sur l'équilibrage : des stats qui ont un sens d'une part et le gain d'expérience d'autre part.






Premier point : les statistiques

Ce premier point est assez conséquent en réalité, alors je vais el diviser en deux.

Les statistiques - donner de la signification aux nombres

Ce qui va suivre est pour MV, mais je crois que c'est valable pour quasi tous les RM.

Petit inventaire rapide des statistiques courantes dans les RPG : l'attaque, la défense, l'attaque magique, la défense magique, la rapidité (qui agit en premier) et la chance (taux de coups critiques). Soit des statistiques sacrément axées combat.

En soit, ça ne me convient pas puisque j'aimerais exploiter d'autres statistiques (au hasard... le charisme), mais laissons ce problème de coté. Comment faire pour associer à ces statistiques de base des valeurs qui ont du sens ?

Le même oniromancien que précédemment m'a passé divers bouquins de JDR et là, l'illumination : pourquoi ne pas utiliser des valeurs normalisées, que l'on peut associer à des mots, comme dans certains JDR ?
Mon esprit fainéant a donc décidé d'utiliser une échelle de -10 à 10 (ou -100% à 100%), 0 étant la valeur moyenne pour une catégorie donnée. En spoiler, un exemple d'échelle (faite à l'arrache pour le sujet).

Spoiler (cliquez pour afficher)



Bon, c'est cool, mais MV n'aime pas trop les valeurs négatives... pas grave, il suffit de décaler le tout de 0 à 100 ! 50 deviendra la nouvelle valeur moyenne au lieu de zéro. Pour l'affichage, histoire que ça parle aux gens, un petit plugin pour afficher cette valeur sous forme de barre, en dessous des 50% la barre prend une couleur considérée comme "mauvaise" et au dessus de 50% une couleur considérée comme "bonne". Plus de chiffres sans signification !

(Ajouter une image quand le menu sera fini...)

Et pour les équipements ? il suffit de remplacer +X et -X par +X% et -X%. Ça aussi, ça parle aux joueurs.


"Hé ! Hu Lijin ! C'est bien beau tout ça, ça parle aux joueurs, mais ça ne règle pas vraiment mon problème d'équilibrage !"

Pour reprendre les mots d'un grand philosophe, c'est pas faux ! On sait maintenant qu'une bonne stat est supérieure à 50, et qu'une mauvaise stat est inférieure à 50. Mais comment différencie-t-on une "bonne" stat d'une "excellente" stat ? Ou encore, que considère-t-on comme "dans la moyenne" ?

Pour répondre à cette question, j'ai tendance à me réfugier dans les maths, en particulier dans les stats (statistiques mathématiques, pour ceux qui sont perdus). J'aime particulièrement utiliser la loi normale, mais vous pouvez utiliser un autre modèle si vous êtes à l'aise avec ça.

La loi normale peut être utilisée comme un outil quand on a une vague idée de la répartition d'une valeur donnée dans une population. Par exemple, prenons la valeur "Force" et posons grosso modo : 50% de ma population aura une force proche de la moyenne. On sort un un calculateur de loi normale, on renseigne deux paramètres appelés espérance et écart-type, et on modifie l'intervalle jusqu'à obtenir une probabilité proche de 50%. Puis on regarde les bornes de noter intervalle : elles déterminent les valeurs limites d'une force "moyenne".

En spoiler, je vous ai mis un exemple si je vous ai totalement perdus. Vu que cet article n'a pas pour but d'être un tutoriel.

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)



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 :famas


Persque arrivée au bout ! Il reste encore à parler de l'expérience, mais ce sera beaucoup plus rapide !

Reikon no Yume passe sur Danmakufu ph3 pre06a (adieu écrans intermédiaires useless et menus full jap)


slamante - posté le 27/11/2017 à 22:50:48. (49 messages postés)

Super intéressant, merci pour l'article:).

Perso j'ai un peu du mal avec les "maths" dans le sens ou ils ne sont pas réellement perceptible dans le gameplay je préfère me fier d'abord et avant tout à mon ressenti et à ce que je veux transmettre au joueur.

Suite à de nombreux abus, le post en invités a été désactivé. Veuillez vous inscrire si vous souhaitez participer à la conversation.

Haut de page

Merci de ne pas reproduire le contenu de ce site sans autorisation.
Contacter l'équipe

Plan du site:

Activité: Accueil | News | Forum | Flash-news | Chat | Commentaires | Galerie | Screen de la semaine | Sorties | Articles perso | Livre d'or | Recherche
Jeux: Index jeux séparés | Top Classiques | Top Originaux | Les autres | RPG Maker 95 | RPG Maker 2000 | RPG Maker 2003 | RPG Maker XP | RPG Maker VX | RPG Maker VX Ace | RPG Maker MV | Autres | Jeux complets | Proposer
Rubriques: Le Wiki | Collection Oniro | Tutoriaux | Scripts | Guides | Gaming-Live | Tests | Making-of | Interviews | Articles perso | OST | L'Annuaire | Divers | Palmarès
Hébergés: Aëdemphia | Fighting Robots Quest | Forstale | Geex | Inexistence | La Légende d'Ibabou | Lije | LoveMaster | Sarcia | Super Mario RPG - Lost Souls
Ressources: Jeux | Programmes | Packs de ressources | Midis | Eléments séparés | Sprites
RPG Maker 2000/2003: Chipsets | Charsets | Panoramas | Backdrops | Facesets | Battle anims | Battle charsets | Monstres | Systems | Templates
RPG Maker XP: Tilesets | Autotiles | Characters | Battlers | Window skins | Icônes | Transitions | Fogs | Templates
RPG Maker VX: Tilesets | Charsets | Facesets | Systèmes
RPG Maker MV: Tilesets | Characters | Faces | Systèmes | Title | Battlebacks | Animations | SV/Ennemis