• Herzlich Willkommen!

    Nach der Schließung von inDiablo.de wurden die Inhalte und eure Accounts in dieses Forum konvertiert. Ihr könnt euch hier mit eurem alten Account weiterhin einloggen, müsst euch dafür allerdings über die "Passwort vergessen" Funktion ein neues Passwort setzen lassen.

    Solltet ihr keinen Zugriff mehr auf die mit eurem Account verknüpfte Emailadresse haben, so könnt ihr euch unter Angabe eures Accountnamens, eurer alten Emailadresse sowie eurer gewünschten neuen Emailadresse an einen Administrator wenden.

WIP: DPS Calculator

sarc

Mitglied
Registriert
26 November 2011
Beiträge
269
*** UPDATE ***

Zum ersten Version hat sich mittlerweile einiges getan, inklusive der Ausrichtung. Der Calculator dient nun mehr dazu, schnell verschiedene Waffenkombinationen zu vergleichen. Eine Beschreibung der aktuellen Features gibt es in Posts 10 und 11.



Wie hier schon angekündigt wollt ich mal wieder etwas JS ausprobieren und kein völlig sinnloses Projekt angehen, also hab ich mich mal an nen DPS Calculator gesetzt. Für die Berechnung hab ich mich an diesem hervorragenden Video orientiert. An der Stelle möcht ich dann auch direkt erwähnen, dass der Autor ebenfalls nen Calculator geschrieben hat und es ist denke ich das mindeste, den auch zu verlinken. Ich hoffe, das ist hier erlaubt...
Mein Calculator unterscheidet sich hauptsächlich dadurch, dass er Dual wielding (zumindest so halbwegs) unterstützt. Dazu später mehr.

Ich hab mal gammligen Webspace rausgekramt, so dass man sich den ersten Entwurf schon mal anschauen kann. Ich weiß, das Ding ist hässlich wie die Nacht, aber dafür steht ja auch WIP dabei. Die wichtigsten Werte spuckt er schon mal aus, und ich hoffe, es ist halbwegs klar, was in die Felder gehört.
Ich würde mich freuen, wenn das Ding trotzdem jetzt schon mal Leute testen könnten. Gerade der Dual wielding Betrieb interessiert mich. Hier scheint es noch leichte Abweichungen zu Blizzards Berechnungen zu geben, wenn IAS auf der Ausrüstung ist. Blöderweise scheint die Berechnung der APS der einzelnen Waffen richtig zu sein, nur der DPS am Ende weicht in der letzten Nachkommastelle ab (allerdings doch zu stark für Rundungsfehler). Es würd mir helfen, wenn das Leute, die sehr viel IAS auf ihrer Ausrüstung haben, mal testen könnten. Dann bitte ne Auflistung dessen, was vorhanden war, und die Werte die mein Calc ausspuckt im Vergleich zur Ingame-Anzeige posten.
Außerdem konnt ich den jetzt nur im IE und Firefox testen. Andere (und ältere) Browser wären ebenfalls gern gesehen.


Nachdem JS anscheinend doch so ein bisschen was dazugelernt hat seit ich es das letzte Mal benutzt hab (gut, das is auch fast 10 Jahre her...) hat das durchaus auch Spaß gemacht. Hätt also durchaus Lust, da noch weiterzubauen. Dinge, die ich auf jeden Fall noch umsetzen will (weil ich die selber praktisch fänd:

  • Mehr Werte (Dmg-Range pro Hit, Standardabweichung des Schadens, was mir sonst noch so einfällt...)
  • Vergleich nur primary weapon und dual wielding (wie stark geht der dps hoch)
  • Ne Vorschlagsfunktion ("zu dieser Waffe braucht man mindestens x dps damit sich dual wielding lohnt")
  • Speicherfunktion für Waffen (dann kann man direkt verschiedenes Zeug vergleichen - vielleicht nicht sinnvoll, aber von der Implementierung spaßig ;))
  • Umstellung auf jQuery, da wollte ich mich eh einarbeiten, weil das ziemlich praktisch aussieht

