JeuWeb - Crée ton jeu par navigateur
Formules 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 : Gameplay, gamedesign (https://jeuweb.org/forumdisplay.php?fid=48)
+--- Sujet : Formules de combat (/showthread.php?tid=3959)

Pages : 1 2 3


RE: Formules de combat - Delkaes - 12-05-2009

Jeu de rôle papier (call of cthulhu, cyberpunk 2020, Kult, etc etc)
Tu trouvera tout dans les jeux de rôles, compétences, formules, backgrounds etc.


RE: Formules de combat - Ter Rowan - 13-05-2009

(12-05-2009, 07:47 PM)Gabriel a écrit :
Code :
$aléatoire = rand(1,5) //dégats du simple au quintuple (j'exagère pour qu'on voit bien)

$dégats_totaux = ($attaque_joueur - $defense_adversaire)*$aléatoire
Si $attaque_joueur - $defense_adversaire est négatif (càd que l'adveraire est plus fort que l'attaquant) alors avec l'aléatoire les dégats seront toujours négatifs !

Actuellement si les dégâts sont négatifs je les mets égaux à 0 grâce à un "if" donc pour moi ça ne change rien

mais si tu mettais de l aléatoire en addition..

($att - $adv + $alea) * qqchose
$alea entre -5 et +5 (par exemple)

c'est là que tu introduis de l aléatoire
les dégats c'est dans un second temps

1) mettre de l aléatoire sur qui gagne la manche
2) mettre de l aléatoire sur les dégats


RE: Formules de combat - wild-D - 13-05-2009

J'éviterais d'avoir une addition simple si l'intervalle de valeur est pas fixe.
parce que sinon on va avoir bcp d'aléatoire à bas niveau: $att et $adv seront plutot faible; alors qu'à haut niveau ces valeurs seront bcp plus élevé et ton facteur additif lui qui n'a pas bougé devient tout petit en comparaison.
$dégats_totaux = ($attaque_joueur - $defense_adversaire)* $aléatoire
ça peut très bien fonctionner; à condition de choisir correctement l'interval de aléatoire^^
vu ta remarque j'en déduis que ton aléatoire est toujours positif... pourquoi ?
rien t'interdis de prendre des valeurs négatives: $aléatoire = rand(-5,5)

bon j'éviterais un intervalle équilibré; parce que là autant jouer à pile ou face (les joueurs de haut niveau apprécieraient moyen de voir que tous les combats sont à 50/50 ; sans compter que là on a des situation ridicule; si les attaque et def_adv sont égale; le combat sera toujours nul Big Grin).
un truc du genre $aléatoire = rand(-30,70)/100. Et tu rajoute un biais sur la formule de base: ($attaque_joueur - $defense_adversaire * $biais) * $aleatoire
$biais = (100 + rand(-10,10)) /100 (un biais aléatoire de 10% )
Enfin à toi de peaufiner ta formule (des chance que dans cette formule tu puisse faire apparaitre des carac de joueur, leur diff de niveau ou que sais-je)

la logique voudrait quand même que pour ce genre de détail tu parte du gameplay de ton jeu -condition que tu pose-:
- je veux que l'attaque et la défense soient équilibrée (ou à l'inverse favoriser l'attaque?la défense?)
- je veux que dans un combat le plus faible ait toujours au minimum 5% de chance de gagner
- je veux que les dégats soit au max de 50% des pv de la cible (pas de oneshoot)
- ...
pour ensuite rechercher la formule qui le fait.


RE: Formules de combat - keke - 13-05-2009

JdR papier : un jeu de role avec des vrais gens autour d'une vrai table qui utilise des règles émanent d'un vrai livre de règle.

Par exemple :
- Donjon et Dragon fournisse des règles assez simple à reprendre.
- L'oeuil noir des règles un peu trop simple, mais facile à coder
- JRTM avec toutes ces extensions fournie des règles particulièrement chiante à comprendre, à coder ... mais donne un certain réalisme.

Y'a quelques centaines de jeux de role ... à toi de t'inspirer de la source qu'il te faut.

Kéké


RE: Formules de combat - Mycroft - 13-05-2009

Juste une parenthèse pour dire qu'il ne faut pas nécessairement des règles compliquées pour faire un "bon" jeu.

Il y a plein de jeux avec des règles très simples comme les échecs, le go, othello mais pour autant il faut du temps pour les maîtriser (parfois une vie !).

De mon point de vue, c'est plus important d'avoir des vrais choix stratégiques que d'avoir un empilement de règles. (L'un n'exclue pas l'autre).


RE: Formules de combat - keke - 13-05-2009

Je rajoute à Mycroft qu'il n'est pas décemment possible de faire archi-réaliste.
Un combat à mort ne ressemble en rien à un combat de boxe, ni un combat de catcheur ou toute autres représentations possible.

