Was ist eine Alternative zu Kratzschaden, um Deadlocks im Kampf zu lösen?


37

Kratzschaden ist eine Spielmechanik, bei der ein erfolgreicher Angriff immer nur minimalen Schaden verursacht. Dies wird häufig in subtraktiven Kampfsystemen verwendet, bei denen die Verteidigung direkt vom Schaden eines Angreifers abgezogen wird. Daher erleidet das Ziel immer minimalen Schaden.

Der Nachteil eines solchen Systems ist zumindest für mich, dass es ein Hack ist. Es dauert eine einfache Formel wie Damage = Attack - Defenseund verwandelt es in eine (leicht) komplexeres: Damage = max(Attack - Defense, 1).

Ich habe auch das Gefühl, dass es die Fähigkeiten eines Spielers bei der Entwicklung seines Charakters beeinträchtigt. Unabhängig davon, wie viele Verteidigungsboni sie erhalten, fügt jeder Angriff etwas Schaden zu. Warum also deine Verteidigung so hoch ansetzen, wenn es nichts bedeutet?

Darüber hinaus wird jetzt die Verwendung größerer Zahlen für PS und Schaden gefördert, so dass der Kratzschaden wirklich vernachlässigbar ist. Wenn der minimale Schaden 1 beträgt und Sie nur 10 PS haben, sind das immer noch 10% Ihrer Gesundheit. Selbst bei 20 PS sind das 5%. Und ich würde es lieber vermeiden, größere Zahlen wie diese zu verwenden, es sei denn, dies ist absolut notwendig.

Es gibt jedoch eine sehr wichtige Kehrseite des Kratzschadens: Es löst das Deadlock-Problem.

Deadlock tritt auf, wenn keine Seite der anderen Schaden zufügen kann. Wenn Sie alle Ihre Ressourcen in die Verteidigung, und nur wenige in Angriff investieren, dann ist dein Charakter annehmen kann nicht Schaden, aber sie werden nicht in der Lage zu behandeln entweder sehr viel. Auf diese Weise könnten Sie auf eine Begegnung stoßen, bei der keine Seite Schaden anrichten kann, sodass der Kampf für immer andauert. Dies gilt insbesondere, wenn Sie keine zufälligen Mechaniken wie kritische Treffer haben (die ich auch hasse).

Zumindest mit Kratzschaden wird irgendwann jemand gewinnen. Es kann nur derjenige sein, der die meisten HP oder die höchste Anzahl von Angriffen hat, aber der Kampf wird enden.

Ich mag es also, ein Kampfsystem zu haben, bei dem es immer ein Ergebnis geben wird. Aber ich mag keinen Kratzschaden. Was sind meine Alternativen?

Alternativen, bei denen keine Zufallszahlen gerollt werden. Ich möchte, dass der Kampf zu 100% deterministisch ist. Wenn dieselbe Schlacht ausgetragen wird, muss genau dasselbe Ergebnis eintreten.

Wenn Sie Einzelheiten über das Gameplay erfahren möchten, denken Sie an rundenbasierte Kämpfe, in denen die Kämpfe automatisiert werden können (Sie entwerfen Ihre Streitkräfte und treten dann gegen andere an).


8
Könntest du ein sich verschlechterndes Rüstungssystem (pro Begegnung) machen, um das Deadlock-Problem zu lösen?
Tetrad

1
Ich würde vorschlagen, dass Sie sich "Design Patterns of Successful Role-Playing Games" ansehen
Exilyth

3
Devil's Advocate-Position: Anstatt die Spieler zu zwingen, auf Nummer sicher zu gehen, sollten sie sich entscheiden, ob sie dumme Builds verwenden möchten, die zum Deadlock führen können.
Patrick Hughes

