Les dommages par égratignure sont un mécanisme de jeu dans lequel toute attaque réussie inflige toujours un minimum de dégâts. Ceci est souvent utilisé dans les systèmes de combat soustractifs, où la défense est directement soustraite aux dégâts causés par un attaquant. Par conséquent, la cible subira toujours des dégâts minimes.
L'inconvénient d'un tel système, du moins pour moi, c'est que c'est un bidouillage. Il faut une formule simple comme Damage = Attack - Defense
et il se transforme en un plus complexe ( un peu) un: Damage = max(Attack - Defense, 1)
.
Je pense aussi que cela nuit aux compétences d’un joueur dans le développement de son personnage / etc. Peu importe le nombre de bonus de défense qu'ils reçoivent, chaque attaque fera de petits dégâts. Alors, pourquoi avoir votre défense si haute, si cela ne veut rien dire?
De plus, cela encourage maintenant l’utilisation de nombres plus importants pour la puissance et les dégâts, de sorte que les dommages causés par les rayures sont vraiment négligeables. Après tout, si le minimum de dégâts est de 1 et que vous n’avez que 10 CV, c’est toujours 10% de votre santé. Même avec 20 CV, c'est 5%. Et je préférerais éviter d’utiliser des chiffres plus importants comme celui-là, à moins que ce ne soit absolument nécessaire.
Cependant, il existe un avantage très important des dommages causés par les rayures: cela résout le problème de l'impasse.
Le blocage se produit lorsqu'aucun des camps n'est capable de causer des dommages à l'autre. Si vous investissez toutes vos ressources dans la défense et très peu dans l'attaque, votre personnage ne subira peut-être pas de dégâts, mais il ne sera pas en mesure de faire grand chose non plus. Ainsi, vous pourriez tomber sur une rencontre où aucune des deux parties ne sera capable d’infliger des dégâts. Le combat se poursuivra ainsi pour toujours. C'est surtout si vous n'avez pas de mécanismes aléatoires comme des coups critiques (que je déteste aussi).
Au moins avec les dommages causés par les rayures, quelqu'un finira par gagner. Ce ne sera peut-être que celui avec le plus grand nombre d'attaques ou le plus grand nombre d'attaques, mais la bataille se terminera.
J'aime donc avoir un système de combat où il y aura toujours un résultat. Mais je n'aime pas avoir les dommages causés par les rayures. Quelles sont mes alternatives?
Des alternatives qui n'impliquent pas de rouler des nombres aléatoires; Je veux que le combat soit déterministe à 100%. Si la même bataille est menée, le même résultat doit se produire.
Si vous voulez des détails sur le gameplay, pensez en termes de combat au tour par tour, où le combat peut être automatisé (vous concevez vos forces, puis vous les opposez aux autres).
la source
Réponses:
Vous pourriez mettre en place un système de fatigue / endurance. De plus en plus d'attaques sont effectuées, le joueur devient de plus en plus fatigué, ce qui signifie qu'il est incapable de maintenir une défense aussi efficace (le bras du bouclier commence à se sentir soudainement très lourd après avoir frappé l'épée 50 fois) lorsque la fatigue augmente, la défense tombe. Cela signifie qu'un joueur qui a développé un bon caractère ne subira pas de dégâts lors de rencontres rapides, mais des combats prolongés entraîneront une augmentation des dégâts évitant une impasse.
la source
Cela semble être une question très ouverte. Solutions (qui ne sont pas déjà mentionnées) pour éviter les blocages:
la source
En variante, vous pouvez ajouter une accumulation de plaie. Certes, une hache en cuivre géante ne pénétrera pas dans une armure lourde en acier, mais causera des dégâts contondants et pourrait même casser des os. La même chose est vraie pour les balles et les gilets.
Chaque fois qu'un personnage est touché, convertissez une partie des dégâts perçants et réducteurs en dégâts contondants, qui s'accumulent. Après un certain seuil (qui dépend de l'endurance, par exemple), les dégâts cumulés vont interférer avec les compétences de combat du personnage. Quelques options ici:
L'armure pourrait être moins efficace lorsque vous frappez dans les mêmes parties du corps.
Blessures importantes: lésions périodiques, faiblesse due à la douleur.
Blessures graves: perte de conscience à court terme (rendant le personnage très vulnérable).
Blessures extrêmes: perte permanente de statistiques (si le personnage parvient à survivre).
Connexes: Mécanique des dégâts dans la forteresse naine
la source
Mettez en œuvre différents types de dommages, avec des armures qui ne protègent que contre certains types de dommages. Par exemple, dommages cinétiques, dégâts acides, dégâts d’incendie, etc. Aucune armure ne devrait protéger de chaque type de dommage.
Les utilisateurs pouvaient superposer leurs armures pour se protéger contre tous les types de dommages, mais ils ne pouvaient pas se protéger contre tous les types de dommages en même temps. Cela met également en œuvre une stratégie dans les batailles, où les joueurs doivent changer de type de dégâts pour passer à travers les différentes couches d'armure.
la source
Vous pourriez simplement ne pas avoir de statistiques de défense et simplement donner à de plus grands ennemis une plus grande puissance. Je sais que vous voulez éviter des nombres gigantesques, mais si vous voulez un jeu déterministe à tour de rôle dans lequel les attaques ne sont pas basées directement sur les données des joueurs (aucune chance d'erreur humaine de gâcher l'attaque), la statistique de défense semble un peu inutile. ainsi que.
Si vous êtes préoccupé par l'aspect de la présentation, vous pouvez décomposer la HP en deux pépites Hearts ou Health EG 100 HP = 1 cœur. Les cœurs commencent à noircir lorsqu'un personnage perd des PV, puis disparaissent complètement. De cette façon, il est plus facile à comprendre pour le joueur que 129301239103123hp, mais vous n'avez pas à vous soucier d'équilibrer une équation magique.
Si le réalisme vous inquiète, vous pouvez toujours l’animer de façon à donner l’impression que la cible de l’attaque bloque avec succès ou qu’elle est légèrement rayée jusqu’au coup mortel.
la source
Ajouter un mécanicien usé pour la défense. Faire chaque attaque légèrement réduit la défense de la cible.
Finalement, même une attaque faible épuisera suffisamment la défense de la cible pour infliger des dégâts réels.
la source
Si vous êtes d'accord pour sortir du monde des nombres entiers et que vous souhaitez améliorer le système de soustraction, vous pouvez utiliser l'algorithme de réduction des dégâts de Warlords Battlecry III:
C'est la fonction qui se comporte de manière très similaire au pseudocode ci-dessus:
Lorsque DR est inférieur à l'attaque (dégâts entrants), il se comporte comme l'attaque - k * DR où k est égal
ln(2)
à 0,693 ( pour être exact). Lorsque DR est proche de ou plus grand, les dégâts entrants sont divisés par deuxDR/attack
. Par exemple, pour DR = 30 et attaque = 10, les dégâts seraient de 1,25 (attaque divisée par deux en 3).Cela peut sembler plus compliqué et plus difficile à évaluer par l’homme, mais il n’est pas piraté et les modifications des deux paramètres sont pertinentes. Si l'attaquant gagne un bonus de puissance d'attaque ou si le défenseur gagne ou perd le RD même ne serait-ce que par petites quantités, les dégâts en résultant changeront.
la source
Utilisez des flotteurs.
Même si vous présentez un nombre entier HP au joueur, utilisez float pour hp et float pour les dégâts.
J'utilise actuellement des classes d'armures fractionnaires, où une armure de 1,0 est invincible et une armure de 0,0 signifie "prend tous les dégâts". Les dommages sont réduits comme suit:
Cette formule a pour effet de permettre "le double dommage" en mettant l'armure à -1.
J'ai également classé les dommages en catégories, voir les types de dommages par commotion / explosion de Starcraft, ou le système de type de dommages d'Eve pour un exemple.
Alors maintenant, un petit lutin égratignera votre armure de classe 99 qui finira par vous tuer par Cherry Tap , mais les attaques sembleront ne pas causer de dommages au joueur prochaine attaque ..)
la source
Un graphique de compétences pourrait mettre certaines compétences en matière de dégâts comme des conditions préalables pour des compétences défensives de niveau supérieur afin de réduire la capacité d'un joueur à créer des formations hautement asymétriques.
Les coups critiques peuvent être endommagés tant que la défense n'est pas ridiculement élevée. Si vous les rendez périodiques plutôt que aléatoires, vous avez toujours un combat déterministe.
Après un certain nombre de coups manqués, vous pouvez automatiquement réduire la vitesse d'attaque au profit de chances de coup plus élevées et de dégâts plus importants. Votre personnage ultra-rapide à gratter faisait dix attaques par seconde; Désormais, après quinze attaques ne causant aucun dégât, il en subit trois par seconde à + 50% et + 200% des dégâts. Cela ressemble aux coups critiques, mais c'est plus rapide pour ce genre de situation.
Vous pouvez utiliser une réduction des dégâts basée sur le pourcentage d'armure, mais pour la rendre plus intéressante qu'un autre moyen de renforcer votre HP maximum, le pourcentage de réduction peut être plus élevé pour les coups plus faibles. Par exemple, réduction de 90% pour 1-20 CV de dégâts, 60% pour 20-30, et 30% pour tout le reste.
Enfin, ne vous inquiétez pas des grands nombres. Ils vous donnent un degré de contrôle beaucoup plus fin que les petits. Avoir un personnage de niveau 1 commençant avec 100 points de vie signifie que vous pouvez avoir quelque chose qui le tue en sept coups, mais pas cinq. Cela signifie que vous pouvez avoir des dégâts empoisonnés et d'autres effets sur le temps qui ne sont pas outrageusement dévastateurs (ainsi que d'autres, si vous voulez). Si vous n'aimez pas afficher de grands nombres, trouvez un moyen de ne pas les afficher.
la source
Vous dites que vous voulez qu'il y ait toujours une résolution, mais est-ce que cela doit être une victoire?
Considérez l'approche utilisée par les dominions : au tour 50, l'attaquant déroute automatiquement. Au tour 75, le défenseur déroute automatiquement. (Une déroute ne fonctionne pas automatiquement - certaines unités sont immunisées contre le routage et même si une unité immobile déroute, elle ne peut pas réellement partir.) Au tour 100, tout ce qui reste est tué.
Bien que je ne sois pas d’accord avec la manière exacte dont il fonctionne (il existe des situations où il faut tout simplement trop de temps pour tuer l’autre côté), l’idée de base reste valable.
Ce que je suggérerais:
Regardez une mesure de la puissance de chaque côté. (Les points de frappe sont un point de départ évident, mais soyez prudents, Dominions a un problème à cet égard où la "perte" de points de frappe qui n’a pas de sens est comptabilisée - changement de forme, invocation, etc. Même pas prendre.) Gardez une trace de la valeur minimale atteinte et notez combien de tours il a été depuis qu'un nouveau minimum a été défini. Si cela dure trop longtemps sans qu'un nouveau minimum ne soit défini, vous vous retrouvez dans une impasse et l'attaquant doit battre en retraite.
la source
Une alternative que je n'ai pas encore vue est que, comme votre valeur d'armure rend l'attaque négative, vous pouvez ajouter un peu de RNG pour un vrai bloc:
Plus le déficit de dégâts après l'armure est pris en compte, plus le personnage peut bloquer d'attaques avant de subir de nouveaux dégâts.
Cela donne un peu plus d’échelle aux statistiques défensives sans les rendre invulnérables, mais permet également aux attaques de passer à travers ce mécanisme si vous le souhaitez et évite naturellement les blocages.
Les combats peuvent prendre beaucoup de temps si vous avez accumulé des statistiques dans votre défense avant l'offensive, mais cela finira par y arriver.
la source
Beaucoup de jeux de combat en 3D évitent les dommages causés par les rayures. Tekken et Soul Calibur 2 en sont des exemples. Ils évitent cela en rendant difficile la mise en place d’une défense parfaite. Certaines attaques sont tout simplement trop rapides pour y réagir. Je pense que c'est une très bonne solution.
la source
Je pense que réduire l'efficacité de la Défense n'est pas une bonne option. Dépower un joueur conduit à une mauvaise expérience de jeu. Pourquoi ne pas aller dans le sens inverse?
Pourquoi ne pas renforcer l'attaque au fil du temps. Cela augmente les dommages causés par les rayures avec le temps, ce qui réduit l'incitation au blocage. En milieu de partie, un personnage peut en tuer un autre tout en gémissant sur lui pendant sa défense.
Certains fichiers pnp implémentent un "mécanisme de tension". Chaque tension de tour augmente de un. Tous les jets ont le modificateur ajouté de la valeur de tension, poussant la bataille à sa fin.
Une autre idée, issue de jeux de combat, est une attaque qui passe par la défense. Je ne sais pas si votre jeu est au tour par tour ou en temps réel, mais cette attaque peut également ouvrir l'adversaire à un combo ou désactiver temporairement son aptitude ou certaines de ses capacités.
Je crois que le truc n'est pas de sous-alimenter la défense. Faites d’autres options aussi bonnes que la défense ou réduisez le nombre de fois où la défense est une bonne option.
la source