Je développe un RPG 2d classique (dans le même sens que le fantasme final) et je me demandais si quelqu'un avait des conseils sur la façon de faire des formules de dommages / des liens vers des ressources / exemples? Je vais expliquer ma configuration actuelle. J'espère que je n'exagère pas avec cette question, et je m'excuse si mes questions sont trop larges / larges
Les statistiques de mes personnages sont les suivantes:
enum Stat
{
HP = 0,
MP = 1,
SP = 2,
Strength = 3,
Vitality = 4,
Magic = 5,
Spirit = 6,
Skill = 7,
Speed = 8, //Speed/Agility are the same thing
Agility = 8,
Evasion = 9,
MgEvasion = 10,
Accuracy = 11,
Luck = 12,
};
La vitalité est fondamentalement la défense contre les attaques physiques et l'esprit est la défense contre les attaques magiques.
Toutes les statistiques ont des maximums fixes (9999 pour HP, 999 pour MP / SP et 255 pour les autres). Avec les capacités, les maximums peuvent être augmentés (99999 pour HP, 9999 pour HP / SP, 999 pour les autres) avec des valeurs typiques (au niveau 100) avant / après capacités + équipement + etc. seront de 8000/20 000 pour HP, 800 / 2000 pour SP / MP, 180/350 pour autres statistiques
En fin de partie, Enemy HP sera typiquement dans les millions inférieurs (avec un super boss ayant un maximum de ~ 12 millions).
Je me demandais comment les gens développent réellement des formules de dommages appropriées qui s’échelonnent correctement? Par exemple, sur la base de ces données, l’utilisation des formules de dommages pour Final Fantasy X semblait très prometteuse. Une référence complète ici http://www.gamefaqs.com/ps2/197344-final-fantasy-x/faqs/31381 mais à titre d'exemple rapide: Str = 127, commande 'Attaque' utilisée, ennemi Def = 34.
1. Physical Damage Calculation:
Step 1 ------------------------------------- [{(Stat^3 ÷ 32) + 32} x DmCon ÷16]
Step 2 ---------------------------------------- [{(127^3 ÷ 32) + 32} x 16 ÷ 16]
Step 3 -------------------------------------- [{(2048383 ÷ 32) + 32} x 16 ÷ 16]
Step 4 --------------------------------------------------- [{(64011) + 32} x 1]
Step 5 -------------------------------------------------------- [{(64043 x 1)}]
Step 6 ---------------------------------------------------- Base Damage = 64043
Step 7 ----------------------------------------- [{(Def - 280.4)^2} ÷ 110] + 16
Step 8 ------------------------------------------ [{(34 - 280.4)^2} ÷ 110] + 16
Step 9 ------------------------------------------------- [(-246)^2) ÷ 110] + 16
Step 10 ---------------------------------------------------- [60516 ÷ 110] + 16
Step 11 ------------------------------------------------------------ [550] + 16
Step 12 ---------------------------------------------------------- DefNum = 566
Step 13 ---------------------------------------------- [BaseDmg * DefNum ÷ 730]
Step 14 --------------------------------------------------- [64043 * 566 ÷ 730]
Step 15 ------------------------------------------------------ [36248338 ÷ 730]
Step 16 ------------------------------------------------- Base Damage 2 = 49655
Step 17 ------------ Base Damage 2 * {730 - (Def * 51 - Def^2 ÷ 11) ÷ 10} ÷ 730
Step 18 ---------------------- 49655 * {730 - (34 * 51 - 34^2 ÷ 11) ÷ 10} ÷ 730
Step 19 ------------------------- 49655 * {730 - (1734 - 1156 ÷ 11) ÷ 10} ÷ 730
Step 20 ------------------------------- 49655 * {730 - (1734 - 105) ÷ 10} ÷ 730
Step 21 ------------------------------------- 49655 * {730 - (1629) ÷ 10} ÷ 730
Step 22 --------------------------------------------- 49655 * {730 - 162} ÷ 730
Step 23 ----------------------------------------------------- 49655 * 568 ÷ 730
Step 24 -------------------------------------------------- Final Damage = 38635
J'ai simplement modifié les diviseurs pour inclure l'évaluation de l'attaque des armes et l'évaluation de l'armure de l'armure.
Les dégâts magiques sont calculés comme suit: Mag = 255, Ultima est utilisé, MDef ennemi = 1
Step 1 ----------------------------------- [DmCon * ([Stat^2 ÷ 6] + DmCon) ÷ 4]
Step 2 ------------------------------------------ [70 * ([255^2 ÷ 6] + 70) ÷ 4]
Step 3 ------------------------------------------ [70 * ([65025 ÷ 6] + 70) ÷ 4]
Step 4 ------------------------------------------------ [70 * (10837 + 70) ÷ 4]
Step 5 ----------------------------------------------------- [70 * (10907) ÷ 4]
Step 6 ------------------------------------ Base Damage = 190872 [cut to 99999]
Step 7 ---------------------------------------- [{(MDef - 280.4)^2} ÷ 110] + 16
Step 8 ------------------------------------------- [{(1 - 280.4)^2} ÷ 110] + 16
Step 9 ---------------------------------------------- [{(-279.4)^2} ÷ 110] + 16
Step 10 -------------------------------------------------- [(78064) ÷ 110] + 16
Step 11 ------------------------------------------------------------ [709] + 16
Step 12 --------------------------------------------------------- MDefNum = 725
Step 13 --------------------------------------------- [BaseDmg * MDefNum ÷ 730]
Step 14 --------------------------------------------------- [99999 * 725 ÷ 730]
Step 15 ------------------------------------------------- Base Damage 2 = 99314
Step 16 ---------- Base Damage 2 * {730 - (MDef * 51 - MDef^2 ÷ 11) ÷ 10} ÷ 730
Step 17 ------------------------ 99314 * {730 - (1 * 51 - 1^2 ÷ 11) ÷ 10} ÷ 730
Step 18 ------------------------------ 99314 * {730 - (51 - 1 ÷ 11) ÷ 10} ÷ 730
Step 19 --------------------------------------- 99314 * {730 - (49) ÷ 10} ÷ 730
Step 20 ----------------------------------------------------- 99314 * 725 ÷ 730
Step 21 -------------------------------------------------- Final Damage = 98633
Le problème est que les formules s’écroulent complètement dès que les statistiques dépassent 255. En particulier, les valeurs de Defence supérieures à 300 commencent à générer un comportement vraiment étrange. Les statistiques Haute résistance + Défense mènent à des valeurs négatives massives par exemple. Bien que je puisse peut-être modifier les formules pour fonctionner correctement dans mon cas d'utilisation, il serait probablement plus facile d'utiliser une formule complètement nouvelle. Comment les gens développent-ils réellement des formules de dommages? J'envisageais d'ouvrir Excel et d'essayer de construire la formule de cette manière (par exemple, en cartographiant Statistiques d'attaque et statistiques de défense), mais je me demandais s'il existait un moyen plus simple? Bien que je ne puisse pas expliquer ici les mécanismes de jeu complets de mon jeu, quelqu'un pourrait-il être en mesure de suggérer un bon point de départ pour la création d'une formule de calcul des dégâts?
Merci
la source
Réponses:
Créer de telles formules nécessite une connaissance des fonctions mathématiques élémentaires , des éléments que vous avez appris dans les cours d'algèbre et de pré-calcul.
Une fois que vous avez maîtrisé ceux-ci, demandez-vous simplement (remplacez "valeur" par "dommage" ou "santé" ou "vitesse" ou autre) :
Ensuite, ajustez-le (ajoutez / multipliez des éléments, changez la valeur de base, etc.) jusqu'à ce que vous sentiez le résultat souhaité. Une calculatrice graphique vous aidera à visualiser comment les modifications apportées aux paramètres affecteront la fonction.
À propos, les problèmes que vous rencontrez sont dus à des débordements d’entiers .
Utilisez des types de variable suffisamment volumineux pour contenir les nombres avec lesquels vous travaillez. Les tailles diffèrent d'une plate-forme à l'autre en C ++, mais l'utilisation du compilateur Visual Studio
unsigned int
32 bits est de 32 bits, alors queunsigned __int64
(spécifique à MS) est de 64 bits. Pensez aussi à utiliser undouble
.En outre, essayez de réorganiser vos opérations de sorte que vous ne rencontriez pas un nombre aussi important en premier lieu (par exemple, plutôt que de le
MDef * MDef / 110
faire(int)((float)MDef / 110 * MDef)
) .la source
__int64
plusuint64_t
parce questdint.h
n'est pas disponible sur Visual Studio 2008 et inférieur, et je ne voulais pas confondre le pauvre garçon plus qu'il ne l'est déjà.Il y a votre vrai problème: vous avez défini vos statistiques avant de définir ce que ces statistiques réellement dire . Vous mettez la charrue avant les bœufs.
Regardez comment D & D (table) fonctionne. "Force" ne veut rien dire en soi; cela signifie seulement quelque chose parce qu'il y a une règle qui dit: "Ajoutez votre bonus de force à votre attaque de mêlée." Cette règle fait partie des règles de combat de D & D. Sans règles de combat, la "force" est généralement une quantité dénuée de sens.
La première question que vous devez vous poser est la suivante: quelle différence dois-je vouloir entre les personnages? Encore une fois, regardez D & D. Là, ils ont 6 statistiques de base. Ces statistiques définissent différentes dimensions du jeu pour les personnages. Un personnage avec une dextérité élevée aura différentes options d'un personnage avec une faible dextérité.
Mais la raison de cette différence, tout revient aux règles. Une dextérité élevée signifie des bonus aux attaques à distance; vous pouvez frapper plus souvent avec des attaques à distance. Donc, entre la force et la dextérité, vous avez deux dimensions du jeu: distance contre mêlée.
L'intelligence et la sagesse forment également une sorte d'appariement, mais celles-ci interagissent davantage avec des classes spécifiques. Int améliore les sorciers et autres lanceurs de sorts arcaniques (ou possible selon certaines règles), la sagesse est essentielle pour les clercs et les autres lanceurs de sorts divins. Parce que les sorts divins et arcaniques ont des listes de sorts différentes, ces deux statistiques sont impliquées dans différentes dimensions du jeu.
Vous devez définir les règles de base relatives aux statistiques avant de pouvoir définir les fonctions de progression de la croissance, etc. Vous n'avez pas besoin de détails. vous n'avez pas besoin de dire que "chaque point de force est ajouté au lancer aléatoire pour déterminer si une attaque de mêlée est touchée". Ce dont vous avez besoin, ce sont des méta-règles telles que "la dextérité améliore les attaquants à distance". Vous pouvez comprendre exactement comment cela les rend meilleurs plus tard.
Il y a différentes façons de faire progresser les personnages. Un truc commun de Final Fantasy à l'ancienne école consistait simplement à utiliser le niveau du personnage dans le calcul de leurs dégâts. Cela pourrait simplement consister à multiplier le niveau par la statistique appropriée ou à appliquer une fonction au niveau du personnage. Disons une progression quadratique, de sorte que le taux de dégâts d'un personnage augmente par niveau.
Cependant, si vous voulez que vos fonctions de combat fonctionnent, elles doivent prendre en compte la progression. Vos fonctions ont besoin de crochets pour progresser.
D & D a une drôle de progression. C'est une partie basée sur la classe; chaque fois que vous montez dans le niveau, vous obtenez de nouvelles fonctionnalités de classe et un bonus plat à toucher, en fonction de votre classe de personnage. Cependant, certaines caractéristiques de la classe se sont améliorées d'elles-mêmes. Les sorts dans D & D auraient une progression intégrée. Un sort peut faire 1d4 dégâts par 2 niveaux d’un lanceur de sorts au-dessus du premier. Ainsi, tous les autres niveaux d’assistant améliorent ce sort.
D & D a également beaucoup utilisé la progression par produit. Jusqu'à la 4ème édition, la progression basée sur les objets était principalement destinée aux personnages en combat, mais même dans les éditions plus anciennes, les lanceurs de sorts avaient des objets qui leur donnaient des améliorations ou d'autres ajustements (ou leur donnaient des sorts à plat).
Les objets sont donc une autre chose que vos fonctions de combat doivent prendre en compte. Est-ce que les objets tamponnent juste une ou plusieurs statistiques lorsqu'ils sont équipés, ou font-ils autre chose? D & D était un peu étrange, dans la mesure où les statistiques changeaient rarement; les armes ont simplement causé des dégâts à XdY, éventuellement avec un bonus basé sur l’une de vos statistiques. Et c'était ça. Donc, votre seul moyen de faire plus de dégâts au combat était de trouver une meilleure arme. Dans de nombreux RPG de jeux vidéo, ils prennent en compte le niveau en plus d'une arme.
la source
Vos formules semblent assez compliquées. Je ne sais pas comment les développeurs de jeux de rôle professionnels gèrent cela, mais je recommanderais de mettre l'accent sur la simplicité. Essayez de trouver la formule la plus simple possible tout en intégrant la plage de statistiques que vous souhaitez utiliser. Par exemple, pourriez-vous demander aux statistiques de se modifier avant le calcul des dommages plutôt que de les modifier pendant le calcul? Une fois que vous avez une formule en tête, je vais essayer de la représenter graphiquement pour un large éventail de valeurs possibles afin de voir comment celle-ci se comportera à mesure que les joueurs évolueront. Évidemment, moins vous avez de variables, plus elles seront réalisables.
De plus, BlueRaja a fourni une explication importante de la raison pour laquelle vous pourriez voir des valeurs inattendues à des niveaux de statistiques plus élevés. L'utilisation de types non signés et la recherche de débordements seront importantes.
la source
Cela me pose un problème. Vous devriez former vos patrons autour de ce que vous pensez que vos joueurs devraient pouvoir gérer. Vous construisez vos joueurs et votre formule de combat autour de ce que vous voulez que vos patrons soient.
Une fois que vous avez défini vos mécanismes de combat et vos rôles, vous pouvez alors décider de la manière dont vous souhaitez concevoir vos chefs, ce qui devrait constituer un bon équilibre entre les dommages que les joueurs peuvent infliger / absorber et ceux que le patron peut infliger / absorber.
la source
Les chiffres que vous avez cités sont probablement dérivés d'une simple simulation d'une simulation, sur des milliers d'essais.
Vous devriez donc écrire une simulation pour créer un personnage de niveau 20 et voir comment il se bat lors de 200 batailles ou plus contre les types d’ennemis qu’il est censé combattre à ce stade. Recommencez pour un personnage de niveau 30 (probablement dans la prochaine section du monde).
Cela prendra du temps, mais écrire des simulations automatisées rendra cela beaucoup plus facile que de deviner et de le jouer manuellement.
la source
Je pense que vous faites l'erreur de vouloir créer une formule sans en avoir une conception adéquate.
Commencez d'abord par un dessin, puis réfléchissez à la représentation du dessin dans les formules. Plus votre conception est claire, plus il devrait être facile de trouver des formules simples et / ou précises.
Essayez d'implémenter des "types" d'ennemis, par exemple "armored" => une attaque de joueur si elle est de type physique est réduite de 50%. Ne faites pas un flot de bataille pour résumer, réfléchissez à ce qui est pertinent et à ce qui ne l’est pas.
Si votre conception indique que les "ennemis blindés" sont faibles contre la magie mais puissants contre les dégâts physiques, représentez-les dans le code. Mais rappelez-vous que vous avez effectué de nombreux tests, car les valeurs ne fonctionneront pas comme par magie la première fois que vous écrivez le code. Essayez de créer une conception, de mettre la logique dans le code, de toujours vérifier si ceci est la représentation technique de ce que vous aviez à l’esprit et si cela ne change pas les valeurs jusqu’à ce
la source
Bien que ma conception n'ait pas quitté la phase de feuille de calcul, je suis parvenue à une conclusion concernant la conception des mathématiques pour RPG:
Gardez-les aussi simples que possible. Dans la conception sur laquelle je travaille, j'ai utilisé des formules très simplistes, adéquates pour des systèmes sans classe. C'est à dire. Les sorts de boule de feu ont 30 points de dégâts. Le forumal est:
Nous pouvons aussi ajouter des modificateurs comme ceci:
Donc, le résultat final serait de 45 dégâts. J'ai trouvé qu'il est très facile d'utiliser des multiplicateurs de pourcentage, et une solution très évolutive. Au lieu de venir avec des nombres impairs avec des mathématiques complexes pour comprendre le résultat souhaité.
Maintenant, nous pouvons calculer la résistance aux dégâts, cela ne fera que calculer la défense contre le type de dommage défini. Il existe deux approches et, honnêtement, je n'ai pas encore décidé laquelle conviendrait le mieux, mais elles sont toutes deux simples et viables:
Donc, le résultat final sera pris 22 dommages (je viens de couper le résultat partiel).
Autre formule:
Le résultat final sera donc 23. Si la résistance est supérieure aux dégâts subis, le personnage ne subit aucun dommage. Bien sûr, c’est à vous de vous assurer que cette situation n’a pas sa place, sauf quand vous le souhaitez.
Bien que je dois admettre que la réduction d'échelle en pourcentage est un peu plus facile à équilibrer et à mettre à l'échelle. Mais cela dépend aussi de vos numéros de base. La mise à l’échelle en pourcentages fonctionnera mieux si vous commencez à partir de 100 ans et plus. Si vous opérez sur de petits nombres (tout en dessous de 100 pour être honnête), cela peut devenir gênant car vous commencerez à obtenir des résultats en virgule flottante, ce sera difficile à équilibrer et vous ne ferez rien d'intéressant avec eux.
La solution optimale dans ce cas est probablement d’utiliser les deux approches quand elles le souhaitent. Ou si vous êtes fan de gros numéros, commencez à 1000.
Et à la fin se termine. Je ne suis pas arrivé à cette conclusion complètement par moi-même. En fait, j'ai passé pas mal de temps à lire divers manuels RPG (Hero, DnD). DnD était particulièrement utile, car il fonctionne sur des principes similaires, mais au lieu d'attributs, il utilise des niveaux pour ses formules, elles peuvent parfois être plus complexes. Que ce que j'ai présenté ici.
Dans tous les cas, le meilleur conseil est: essayez de les garder aussi simples que possible. N'utilisez pas de mathématiques avancées, ni de longues équations, car elles sont sujettes aux erreurs, difficiles à repérer, lorsque vous devez traiter 87234 d'autres choses en même temps.
la source
Comme d'autres l'ont mentionné, la formule de Final Fantasy X est assez complexe. Généralement pour cette série, plus le jeu est tardif, plus la formule est compliquée. Il est probablement plus facile de baser entièrement votre formule de dégâts sur un autre jeu. Mais en général, je pense qu’il est intéressant de discuter, à un niveau très général, du type de formules de dommages que vous pouvez trouver dans le monde et de la façon dont vous pouvez créer un jeu basé sur ces formules. La première chose que vous devez décider est combien de dégâts voulez-vous pouvoir faire à la fin de la partie et quel type de statistiques voulez-vous que le joueur puisse avoir? Une fois que vous avez cela, vous pouvez choisir un système de formule, puis optimiser les valeurs de la formule et de l'arme pour refléter ces plages dans le temps.
Purement stat
C’est une bonne idée si vous voulez que vos personnages fassent preuve de souplesse quant aux niveaux d’ennemis qu’ils peuvent combattre. Une formule comme celle-ci ne dépendra que des statistiques du joueur, de son équipement et des statistiques des ennemis. Ces formules sont généralement assez simples. Final Fantasy Legend II (voir http://www.shenafu.com/ffl2/weapon.php, par exemple, a des armes qui causent des dégâts basés sur la formule simple:
Une formule comme celle-ci est utile si vous souhaitez utiliser une méthode très simple pour estimer les dégâts, ou un point de départ rapide pour modifier les dégâts en fonction d'autres facteurs tels que les compétences et les faiblesses élémentaires.
Pour montrer la portée de ce type de formule, considérons la formule de dommage pour Inflation RPG, un jeu Android et IOS (Voir http://inflation-rpg.wikia.com/wiki/Calculations ). La formule dépend fortement des statistiques et de l'équipement. Chaque équipement a deux statistiques: un bonus sur les statistiques ATK et un multiplicateur. Certaines pièces d'équipement ont des multiplicateurs bas, mais des bonus élevés, d'autres ont des bonus faibles mais des multiplicateurs élevés. Pour un personnage n'ayant que 10 ATK, le Battle Axe avec son bonus de 5000 ATK mais un faible multiplicateur de 145% est un excellent choix. Les dégâts totaux sont
(10+5000)*1.45 = 7264
, mais l'Estoc, avec 0 bonus et un multiplicateur de 300% est un mauvais choix - les dégâts sont(10+0)*3 = 30
. Plus tard dans le jeu, un personnage avec 5000 attaques préférera changer d’arme.Statistiques et niveaux:
Final Fantasy V, VI et Final Fantasy XII en sont un bon exemple (voir http://www.gamefaqs.com/ps2/459841-final-fantasy-xii/faqs/45900 , par exemple). La formule pour les épées dans FFXII est la suivante:
et la formule des dommages pour les portées est:
Ils sont très similaires, mais notez que la formule de l'épée ne dépend que de la force et du niveau, tandis que la formule du bâton dépend de la force, de la magie et du niveau. L’avantage de ce type de formule est qu’elle offre au joueur deux possibilités de croissance: l’établissement de ses statistiques ou l’augmentation de ses niveaux. L'inconvénient est que cela pénalise également les personnages dans les deux sens. En fin de compte, cela permet au joueur d’augmenter son niveau de dégâts (pour FFXII, cela équivaut à une augmentation de ~ 4% de ses dégâts par niveau autour du niveau 50 lorsque vous prenez en compte les gains de statistiques), ce qui vous permet de personnaliser la difficulté en fonction de la difficulté. niveau de confort.
Dommages fixes:
Les formules de dégâts fixes ne dépendent pas des statistiques ou du niveau du personnage, elles dépendent uniquement de la formule de dégâts interne de l'arme elle-même. Ils peuvent toujours varier sur une plage donnée, mais ils infligent les mêmes dommages quel que soit l'utilisateur (à l'exception de tout autre effet spécial ou trait de caractère). Ils sont mieux utilisés si l'arme doit causer des dégâts fixes et que la capacité à équiper l'arme dépend des statistiques et / ou du niveau. Diablo 2, par exemple, s’acquitte de cette tâche, comme le font de nombreux imitateurs qui possèdent des armes dépendantes du résultat final. Cela étant dit, les «dommages fixes» n'impliquent pas «non aléatoires» - et en fait, les dommages causés sont généralement aléatoires.
C’est une bonne méthodologie si vous voulez des armes faciles à transférer entre les personnages ou pour contrôler soigneusement les dégâts que les personnages peuvent causer à certains moments du jeu si vous savez à quel matériel ils ont accès (via des tables de dépôt, des coffres, etc.). , et voler des tables).
Vous rencontrerez un autre endroit avec certains types d’équipements ou d’articles de Final Fantasy. 1000 Aiguilles, par exemple, infligent toujours 1000 dégâts. Dans Final Fantasy Legend II, les arts martiaux infligent des dégâts selon la formule suivante:
Final Fantasy XII a également corrigé quelque peu les dégâts causés aux armes à feu, selon la formule suivante:
Bien que les dégâts soient quelque peu aléatoires, ils ne varient que de 26,5% sur toute la plage. Vous êtes donc assuré de faire un certain niveau de dégâts en moyenne dans le temps. Ces types d'attaques sont utiles pour les personnages qui ont à la fois des statistiques faibles et des niveaux faibles dans les jeux qui prennent normalement en compte ces facteurs pour infliger des dégâts. De plus, ils ignorent la défense de la cible (bien que la formule puisse être facilement retravaillée pour s’intégrer à la défense si vous le souhaitez).
la source
tous les jeux de la série finale de fantasy ont eu une limite de statistiques de 255 en raison du problème que vous rencontrez. au niveau 100, les statistiques seraient de 255.
vous parlez d'augmenter les statistiques avec les capacités et l'équipement et je me souviens de l'avoir vu dans les jeux, mais la façon dont cela est fait est dans la formule. une étape supplémentaire consiste à vérifier les modificateurs de capacité et d'équipement et à les appliquer après l'utilisation des statistiques.
dans votre cas, il s'agirait de l'étape 21: appliquer les modificateurs de capacité, étape 22: appliquer les modificateurs d'équipement, étape 23: dommage final.
si vous êtes intéressé google pour les formules de fantasy finale, ils sont là-bas. J'ai des copies des mécanismes de combat réels, y compris l'intelligence artificielle pour Final Fantasy 4, 6, 7 et 9. Certaines personnes les ont piratés par rapport aux jeux originaux alors qu'ils créaient des roms pour des émulateurs. Il n’est pas si difficile à trouver si vous regardez assez fort.
la chose la plus importante pour la création de formules est le test. configurez un script pour gérer votre esprit de combat des deux côtés et plusieurs centaines de batailles. varier les monstres et les statistiques et voir si cela fonctionne ou si le lv 40 tue tout, il est tout à fait possible qu'un patron est réellement impossible de tuer lol. Un conseil serait de désactiver toute animation car il est impressionnant de voir à quelle vitesse les IA peuvent se battre lorsque personne ne les regarde.
la source
Les 2 premières choses sont:
Une fois que vous savez cela, vous avez suffisamment d’informations pour utiliser les formules mathématiques mentionnées par BlueRaja dans sa réponse . Rappelez-vous qu’il n’existe pas de formule «appropriée» pour les dégâts - une formule qui correspond à votre conception pour le type d’expérience que vos joueurs souhaitent vivre.
la source
alternativement, si vous cherchez une formule très simple, procédez comme suit:
(Notez que ceci est mon idée pour une formule,)
Premièrement, pour une formule d'attaque simple, vous n'aurez besoin que de quelques statistiques. La statistique d'attaque du joueur (cela peut être la force ou la magie, selon le type de mouvement).
Ensuite, créez une variable, appelée MovePower. Cela dépendra du déménagement, et de meilleurs mouvements auraient un meilleur MovePower. Pour mes formules, les commandes générales "Attack" ont un MovePower de 5.
Ensuite, faites de la défense une statistique basée sur un pourcentage (et, bien sûr, il est impossible d’obtenir une défense à 100% sur les dégâts)
Puis, pendant la phase d’attaque, multipliez simplement la statistique d’attaque par la puissance de déplacement et supprimez les dégâts en fonction de la défense de vos ennemis! Facile!
Vous pouvez également choisir d’avoir d’autres modificateurs, comme par exemple si le coup va frapper (Précision), si le coup a un autre effet ajouté (Bio, infliger un poison,) et opter pour que le coup (Frappe à nouveau,) subisse des dégâts améliorés / dégradés. déplace qui change les statistiques, ect. Aie du plaisir avec ça!
la source
En substance, vous devez comprendre deux choses.
1
Vous pouvez soit l'utilisateur,
double
soit une bibliothèque de grands nombres. Faire des calculs avec de grands nombres (comme dans les jeux en cliquant / inactifs repose souvent sur de telles bibliothèques de grands nombres). Dans votre cas, les nombres étant relativement petits, l’utilisation de la virgule flottante 64 bits donnera la souplesse nécessaire.2
Comment voulez-vous que le jeu se comporte? quelques exemples:
ATK
décider si vous frappez ou non et à lancer un dé avec un indice de dégâts connu en fonction de l'arme: par exemple, longue épée 1d8, épée à deux mains 1d10, poignard 1d4. Cela ne s’étendra pas étonnamment bien si la puissance en chevaux peut continuer à pousser. Si vous utilisezATK
pour déterminer si les personnages réussissent ou non, vous pouvez effectuer un autre lancer après un succès réussi avecATK
* 80% pour déterminer les coups critiques.(ATK - DEF) +/- 20%
dans World's End (un jeu de stratégie RPG). Cela signifie que les attaques contre un adversaire fortDEF
ne peuvent causer aucun dommage. Pour instaceATK = 10
,ENEMY DEF = 12
,(ATK - DEF) = -2
et cela signifie aussi que l' attaque élevée contre def légèrement plus bas, pourrait faire peu de dégâts, ce qui pourrait faire des batailles plus avec l' augmentation de HP. Par exemple, avecATK = 1010
,ENEMY DEF = 1005
les dégâts seraient de 5. Les dégâts augmenteront aussi considérablement maintenant si on lesATK
augmente d'un petit pourcentage. Par exempleATK = 1055
, fera 900% plus de dégâts avec seulement une augmentation de 5%ATK
.ATK / DEF * WEAPON_DAMAGE
ceci: Ceci augmentera graduellement lorsqueATK
ouDEF
sera augmenté et permettra à un attaquant faible d’endommager une créature avec une forteDEF
.tl; dr Vous devez traiter vos numéros de manière responsable et déterminer comment vous voulez que le jeu se comporte dans différentes situations. Quelques questions à vous poser:
x
combat? Devrait-il être sans espoir, gagner devrait-il êtrey%
moins / plus probable?la source