JeuWeb - Crée ton jeu par navigateur
Formule mathématique - 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 : Formule mathématique (/showthread.php?tid=4363)



Formule mathématique - R-transat - 10-01-2010

Bonjour,

Je me suis posé une question pour une formule.

Tout d'abord il s'agit des PV pour quelqu'un qui aurait la classe infirmier donc +2% de PV pour lui donc admettons il a 53 PV, +2% ça fait 54.06 ensuite on ajoute le nombre de point de compétences que l'utilisateur aurait ajouté pour son personnage, prenons 14, donc 54.06 + 14 = 68.06 PV et pour ne pas laisser un avantages considérable contre ses adversaires je vais diviser le tout par 1.2 mais si en valeur de départ je prend maintenant 323 PV et en prenant 20 point de compétences le résultat final serait de 291.22... ce qui est en dessous de la valeur de départ... Donc comment faire pour que ça soit toujours au dessus ?

(+2% du nombrePV + nombrePtCompt) / 1.2

Merci d'avance.


RE: Formule mathématique - Zamentur - 10-01-2010

je ne vois pas l'intérêt de diviser par 1.2 .
En quoi le joueur serait avantagé?

NB: ce topic devrait être dans conception car il ne traite pas de développement mais des mécanisme de ton jeu!


RE: Formule mathématique - R-transat - 10-01-2010

SI on ne divise pas il serait justement trop avantagé... et il faut que je trouve le bon facteur pour trouver une valeur "raisonnable". Donc mon 1.2 devrait être remplacé par une autre formule mais laquelle ?


RE: Formule mathématique - Ekilio - 10-01-2010

Sans aller faire la démonstration mathématique (mais elle est faisable au besoin), est-ce vraiment nécessaire d'enlever le 1,2 ? Parce que mine de rien diviser par 1,2 c'est presque enlever 20% du nombre initial, c'est énorme et ça rends le bonus de 2% totalement dérisoire (déjà qu'à la base)...

Fait le calcul : si on est de cette classe et qu'on a donc 323 PV, on va gagner 2% soit 6,47 PV. C'est quasiment rien.
Maintenant on va aussi perdre le résultat de la division ; si on a pas mis de points de compétences, ça représente presque 27 PV. C'est presque quatre fois plus grand !

A mon avis, un avantage de 2% de HP est négligeable au niveau de l'équilibrage et surtout ne devrait pas être compensé par une division par 1,2, qui le supprime totalement ; d'autant que les 2% sont sur le nombre initial alors que la division se fait sur le nombre une fois augmenté (par les 2% et par les points de compétences) et donc aura toujours un total plus grand que l'augmentation de 2%.

Mais si tu veux vraiment faire cette division, soit tu donnes un bonus sur les points de compétences (par exemple, un point = 10 pv et pas un seul), soit tu le donne sur le pourcentage (10 ou 20% et pas 2).


RE: Formule mathématique - Sloop - 10-01-2010

En gros, tu veux donner un avantage aux joueurs en fonction de leur compétence.
Tu joues sur deux paramètres : classe d'infirmier et point de compétences.

Déjà, on ne saura pas t'aider à avoir LA formule. Tu dois modéliser et chercher un optimum. Il existe des théorèmes mathématiques pour les calculer (et oui, je viens tout de suite avec de grands mots et concepts). Si tu ne passes pas par la case analyse rigoureuse, c'est simple, tu fais à la main avec un Excel où tu simules différents cas, c'est-à-dire avec différentes valeurs pour la classe d'infirmier et les points de compétences mais aussi la loi que tu utilises.
Pourquoi pas une exponentielle du style (Pt de base + Pt de compétence)^(1+K*pt d'infirmier) où K est un facteur arbitraire ? ou une logarithmique du style (R * 1+Pt d'infirmier) * log_K (Pt de base+Pt de compétences) ?

Ce que je veux dire c'est que des modélisations il en existe plein ! Tu peux même diviser le tout par (Pt d'infirmier + Pt de compétences)^-3 ... -_-'


RE: Formule mathématique - R-transat - 10-01-2010

Merci de vos réponses ^^. Ekilio tu penserais à quoi toi comme autre formule ?

Sloop, merci pour tout ça Wink mais pourquoi K serait un facteur arbitraire ? autant ne pas le mettre dans ce cas, non ?
Pour tout ce qui est des logarithme je vais laisser ça de côté. Mais sinon oui j'avais pensé à faire quelque chose d'exponentielle pour que la valeur de fin soit toujours plus grande peut importe la valeur de départ.

Edit : Dans la formule (Pt de base + Pt de compétence)^(1+K*pt d'infirmier), qu'appel tu point d'infirmier ?


RE: Formule mathématique - Ekilio - 10-01-2010

A titre personnel j'aurais équilibré un peu différement : augmenter les points de vie et les baisser ensuite n'a pas vraiment de sens, si l'avantage des infirmiers est de pouvoir avoir plus de vie que les autres, ce n'est pas logique de les leurs retirer. C'est comme un tank dans un mmo : il a plus de vie, mais il fait moins mal.

Pour équilibrer, une technique qui je trouve marche pas trop mal est de prendre un personnage "moyen". Mettons par exemple qu'au niveau 1, les personnages aient une vie de 300 HP (pris au hasard). Par ailleurs, ils font 50 points de dégâts par coup en moyenne. Le but va être ensuite de répercuter toutes les modifications d'un coté ou de l'autre.

Prenons ton infirmier. Il a 2% de vie en plus ; on va donc lui enlever 2% de dégâts : au lieu de taper à 50, il tapera à 49. Par ailleurs, il a la possibilité de se soigner, j'imagine : donc il va nous falloir réduire encore les dégâts. Ou réduire leur armure : ils auront plus de vie mais seront moins résistants aux coups.

Et ainsi de suite. Ca n'a pas vraiment de sens je trouve de vouloir monter une caractéristique mais en même temps la descendre : une classe a un avantage, soit ; on lui met un inconvénient comparable, on ne le modère pas pour que ce ne soit plus un avantage.

Cela dit, ce n'est que mon point de vue, bien sûr !


RE: Formule mathématique - Ter Rowan - 11-01-2010

je suis un peu d accord avec tout ce que les autres ont dit, je pense que ton système n'est pas terrible terrible cependant pour te répondre

ce que tu proposes c 'est

PV = ( PV base + PV base * 0.02 + points de competences) / 1.2

mais ca te pose problème

dans ce cas en restant sur ton modèle (que j'aime pas trop cf réponse des autres) tu n'as qu a faire :

PV = PV base + ( PV base * 0.02 + points de competences) / 1.2
soit en fait

PV = PV base + (PV base * 0.02/1.2) + (points de competences / 1.2)
soit très grossièrement
1/1.2 = 0.8

PV = PV base + PV base * 1.6% + 0.8 points de competences

tout ca pour dire, si tu veux rester sur ce système ne cherche pas une formule tu l as: PV + PV classe + PV competences
mais plutôt travaille tes bonus :
- au lieu de 2% des PV tu mets 1.6%
- au lieu de 1point de competences = 1PV tu mets 1 point de competence = 0.8PV

et si c est trop ben change encore ces coefficients