Ich mache ein mobiles RPG-Spiel, ein unendliches, in dem es ein Beutesystem wie Diablo 3 gibt. Waffen haben Angriff und Geschwindigkeit, Rüstungsteile haben einen Widerstandswert (nicht Prozentsatz).
Die Formel, die ich benutze, lautet:
float realDamage = SkillDmg * BaseDamage / ( BaseDamage + Defense )
Die Ergebnisse sind gut, der Schaden wird größer, wenn die Verteidigung geringer wird, und er steigt aufgrund der Trennung zwischen ( BaseDamage + Verteidigung) nicht exponentiell an .
Nehmen wir an, ich habe ein Schwert mit einer Angriffsgeschwindigkeit von 1,0, das 50 Schaden verursacht. Das sind 50 dps, und ich habe einen Dolch, von dem ich möchte, dass er schneller angreift, aber natürlich weniger Schaden verursacht. Um die dps aufrechtzuerhalten, sagt die Logik, dass der Schaden halbiert werden muss, wenn die Angriffsgeschwindigkeit der Dolche verdoppelt wird (2,0 Geschwindigkeit mit) 25 dmg). Aber wenn Sie die obige Formel verwenden, werden Sie sehen, dass der tatsächliche Schaden DPS niedriger ist als das Schwert.
Ich habe das gelöst, indem ich den Dolch nicht 25 Schadenspunkte, sondern ein bisschen mehr Schaden zufügen ließ. Mit einigen Berechnungen kann ich dafür sorgen, dass die tatsächlichen Schadenspunkte gleich sind, um die Dinge auszugleichen. In diesem Fall müsste der Dolch mit einer Geschwindigkeit von 2,0 32 Schadenspunkte verursachen, um den gleichen tatsächlichen Schaden wie das Schwert zu erzielen.
Ich möchte jedoch die DPS-Nummer auf Waffen anzeigen. Wenn ich nur die DPS des Dolches als 32 dmg * 2 Angriffsgeschwindigkeit anzeige, werden es 64 dps sein, verglichen mit dem Schwert 50 dps, man wird klar sagen, dass der Dolch besser ist, aber natürlich nicht.
Mögliche Lösungen? Die anfängliche Schadensformel ändern? Wenn ja zu welchem? Nehmen wir an, ich ändere die Formel nicht. Gibt es eine Lösung? Ich mag es wirklich nicht, den Dolch austricksen zu müssen, um mehr Schaden als die Hälfte zu verursachen, um ihn gleichmäßig zu machen ...
Ich wünschte wirklich, ich würde die Schadensformel für Diablo 3 kennen. Ich weiß, dass Diablo 3 Waffen DPS einfach Grundschaden * Angriffsgeschwindigkeit sind.
Bearbeiten:
Lets assume defense = 50 and normal attack (skillDmg = baseDmg)
Sword 1.0 attack speed dealing 50 dmg -> real damage hit= 50 * 50 / ( 50 + 50 ) = **25 dmg** = 25 dps
Dagger 2.0 attack speed dealing 32 dmg -> real damage hit = 32 * 32 / ( 32 + 50 ) = **12.5 dmg** = 25 dps
Sword item, lets display the actual sword dps, 50 * 1.0 = **50 dps**
Dagger item, lets display the dagger dps, 32 * 2.0 = **64 dps** (SHOULD BE THE SAME)
damage * damage / ( damage + defense)
) gepostet habe , nur ohne Berücksichtigung des Fähigkeitsschadens. Der Grund für den Unterschied im DPS liegt darin, dass Sie dieselbe Verteidigung verwenden. Der Grund, warum Sie unterschiedliche Ergebnisse erzielen, ist, dass mit dieser Formel langsame, aber starke Waffen besser gegen hochauflösende Feinde sind, während schnelle, aber schwache Waffen besser gegen niederauflösende Feinde sind (was plausibel erscheint). Sie haben einen hochauflösenden Feind angenommen und beide Waffen gegen ihn abgewogen, was bedeutet, dass Sie den Dolch überwältigt haben. Die DPS-Berechnung zeigt diese Übermacht.