3
@PatrickHughes: Weil ich glaube, dass es ein schlechtes Spieldesign ist, dem Spieler zu erlauben, sich in eine schlechte Position zu bringen, ohne richtig gewarnt zu werden. Und selbst mit Vorwarnung müssen sie in der Lage sein, wieder herauszukommen , sobald sie sehen, dass es passiert. Wenn ihre Charakter-Design-Entscheidungen nicht rückgängig gemacht werden können, müssen sie im Vorfeld wissen, dass sie sich nicht permanent damit bescheißen, Entscheidungen zu treffen, die zu dieser Zeit als gute Idee erschienen.
Nicol Bolas

1
Die Kombination von rpg-design-patterns.speedykitty.com/doku.php/… mit rpg-design-patterns.speedykitty.com/doku.php/pattern:hit_points und fehlender Randomisierung führt zu dem in der Frage beschriebenen Problem. Das Problem könnte durch die Verwendung von rpg-design-patterns.speedykitty.com/doku.php/… oder eines rpg-design-patterns.speedykitty.com/doku.php/… behoben werden .
Exilyth

Antworten:


41

Sie könnten ein Ermüdungs- / Ausdauersystem implementieren. Wenn mehr und mehr Angriffe ausgeführt werden, wird der Spieler zunehmend müde, was bedeutet, dass er nicht in der Lage ist, eine so gute Verteidigung aufrechtzuerhalten (dieser Schildarm fühlt sich nach 50-maligem Schwingen des Schwertes plötzlich sehr schwer an), wenn die Müdigkeit zunimmt und die Verteidigung abnimmt. Dies bedeutet, dass ein Spieler, der einen guten Charakter entwickelt hat, in schnellen Begegnungen keinen Schaden erleidet. Längere Kämpfe führen jedoch zu mehr Schaden, wodurch ein Deadlock verhindert wird.


21

Dies scheint eine sehr offene Frage zu sein. Lösungen (die nicht bereits erwähnt wurden), um Deadlocks zu verhindern:

  • Berücksichtigen Sie Deadlocks als praktikables Endergebnis. Dies ist die am wenigsten erwartete oder typische Lösung. In einem RTS-Spiel kann dies beispielsweise ein unangenehmer Waffenstillstand oder ein angespannter, aber zurückhaltender Konflikt in einem gewaltsamen Gleichgewicht sein.
  • Eine zeitliche Begrenzung mit Krawatten ist zulässig
  • Eine zeitliche Begrenzung, bei der der erste Treffer / Punktestand / Punkt nach dem Limit gewinnt (plötzlicher Tod / Überstunden).
  • Zufällige Gefahren im System (a la bombs in Super Smash Bros ). Dies verändert den Fokus der Situation von offensiv auf defensiv.
  • Jeder externe Faktor, der das System aus dem Gleichgewicht bringt (z. B. ein dritter Agent mit hohem Schaden und geringer Rüstung, eine Vereinbarung beider Seiten, sich ohne die gesamte Rüstung zu "duellieren")
  • Verteidigung in% reduziert (wahrscheinlich die einfachste Lösung, solange die Verteidigung begrenzt ist)
  • Fertigkeiten oder Taktiken, die die Dynamik des Spiels verändern (Entscheidungen, die keinen Schaden verursachen, wie z. B. eine Umhang- / Unsichtbarkeitsfertigkeit)
  • Mittel, um viel höheren Schaden zu verursachen (klassische kritische Treffer, Stealth-Boni, Höhen-Boni, Terrain-Boni, eine Fähigkeit, die zufällige Teile des Bodens in Lava verwandelt)
  • Mittel zum Beschädigen oder Verringern der Rüstung oder zum Verursachen eines Schadens, der direkt auf Charaktere mit hoher Verteidigung abzielt (Fertigkeit, die die Rüstung in die Berechnung einbezieht, sodass Agenten mit geringerer Verteidigung weniger Schaden erhalten)
  • Gegenstände oder Fertigkeiten mit eingeschränktem Gebrauch (z. B. Bomben, mächtige, aber erschöpfende Fähigkeiten). Nur sinnvoll, wenn es langfristige Ziele gibt, mit denen sich die eingeschränkte Nutzung ausgleichen lässt
  • Kampf künstlich beenden (klassische Option "Fliehen")