Daneben gibts noch einiges, das man umsetzen müsste, das aber nicht so viel Spaß machen würd. Sprich, den Aufwand würd ich nur betreiben, wenn Leute außer mir Interesse an so nem Calculator hätten und den nutzen würden. Ich würd den bei Interesse dann auch PlanetDiablo zur Verfügung stellen.

  • Allem voran natürlich n hübsches Design und geordnetere Ausgaben
  • Anständige Tooltips zu jedem Eintrag
  • Bessere Überprüfung der Eingabe (zum Beispiel, ob man mit den gewählten Waffentypen überhaupt dual wielden kann...), dazu dann auch aussagekräftigere Fehlermeldungen

Wenns darüber hinaus noch Vorschläge gibt bin ich da natürlich für alles offen. :)


So, und dann noch ein paar Kommentare:


Für Theorycrafter

Fürs Dual Wielding wird davon ausgegangen, dass noch zusätzlich 15% IAS vorhanden sind (gleich behandelt wie IAS auf der Ausrüstung, nicht wie IAS auf der Waffe!). Zusätzlicher numerischer attack speed bonus auf einer Waffe wirkt sich dabei auch auf die andere aus (siehe hier, kann man aber auch einfach selber ausprobieren). Die Berechnung des DPS einer einzelnen Waffe mit allen Itemboni (ohne zusätzlichen Schaden durch das Primärattribut oder Critical Hits) ist avg_dmg*aps. Für zwei Waffen ist das nicht ganz so einfach, hier muss berücksichtigt werden, dass die Waffen unterschiedlich schnell sind. Ich habs berechnet, indem der summierte avg_dmg (was der durchschnittliche Schaden ist, wenn beide Waffen 1x zuschlagen) mit der Summe der Zeiten, die für diese Schlagfolge gebraucht wird, multipliziert wird: dps = (avg_dmg1 + avg_dmg2) * (1/aps1 + 1/aps2). Das sollte eigentlich hinkommen...
Falls jemand Fehler in meinen Überlegungen findet und mir damit beim debuggen helfen kann: Vielen Dank schon mal!


Für Coder

Ich freu mich auch, wenn erfahrene JS-Coder in meinen Code gucken. Falls es da Sachen gibt, die sich eleganter lösen lassen (oder einem absolute No-Gos auffallen) freu ich mich über entsprechende Hinweise. Dass die Objektorientierung an ein paar Stellen möglicherweise übertrieben ist weiß ich selber, aber ich wollt explizit OOP, Vererbung und die Grenzen in JS ausprobieren. :)

Was mir allerdings noch eingefallen ist: Falls PlanetDiablo auch für D3 ne Itemdatenbank aufbaut, wäre ein API, das den Zugriff auf die Einträge erlaubt, ne extrem coole Sache. Aktuell müsste man immer, wenn Blizzard die Eigenschaften der Items ändert, gucken ob man den Calculator anpassen muss. Allen anderen Calculatoren wirds dann vermutlich auch so gehen. Wenn alle auf den gleichen Datenbestand zugreifen wär das etwas einfacher. Also, falls mal irgendjemand deutlich zu viel Langeweile hat... ;)
 
Zuletzt bearbeitet:
Blöderweise scheint die Berechnung der APS der einzelnen Waffen richtig zu sein, nur der DPS am Ende weicht in der letzten Nachkommastelle ab (allerdings doch zu stark für Rundungsfehler).
Probiere mal folgendes: Ersetze
dps *= attrib_bonus * (1 + crit_chance*crit_dmg);
durch
dps *= attrib_bonus * (1 + crit_chance*(1+crit_dmg));

Das war zumindest in einem früheren Betapatch ein Bug der DPS-Anzeige. Ich vermute, dass das Spiel es richtig macht (also wie in deiner Formel), aber die Anzeige hat die untere Berechnung verwendet.