Le réalisme est aussi perdu à partir du moment où l'on voit des actions : je donne un coup, il me donne un coup...

kéké


RE: Formules de combat - Ter Rowan - 13-05-2009

je ne suis pas complètement d'accord avec toi wild-d sur la formule que tu présentes

l'aléatoire multiplicatif ne doit pas être négatif ce serait trop dangereux

prenons un exemple du genre rand(-1, 10)

si j ai des rand à -1, je "retourne" le rapport de force

exemple :

Att 1000
Def 10

Att >>> Def


et bien avec un rand à -1, le défenseur occasionne des dégâts énormes (équivalent à si lui était 100 fois supérieur à l'attaquant


deuxieme exemple. ok avec -1, prenons alors -0.001 histoire de régler le cas précédent. Et bien avec égalité ça plante :

Att 100
Def 99

avec un rand à -0.001 on arrivera à des dégâts négligeables si la défense 'gagne' par rapport aux dégats d'une attaque 'gagnante'

d'où ma notion d'aléatoire à deux niveaux (on pourrait aussi rajouter un aléatoire sur la "cible", type de personnage, type d'organe, etc...)


après on peut considérer l'aléatoire non pas comme une valeur, mais comme une fonction de paramètre


le cas simple du départ est

att - def ==> on rajoute de l'aléatoire simple att - def + aléatoire

mais si on est sur "fonction du delta entre l'attaque et la défense alors il se passe telle ou telle chose" (ex : probabilité de maladresse, de succes spéciaux, etc...) alors l'aléatoire correspond à autre chose qu'à des variables "finies" rand (1,5)

dans ce cas extrême la formalisation de wild et la mienne sont équivalentes : ce n'est pas une valeur mais une (ou deux) fonction(s)

dans le cas "simpliste" (Att-Def) * $alea, le coeff multiplicateur me paraît avoir trop d'effets de bord.


RE: Formules de combat - wild-D - 13-05-2009

ter rowan, l'effet d'inversion est volontaire (après un peu abusé sur la formule présentée telle quelle son but était pas d'être réutilisée directe; mais d'introduire un effet d'automodération sur l'agressivité à outrance).

A la base j'aime justement cette formule pour cet effet de retournement. résultat ça évite que grosbill attaque newnoob "pour se la péter"... sans prendre le moindre risque.
là ben pas de bol t'as dégaine ton épée de la mort qui tue le dragon avant qu'il ait le temps de dire ouf pour trucider le pauvre paysan sans défense qui t'avait rien fait; et comble du ridicule tu t'encouble sur une racine et te tranche la gorge avec ta super épée.


après il existe mille est une façon de gérer ce genre modération inter-joueur/niveau. Celle-ci est surement pas la meilleure parce que là le retour de baton est très sévère (et vu la formule très fréquent)^^ y a plein de règle de jeu qui proposent des échecs critique un peu plus "réaliste".


RE: Formules de combat - Gabriel - 13-05-2009

Déjà pour répondre à la question de Wild-D sur les conditions que je pose, tu as très bien résumé :

- je veux que l'attaque et la défense soient équilibrée
- je veux que dans un combat le plus faible ait toujours au minimum 5% de chance de gagner
- pas de oneshoot si l'écart de niveau n'est pas trop grand( a la limite un niveau 80 contre un niveau 5 le one shoot passe quand serait quand même plus plausible)

Pour la multiplication avec de l'aléatoire négatif, je pensais exactement la même chose que Ter Rowan avec le retournement de force.

Vu le nombre de formules que vous m'avez proposez je vais faire des test en remplacant par des valeurs et peut être faire un "mix" entre plusieurs d'entre elles

EDIT : j'ai mis cette formule en place $degats = round( ($attaque_joueur / $defense_adversaire)*($attaque_joueur/4)*$aleatoire )

Ainsi il n'y a pas de valeur négative et la division permet d'occasionner quelque dégâts même si on est moins fort
Exemple
J1 ==> attaque = 250 ; Defense = 250
J2 ==> attaque = 200, défense = 200

Dégats de J1 sur J2 = 78 (sans l'aléatoire)
Dégâts de J2 sur J1 = 40 (sans l'aléatoire)

Leurs stats sont assez raprochées et leurs dégâts peu éloignés donc ça va je pense

Qu'en pensez vous ?


RE: Formules de combat - wild-D - 13-05-2009

on a pas le reste du jeu, c'est donc difficile de juger.

le fait d'être niveau 80 justifie qu'on puisse s'amuser à oneshooter les noobs :/
c'est pour moi crétin; après chacun ses goûts.
(enfin tous les jeux qui l'autorisent ont tendance à rajouter des tensions dans la communauté des joueurs pour quelque chose qui apporte quoi au jeu ?)