7

Als Variante können Sie eine Wundansammlung hinzufügen. Sicherlich wird eine riesige Kupferaxt nicht in schwere Stahlpanzer eindringen, aber sie wird stumpfen Schaden anrichten und kann sogar Knochen brechen. Gleiches gilt für Kugeln und Westen.

Jedes Mal, wenn ein Charakter getroffen wird, wandle einen Teil des durchstechenden und aufgeschlitzten Schadens in stumpfen Schaden um, der sich ansammelt. Nach einer bestimmten Schwelle (die zum Beispiel von der Ausdauer abhängt) beeinträchtigt der akkumulierte Schaden die Kampffertigkeiten des Charakters. Einige Optionen hier:

  • Die Rüstung ist möglicherweise weniger effizient, wenn Treffer an denselben Körperteilen ausgeführt werden.

  • Signifikante Wunden: periodische Schädigung, Schmerzschwäche.

  • Schwere Wunden: Kurzzeitiger Bewusstseinsverlust (wodurch der Charakter sehr verletzlich wird).

  • Extreme Wunden: Permanenter Zustandsverlust (wenn der Charakter überlebt).

Verwandte: Schadensmechaniker in der Zwergenfestung


2
Ich wollte vorschlagen, jedem Waffenknüppel Schaden zuzufügen, der nicht durch Rüstung geblockt werden kann. Schwerter und Dolche hätten eine geringe Knüppelkapazität, aber Äxte und Streitkolben wären sehr effektiv.
jmegaffin

5

Füge verschiedene Arten von Schaden hinzu, mit Rüstungen, die nur gegen bestimmte Arten von Schaden schützen. Zum Beispiel Kinetikschaden, Säureschaden, Feuerschaden usw. Keine Rüstung sollte vor jeder Art von Schaden schützen.

Benutzer könnten ihre Rüstungen so aufschichten, dass sie sich gegen alle Schadensarten schützen, aber sie könnten sich nicht gegen alle Schadensarten gleichzeitig schützen. Dies setzt einige Strategien auch in Schlachten um, bei denen die Spieler die Schadensarten wechseln müssen, um durch die verschiedenen Rüstungsebenen zu gelangen.


4

Sie könnten einfach keinen Verteidigungsstatus haben und nur größeren Feinden größere HP verleihen. Ich weiß, dass Sie gigantische Zahlen vermeiden möchten, aber wenn Sie ein deterministisches, rundenbasiertes Spiel wollen, bei dem Angriffe nicht direkt auf den Eingaben der Spieler basieren (es besteht keine Gefahr, dass menschliche Fehler den Angriff durcheinander bringen), erscheint die Verteidigungsstatistik ein wenig sinnlos auch.

Wenn Sie sich Sorgen über den Präsentationsaspekt machen, können Sie HP in Herz- oder Gesundheitspips aufteilen. EG 100 PS = 1 Herz. Die Herzen fangen an schwarz zu werden, wenn ein Charakter HP verliert und dann ganz verschwindet. Auf diese Weise ist es für den Spieler einfacher zu verstehen als 129301239103123hp, aber Sie müssen sich keine Gedanken über das Ausbalancieren einer magischen Gleichung machen.

Wenn Sie sich Sorgen um Realismus machen, können Sie es jederzeit animieren lassen, als würde das Ziel des Angriffs erfolgreich geblockt oder es wird nur leicht zerkratzt, bis der Todesstoß einsetzt.


1
" Wenn Sie ein deterministisches, rundenbasiertes Spiel wollen, bei dem Angriffe nicht direkt auf den Eingaben der Spieler basieren, [...] scheint die Verteidigungsstatistik ebenfalls ein wenig sinnlos zu sein. " Fräulein". Es ist mehr wie Schadensreduzierung in D & D, nicht THAC0 (oder wie auch immer sie es heutzutage nennen). Verteidigung bedeutet, dass ein Angriff mit 40 Schadenspunkten auf 10 Schadenspunkte reduziert werden kann, wenn Sie 30 Verteidigungspunkte haben. Ich sehe nicht ein, wie das jemals "sinnlos" sein kann.
Nicol Bolas