Ich würd den bei Interesse dann auch PlanetDiablo zur Verfügung stellen.
Das ist interessant, allerdings sind wir auch bereits an einem anderen Damcalc dran, der schon mehr kann.
Generell wäre es denkbar, mehrere Damcalcs zu haben, sollten sich diese nennenswert unterscheiden. Eine Speicherfunktion oder ein paar Waffenvergleiche wären in der Hinsicht sicher interessant.
 
Das, was den Schaden des Chars erhöht.

Int bei Wiz+WD, Stärke beim Barb und Dex beim Rest.
 
Probiere mal folgendes: Ersetze
dps *= attrib_bonus * (1 + crit_chance*crit_dmg);
durch
dps *= attrib_bonus * (1 + crit_chance*(1+crit_dmg));

Das war zumindest in einem früheren Betapatch ein Bug der DPS-Anzeige. Ich vermute, dass das Spiel es richtig macht (also wie in deiner Formel), aber die Anzeige hat die untere Berechnung verwendet.

Danke für den Hinweis. Die Werte waren aber wenn dann etwas höher als bei Blizzard. Ich tippe aktuell dann doch auf ne Ansammlung von Rundungsfehlern, auch wenn das seltsam scheint.


Das ist interessant, allerdings sind wir auch bereits an einem anderen Damcalc dran, der schon mehr kann.
Generell wäre es denkbar, mehrere Damcalcs zu haben, sollten sich diese nennenswert unterscheiden. Eine Speicherfunktion oder ein paar Waffenvergleiche wären in der Hinsicht sicher interessant.

Na ja, ich glaube, da würds dann eher mehr Sinn machen, einen zu haben der alles kann... ;)


@Phenom: Die Frage hat mich zumindest dazu gebracht, noch ein paar erläuternde Worte dazuzuschreiben. Hässlich ist das Ding aber nach wie vor... ;)


Ach ja: Falls jemand ein gutes jQuery Tutorial kennt immer her damit. :)
 
Zuletzt bearbeitet:
Irgendwas schein ich falsch zu machen:

Screenshot000.jpg


Meine 2 Hand Waffe hat einen Schaden von 12-17.

Wenn ich das in den Calc eingebe, als 2H Schwert, 12-17, kein IAS, 50 Strength, 10% Crit und 100% Bonusschaden wird mir DPS: 29.308 ausgegeben.
 
Danke für den Hinweis. Die Werte waren aber wenn dann etwas höher als bei Blizzard.
Ok, dann nicht. Und wenn ich Phenoms Char nehme, hat Blizzard den Bug auch mittlerweile behoben.


@Phenom: Wenn ich nur die Ausrüstungsboni beim kritischen Schaden eingebe (5, 50) kommt das richtige raus. Ist aber ziemlich verwirrend, finde ich.
 
Also, nachdem jeder Char 5% Chance und 50% Bonusschaden bei nem Critical Hit macht (denk ich zumindest?) hab ich das als Standard eingestellt. Du müsstest also nur 5 und 50 eingeben um deine Werte abzubilden. Ist allerdings wohl auch eher verwirrend... :(

Nichtsdestotrotz kommt dabei dann Unsinn raus, ist also noch irgendwo ein Bug, den ich dann mal suchen gehe. Danke!

Edit sagt: Unsinn, ich hatte das noch in der Version mit dem Vorschlag von mfb getestet (weil ich sehen wollte, wie groß die Unterschiede da sind...). Aber ich bau das auch so um, dass man die Werte einträgt wie im Charakterscreen...
 
Zuletzt bearbeitet:
Bei deinem Calculator habe ich einige Varianten getestet und konnte keine Fehler feststellen.:top:

Auch zusätzlichen DMG oder IAS von Rüstungen wurde bei meinen Beispielen korrekt berechnet (so dass der gleiche Wert wie ingame angezeigt wird).
 
Erst mal Danke an alle, die rumgespielt und getestet haben! :)

Erste Schritte in jQuery haben dem nun mal die Speicherfunktion beschert. Man kann beliebige Waffen speichern und später wieder den einzelnen Slots zuweisen. Braucht keine Sau, ist aber auch egal... ;) Leider ist der Code dadurch nicht übersichtlicher geworden...