1
Ich weiß, dass die Mathematik ein bisschen anders ist, aber es gibt wirklich keinen großen Unterschied im Hinblick auf das Gameplay, wenn man einem Charakter stattdessen eine angemessene Menge an Gesundheit verleiht und den Schaden um einen bestimmten Betrag verringert. Nicht, wenn es immer eine Möglichkeit geben muss, einem Ziel Schaden zuzufügen. EDIT: Vorausgesetzt, es gibt keine speziellen Angriffe, die die Verteidigung oder andere Spielmodifikatoren ignorieren.
Lewis Wakeford

Ein subtraktiver Verteidigungsstatus bietet Ihnen mehr als nur HP (zusätzlich zu all den Dingen, mit denen Sie nicht einverstanden sind, wie Spezialangriffe oder Modifikatoren). Es wird eine Schichtung zwischen Nutzern mit übermäßigem Schaden und Nutzern mit hohem Schaden erstellt. Ein Charakter, der mehrmals angreift, aber weniger Schaden verursacht, läuft einem Charakter mit hoher Verteidigung zuwider, während ein langsamerer Charakter mit hohem Schaden mit der Zeit mehr Schaden zufügt. Bloße Trefferpunkte schaffen diese Schichtung nicht.
Nicol Bolas

4

Fügen Sie einen abgenutzten Mechaniker zur Verteidigung hinzu. Machen Sie jeden Angriff leicht reduziert die Verteidigung des Ziels.

Schließlich wird selbst ein schwacher Angriff die Verteidigung des Ziels so stark zermürben, dass tatsächlicher Schaden verursacht wird.


3

Wenn Sie die Welt der ganzen Zahlen verlassen und das Subtraktionssystem aufpeppen möchten, können Sie den Schadensreduzierungsalgorithmus von Warlords Battlecry III verwenden:

damage = attack

while DR > 0:
    usedDR = DR
    if DR > damage
        usedDR = damage
    damage = damage - usedDR * 0.5
    DR = (DR - usedDR) / 2

HP = HP - damage

Dies ist die Funktion, die dem obigen Pseudocode sehr ähnlich ist:

damage(attack, DR) = attack * 2 ^ -(DR/attack)

Wenn DR kleiner ist als Angriff (ankommender Schaden), verhält es sich wie Angriff - k * DR, wobei k 0,693 ist ( ln(2)um genau zu sein). Wenn DR in der Nähe von oder größer ist, halbiert sich der ankommende Schaden um die Hälfte DR/attack. Zum Beispiel für DR = 30 und Angriff = 10 würde der Schaden 1,25 betragen (Angriff dreimal halbiert).

Es mag für den Menschen komplizierter und schwerer zu bewerten sein, aber es ist hackfrei und Änderungen an beiden Parametern sind relevant. Wenn der Angreifer Bonusangriffskraft erhält oder der Verteidiger DR auch nur um einen geringen Betrag verliert, ändert sich der resultierende Schaden.


1

Verwenden Sie Schwimmer.

Selbst wenn Sie dem Player ganzzahlige HP präsentieren, verwenden Sie float für HP und float für Beschädigungen.

Ich benutze jetzt fraktionierte Rüstungsklassen, bei denen eine Rüstung von 1.0 unbesiegbar ist und eine Rüstung von 0.0 "vollen Schaden nimmt". Schaden wird reduziert als:

float hpReduction = hp - dmg*(1.f - armor) ;

Diese Formel bewirkt, dass "doppelter Schaden" verursacht wird, indem die Rüstung auf -1 gesetzt wird.

Ich habe den Schaden auch in Kategorien eingeteilt, siehe Starcrafts Typen für erschütternde / explosive Schäden oder Eve's Schadensartensystem als Beispiel.

Jetzt kratzt ein kleiner Kobold an Ihrer .99-Klassenrüstung, bis Cherry Tap Sie tötet, aber die Angriffe scheinen dem Spieler keinen Schaden zuzufügen nächster Angriff ..)


0

Ein Fertigkeitsgraph kann einige Schadensfertigkeiten als Voraussetzung für Verteidigungsfertigkeiten auf höherem Niveau darstellen, um die Fähigkeit eines Spielers, stark asymmetrische Builds zu erstellen, zu verringern.

Kritische Treffer können Schaden anrichten, solange die eigene Verteidigung nicht absurd hoch ist. Wenn Sie sie eher periodisch als zufällig machen, haben Sie immer noch deterministischen Kampf.

Nach einer Reihe von fehlgeschlagenen Treffern können Sie die Angriffsgeschwindigkeit automatisch zugunsten einer höheren Trefferchance und höheren Schadens verringern. Ihr superschneller Kratzcharakter führte zehn Angriffe pro Sekunde aus. Jetzt, nachdem fünfzehn Angriffe keinen Schaden anrichten, werden drei Angriffe pro Sekunde mit + 50% getroffen und + 200% Schaden. Dies ähnelt kritischen Treffern, ist jedoch in solchen Situationen schneller.

Sie können die prozentuale Schadensreduzierung durch Rüstung verwenden. Um sie jedoch interessanter zu gestalten als eine andere Methode, um Ihre maximalen HP zu verbessern, können Sie die prozentuale Reduzierung für schwächere Treffer erhöhen. Zum Beispiel 90% Reduktion für 1-20 PS Schaden, 60% für 20-30 und 30% für alles andere.

Mach dir endlich keine Sorgen über große Zahlen. Sie geben Ihnen ein viel feineres Maß an Kontrolle als kleine. Wenn ein Charakter der Stufe 1 mit 100 Trefferpunkten beginnt, bedeutet dies, dass Sie etwas haben können, das ihn in sieben, aber nicht in fünf Treffern tötet. Es bedeutet, dass Sie mit der Zeit Giftschaden und andere Schäden erleiden können, die nicht unverschämt verheerend sind (und auch einige, die es sind, wenn Sie möchten). Wenn Sie keine großen Zahlen anzeigen möchten, suchen Sie nach einer Möglichkeit, diese nicht anzuzeigen.


0

Sie sagen, Sie möchten, dass es immer eine Lösung gibt, aber muss das ein Sieg sein?

Betrachten Sie den Ansatz von Dominions - der Angreifer routet ab 50 automatisch. Am 75. Zug schlägt der Verteidiger automatisch ein. (Ein Router funktioniert nicht automatisch - einige Einheiten sind immun gegen Routing und selbst wenn ein unbewegliches Gerät den Router nicht verlassen kann.) In Runde 100 wird alles, was übrig ist, getötet.

Obwohl ich mit der genauen Funktionsweise nicht einverstanden bin (es gibt Situationen, in denen es einfach zu lange dauert, die andere Seite zu töten), bleibt die Grundidee gültig.

Was würde ich vorschlagen:

Schauen Sie sich ein gewisses Maß für die Kraft jeder Seite an. (Trefferpunkte sind ein offensichtlicher Ausgangspunkt, aber seien Sie vorsichtig, Dominions haben diesbezüglich ein Problem, bei dem Trefferpunkte "Verlust", der nicht von Bedeutung ist, gezählt werden - Formänderungen, Beschwörungen usw., die aufgrund von Verlusten zu einer Niederlage der Armeen führen, wenn sie dies nicht taten Ich nehme nicht einmal welche.) Behalte den erreichten Mindestwert im Auge und notiere, wie viele Umdrehungen es seit dem Einstellen eines neuen Mindestwerts waren. Wenn es zu lange dauert, ohne dass ein neues Minimum festgelegt wird, haben Sie eine Art Deadlock und der Angreifer sollte sich zurückziehen.