Ach ja, das speichert nix auf dem Rechner, keine Sorge. Heißt natürlich auch: Einmal geschlossen ist alles wieder weg.
 
Nach einiger Zeit gibts mal wieder ein größeres Update (noch einmal der Link: UDO WIP). Die Ausrichtung ist jetzt weg vom klassichen DMG-Calc und mehr zu einem Tool, um Waffenkombinationen zu testen und zu optimieren. Es gibt nun einen Kombinieren-Button, der sämtliche gespeicherte Waffen miteinander kombiniert und die Kombination (kann auch eine einzelne Waffe sein) mit dem höchsten DPS auswählt. Für die Beta war das trivial, da konnte man quasi immer die Waffen mit höchsten DPS der Waffen selber nehmen. Dadurch, dass es aber auch +Attribute, +Crit und so geben kann, ist das im kompletten Spiel nicht so einfach. Auch die spezielle Auswirkung von absolutem IAS kann kompliziert werden.

Das bedeutet leider auch, dass die Bedienung nicht mehr ganz so einfach ist. Vor allem musste ich zwischen Stats auf Waffen und Stats auf der übrigen Ausrüstung trennen, man wird also etwas mehr Zeit brauchen, bis man alle Werte eingegeben hat. Darum hab ich auch konsequent auf detailliertere Angaben über den Schaden verzichtet. Wer daran interessiert ist, fährt mit einem DPS-Calc (wie dem, der hier ja in Entwicklung ist) besser. Mein Calc soll mehr zum schnellen Vergleich verschiedener Ausrüstungsoptionen (ob von Hand oder automatisch) dienen.

Ich denke auch, das jetzt zum ersten Mal ein Stadium erreicht ist, wo das Ding zumindest halbwegs sinnvoll genutzt werden kann. Darum hab ich mich auch ein bisschen um die Optik gekümmert. Die Farbwahl dient dazu, zu demonstrieren, dass man mir wirklich keine Designaufgaben geben sollte... ;) In Zuge dessen hat der Calc auch nen völlig unnötigen Namen gekriegt... ;)
Die meisten Berechnungen laufen nun auch automatisch ab, sobald Werte eingegeben werden. Das Ausgaben-Feld unten ist noch relativ unnütz, aktuell sollte man dort nur Fehlermeldungen finden.


Nach wie vor freue ich mich über jeden, der testet und Bugs meldet. Die Rechnungen sollten so weit alle richtig sein (zumindest hab ich keine Fehler mehr gefunden). Allerdings sind nun einige Felder, die sich gegenseitig steuern, und gerade da könnts zu Fehlern kommen.

Gleichzeitig freue ich mich über Anregungen, was man an zusätzlichen Features einbauen könnte (oder sollte). Ich hab selber auch noch ne ziemlich lange Wunschliste, aber es würde mich doch interessieren, was ihr für wichtig erachten würdet.




Und noch eine kleine Anmerkung für alle, die in den Code schauen wollen: Ja, das ist an einigen Stellen nicht unbedingt effizient. Einige Sachen werden doppelt berechnet. Darum kümmer ich mich aber erst, wenn die ganzen Features drin sind und ich weiß, welche Struktur ich ungefähr brauche. Und außerdem, bei dem ganzen Overhead, den jeder moderne Browser so einführt, fällt das gar nicht auf... ;)

Jedem, der überlegt, selber nen Calculator zu schreiben, kann ich sonst nur empfehlen: Schaut euch jQuery an! Ich kenn erst nen winzigen Teil, aber das Ding ist genial. Beispielsweise erfordert es nur nen Einzeiler, um dafür zu sorgen, dass bei Änderungen von irgendwelchen Feldern automatisch der DPS neu berechnet wird.
 
Den Namen des Kalkulators find ich klasse :lol:

Kleine Anregung: du könntest, wenn Wiz, DH oder Hexendoktor ausgewählt sind, aus dem Zwei Handwaffen benutzen ein Nebenhand oder ähnliches anzeigen lassen. So muss der Orb oder der/die/das (?) Mojo nicht mit dem Rest der Ausrüstung verrechnet werden sondern kann direkt eingetippt werden. Ob das so einfach geht und wirklich Sinn macht sei mal dahin gestellt.
Beim DH z.B. wäre das auf jeden Fall von Vorteil, denn man muss schließlich abwägen können, ob eine zweite Handarmbrust oder ein Köcher besser geeignet ist.
Oder habe ich da einen Denkfehler mit eingebaut?

Sieht doch optisch sehr gelungen aus (besonders wenn man bedenkt, dass du das nur so aus Spaß machst), weiss gar nicht wo dein Problem ist :go:
 
Ne, da hast du (leider ;)) völlig Recht. Als Mönchspieler hab ich diese Möglichkeit mal völlig ausgeblendet und gehofft, dass das keinem auffällt... ;) Gerade für DHs ist das aber in der Tat sehr interessant.

Das Problem dabei ist, dass ich mir da erst noch überlegen muss, wie man das am sinnvollsten abbildet. Meine ersten Ideen sind entweder sehr umständlich oder extrem fehleranfällig. Aber ich schau mal, was mir so einfällt, aktuell hab ich grad ne Vermutung, wies halbwegs elegant gehen könnt, aber das muss ich erst ausprobieren.

Wird aber auf jeden Fall eins der nächsten Features werden, weils halt doch wohl ned ganz so unwichtig ist.
 
Na dann häng dich mal rein, wer weiss ob du ab dem 15.05. noch Zeit für so was hast :lol:

Wenn das Spiel draußen ist wird es wieder einfacher Werte zu testen; dann solltest du auch Feedback bekommen.
 
Ich hab auch jetzt zu wenig Zeit... :D

Aber ab dem 15. hat auch keiner Zeit, irgendwas durch nen Calc zu ballern, da wird doch überall erst mal gezockt... :D
 
Aber wenn ich dann bei Level 14 bin, also weit jenseits des Betacontents und der bisherigen Erfahrung der Community, dann muss ich doch meine Waffen vegleichen können! :D

Zwei kleine Verbesserungsvorschläge:

Die Benutzung von zwei Handwaffen kann von Hand deaktiviert werden.
ändern in
Die Benutzung von zwei Einhandwaffen kann manuell aktiviert werden.
Auch weiter unten bei Kombinieren würde ich aus dem von Hand ein manuell machen.
Sonst sind da irgendwie so viele Hände im Spiel ... ähm, im Text meine ich.


Bei den Waffentypen Daibo, Stab und Stangenwaffe sollte noch ein (2H) hinzugefügt werden, damit schneller ersichtlich wird, dass es Zweihandwaffen sind. Hier kann die zweite Hand nicht aktiviert werden. Oder sollten das Einhandwaffen sein und das Checkfeld kann man fälschlicherweise nicht aktivieren?
 
Danke für die Hinweise. Das erste Zitat war tatsächlich absicht, weil ich keine Hände mehr sehen konnte... ;) Den Text hab ich eh relativ schnell runtergetippt, da ich noch einige Änderungen plane hatte ich auch wenig Lust, da zu viel Zeit reinzustecken, wenn eh Teile neu geschrieben werden müssen. Aber n paar Sachen kann ich ja doch mal anpassen. :)


Bei den Waffentypen Daibo, Stab und Stangenwaffe sollte noch ein (2H) hinzugefügt werden, damit schneller ersichtlich wird, dass es Zweihandwaffen sind. Hier kann die zweite Hand nicht aktiviert werden. Oder sollten das Einhandwaffen sein und das Checkfeld kann man fälschlicherweise nicht aktivieren?

Das sind alles Zweihandwaffen. Die (2H) habe ich aktuell nur drin, um Waffen, die es sowohl in ner Einhand- als auch in ner Zweihandversion gibt voneinander zu unterscheiden. Du würdest also sagen, eine generelle Kennzeichnung aller Zweihandwaffen ist sinnvoller?