0

Eine Alternative, die ich noch nicht gesehen habe, ist, dass du, da dein Rüstungswert den Angriff negativ macht, ein wenig RNG für einen wahren Block hinzufügen könntest:

const stratchDamage = 1;
var armour = 10; 
var blockCount = 0;

function registerAttack (incomingAttack)
{
    var incomingDamage = incomingAttack - armour;

    // Nothing unusual, deal damage
    if( incomingDamage > 0 ) 
    {
        dealDamage(incomingDamage);
    } 

    // Armour cancels out attack, deal scratch damage
    else if( incomingDamage == 0 ) 
    {
        dealDamage(scratchDamage);
    }

    // Armour over attack value, check if can block
    else
    {
        var trueBlockChance = armour - incomingDamage;

        // blockCount starts at 0, will always block first attack
        if( trueBlockChance  > blockCount ) 
        {
            // Can technically do nothing, or trigger block animations etc
            block();
            blockCount ++; // Increment block so they can't block forever
        }
        else
        {
            dealDamage(stratchDamage);
            blockCount = 0;
        }
    }
}

Je höher das Schadensdefizit nach der Rüstung ist, desto mehr Angriffe kann der Charakter abwehren, bevor er einen weiteren Kratzschaden erleidet.

Dies bietet ein wenig mehr Skalierbarkeit für Verteidigungsstatistiken, ohne sie unverwundbar zu machen. Außerdem können Angriffe diese Blockmechanik durchdringen, falls Sie dies wünschen, und auf natürliche Weise Deadlocks verhindern.

Kämpfe können lange dauern, wenn Sie Statistiken zu Ihrer Verteidigung über die Beleidigung gestapelt haben, aber am Ende wird es dort ankommen.


Zitat aus OP: Ich möchte, dass der Kampf zu 100% deterministisch ist. Dies erlaubt keinen 100% deterministischen Kampf.
Charanor

Dann kann der Block auch rundenbasiert sein. Für jede Stufe von trueBlock über einen Angriff muss der Feind so oft angreifen, um Kratzschaden zu erzielen. Die gleiche Idee kann gelten.
Tom 'Blue' Piddock

@Charanor - Die Antwort wurde auf 100% deterministisch eingestellt.
Tom 'Blue' Piddock

-1

Viele 3D-Kampfspiele vermeiden Kratzschäden. Beispiele sind Tekken und Soul Calibur 2. Sie vermeiden dies, indem sie eine perfekte Verteidigung erschweren. Einige Angriffe sind einfach zu schnell, um darauf zu reagieren. Ich denke, es ist eine ziemlich gute Lösung.


-1

Ich denke, die Wirksamkeit der Verteidigung zu verringern, ist keine gute Option. Das Abschalten eines Spielers führt zu einer schlechten Spielerfahrung. Warum nicht anders herum?

Warum den Attack nicht mit der Zeit einschalten? Dies erhöht den Kratzschaden mit der Zeit und verringert den Anreiz zum Blockieren. In der Mitte des späten Spiels kann ein Charakter einen anderen töten, während er auf ihn klagt, während er sich verteidigt.

Einige PNP-RPGs implementieren einen "Spannungsmechanismus". Jede Umdrehung erhöht die Spannung um eins. Alle Würfe haben den zusätzlichen Modifikator für den Spannungswert, der den Kampf zum Ende treibt.

Eine andere Idee, die aus Kampfspielen stammt, ist ein Angriff, der durch Verteidigung geht. Ich weiß nicht, ob Ihr Spiel rundenbasiert oder in Echtzeit ist, aber dieser Angriff kann den Gegner auch für eine Kombination öffnen oder ihn oder einige seiner Fähigkeiten vorübergehend deaktivieren.

Ich glaube, der Trick besteht nicht darin, die Verteidigung zu unterbinden. Machen Sie andere Optionen genauso gut wie Verteidigung oder reduzieren Sie die Zeiten, in denen Verteidigung eine gute Option ist.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.