Aber ich seh auch grad etwas, dass die Köcher fies macht: Bögen und Armbrüste sind eigentlich auch Zweihandwaffen (im Sinne, dass man sie nicht mit Einhandarmbrüsten kombinieren kann), können aber nen Köcher dazukriegen. Ich fürchte also, ich muss da entweder nen fiesen Hack für bauen, oder doch direkt die kompletten möglichen Kombinationen implementieren, wovor ich mich eigentlich erst mal drücken wollt... Mal schauen... :D
 
Um Verwirrung bereits im Keim zu ersticken würde es zumindest nicht stören alle Zweihandwaffen direkt zu kennzeichnen. Ich hatte mich erst gewundert, warum ich das Kästchen nicht mehr aktivieren konnte, bis ich drauf kam, dass das bei Zweihandwaffen so ist.

Mit den Bögen, Armbrüsten, Köchern, Orbs und Mojos wird sicher noch einiges an Arbeit auf dich zukommen. Wüßte gerade auch keinen Vorschlag, wie man das am besten steuern könnte (zumal ich vom Programmieren sowieso so gut wie keine Ahnung habe).
Kannst ja mal versuchen dich in die inDiabloDatenbank zu hacken, wie die das gelöst haben...
Alternativ könntest auch bei Blizz anfragen ob sie in ihrem Day1Patch einfach so unnütze Sachen wie Köcher rausschmeißen ... viel zu kompliziert.
:flame:
 
So schlimm ist es eigentlich gar nicht. Orbs und Mojos können afaik nur zusammen mit Einhandwaffen getragen werden. Keine Ahnung, ob mit allen, das hab ich nie getestet. Die einzige wirkliche Ausnahme sind da erst mal Köcher, die auch zu Bögen und Armbrüsten gehen. Ohne die könnte man das ganze Zeug fast wie ne Waffe behandeln (zumindest in der Abfrage, was geht).

Ich denke, ich werd erst mal die Variante mit der Ausnahme machen, das geht am schnellsten. Zumindest das sollt ich vor Release noch hinkriegen. Und wenn ich danach irgendwann sehr viel Langeweile hab, überleg ich mir was für die kompletten erlaubten Kombinationen. Da schadets aber bestimmt nicht, etwas zu warten, weil Blizzard das garantiert wieder umschmeisst.

Der nächste sehr lustige Punkt werden dann Legendaries. Bin gespannt, ob sich die auch auf die Basistypen an Waffen reduzieren lassen. Wenn die da dann nämlich plötzlich für jedes Legendary was eigenes basteln, wird das kein Spaß (dann werden aber auch alle anderen DPS-Calc-Autoren kräftig fluchen... :D).
 
Ich habe dein Tool gerade mal ausprobiert und zwar mit den Werten, die mir vom Beta-Wochenende noch übrig geblieben sind. Mit denen hatte ich selbst schon ein wenig rumgerechnet und irgendwo gabs hier auch schon nen Thread, in dem es um die Formel ging.
Auf Youtube gab es ein ganz gutes Video, mit Hilfe dessen man die einzelnen Faktoren der Berechnung für den Schaden mit einer Hand nachvollziehen konnte. Das stimmte bei mir auch mit der DPS-Anzeige im Spiel überein.

Nach Eingabe meiner Daten zeigt dein Rechner aber genau das Doppelte an. Fehlt am Ende noch die Division durch 2? Habs mit zwei "Datensätzen" bzw. Waffen getestet. Bei beiden das selbe.
Und was mir noch aufgefallen ist: Durch die Eingabe des IAS-Bonus auf einer der Waffen wird die Berechnung anscheinend etwas ungenauer. Dann kommt nämlich etwas weniger als das Doppelte raus. Nimmt man die Waffen-IAS aus beiden Rechnungen raus, unterscheiden sich die Ergebnisse wieder genau um den Faktor 2.
 
Zurück
Oben