Geschätzte Lesezeit: 9 Minuten

Vor einigen Monaten habe ich schon einmal einen Artikel geschrieben, in dem es darum ging, Würfelvorgänge am Tisch zu beschleunigen. Und eine der effektivsten Möglichkeiten dazu waren und sind Programme, die euch das Würfeln abnehmen. Doch leider musste ich feststellen, dass es zwar durchaus ein paar sinnvolle Apps gibt, aber doch keine, die meine Bedürfnisse völlig erfüllt hätte.

Also habe ich mal wieder meine Programmierkenntnisse abgestaubt und selbst etwas gebastelt, das zwar nicht so universell einsetzbar ist wie die Apps, dafür aber in meinem meistgespielten System mehr kann. Und noch dazu auf allen modernen Systemen läuft, ohne irgendeine Art der Installation zu benötigen.

In diesem Artikel will ich euch das Tool vorstellen, einige Entscheidungen erklären, und es euch natürlich auch zugänglich machen, auf dass auch ihr Spaß damit haben könnt.

[label style=“1″]Den Link zum D20 Attack Roller findet ihr ganz unten.[/label]

 

Wahl der Mittel

Plattform/Format

Von vornherein wusste ich, dass das Tool sowohl auf meinem Handy (Android) als auch auf meinem Tablet (Windows 8.1 RT) lauffähig sein sollte. Da gerade letzteres aber extrem beschränkt darin ist, was man darauf zum Laufen bringen kann, blieb mir im Grunde nur eine Wahl: eine Webseite.

Rollenspiel findet aber nicht immer nur an Orten statt, wo man eine gute Internetverbindung hat. Also schied eine serverbasierte Lösung aus. Glücklicherweise unterstützen aber alle Browser die Programmiersprache JavaScript, die komplett im Browser selbst läuft und keinen Zugriff auf das Internet benötigt. Das ist zwar an manchen Stellen etwas umständlicher in der Programmierung, aber dafür eben auch unabhängig vom Netz.

Um das Ganze dann noch möglichst einfach einsetzbar zu halten, fiel noch die Entscheidung, die Formatierung nicht, wie üblich, in eine gesonderte Datei auszulagern. Stattdessen verblieb sie im eigentlichen Dokument, wodurch dieses länger und minimal unübersichtlicher wurde, aber nur eine einzelne Datei übrig blieb, die alles enthält, was das Tool benötigt. Und da die Unübersichtlichkeit nur für den Quelltext der Datei gilt und nicht das, was der Anwender am Ende sieht, fielen die Nachteile auch kaum ins Gewicht.

(Pseudo-)Zufallszahlengenerator

Als nächstes ging es daran, einen Zufallszahlengenerator zu finden, den ich nutzen konnte. Natürlich hat JavaScript einen eingebauten, aber reichte der aus? Oder würde er „falsche“, das heißt nicht ausreichend zufällig verteilte, Ergebnisse liefern? Eine Frage, die in der Tat schwer zu beantworten ist, da Zufälligkeit nur schwer zu testen ist. Also habe ich drei verschiedene Generatoren genommen (Math.random(), XOR-Shift und window.crypto.getRandomValues() für die Nerds unter euch) und ein paar Testläufe machen lassen. Der letzte der drei genügt sogar kryptographischen Anforderungen, sollte also das Ergebnis liefern, das ich als Maßstab nehmen wollte. Zu meiner völligen Überraschung lieferten alle drei Generatoren nahezu identische Ergebnisse, wobei erstaunlicherweise der kryptografische Generator den schlechtesten Wert hatte. Wenn euch die Details interessieren, könnt ihr sie hier aufklappen:

Spoiler

Die Standardabweichung bei 100.000.000 Durchläufen von drei aufeinanderfolgenden W20-Würfen lag bei den drei Generatoren bei: Math.random():107, XOR-Shift: 111 und window.crypto.getRandomValues(): 112.

Das heißt, die meisten möglichen Folgen von 3W20 lagen in einer Häufigkeit von 12500 +/- 107 (bzw. 111 oder 112) vor. Eine Abweichung von 0,9 %.

Bei nur zwei aufeinander folgenden Würfen lag die Standardabweichung bei allen drei Generatoren im Bereich von 480-495, also sogar nur eine Abweichung von 0,2 %.

Bei vier Würfen war die Abweichung bei 24-25, was 4 % entspricht, aber da waren 100.000.000 Durchgänge nicht ausreichend für ein sauberes Ergebnis. Leider waren mehr Durchläufe und damit eine Betrachtung der höheren Dimensionen der Unabhängigkeit auf Grund von Mechanismen im Browser, die zu lange Ausführungszeit von Skripten als Fehler ansehen, nicht praktikabel.

[Einklappen]

Somit war klar: Der eingebaute Pseudozufallszahlengenerator von JavaScript lieferte hinreichend zufällige Werte. Und da er gegenüber den anderen beiden Methoden um den Faktor 1,5-15 schneller war, fiel die Wahl am Ende nicht schwer.

Funktionen

Hinweis: Allzu technische Details, die nicht für jeden Anwender relevant sind, habe ich in Textboxen ausgelagert, damit ihr sie einfacher überspringen könnt.

Das fertige Tool bietet euch drei Funktionen:

1. Angriffsreihen und Schaden würfeln

Das Herzstück ist die Möglichkeit, einen vollen Angriff, wie er in Dungeons & Dragons 3.X und Pathfinder vorkommt, komplett vom Programm würfeln zu lassen. Das kann sowohl für Spielercharaktere als auch für NSC/Monster sehr viel Zeit sparen.

Damit das Tool arbeiten kann, müsst ihr natürlich erst einmal alle relevanten Werte eintragen. Dies geschieht in den drei Bereichen Angriff, Schadenscodes und Modifikatoren, die ihr im linken Bereich findet.

Angriffe
Angriffe
Angriffe

Unter Angriffe tragt ihr ein, welche Angriffsboni die entsprechende Figur hat und welcher Schadenscode (den ihr im nächsten Schritt definiert) für diese jeweils verwendet wird. Wenn optionale Angriffe dabei sind (wie zum Beispiel durch den Zauber Hast), so könnt ihr diese hier auch aktivieren und deaktivieren.

Dinge wie Mehrfachschuss sollten hier mit dem gleichen Angriffsbonus wie der dazugehörige Angriff eingetragen werden, jedoch einen eigenen Schadenscode erhalten, der keine kritischen Treffer ermöglicht. Geschieht das nicht, liefern die statistischen Analysen falsche Ergebnisse.
Schadenscodes
Schadenscodes
Schadenscodes

Unter Schadenscodes tragt ihr dann die verschiedenen Waffen oder natürlichen Angriffe ein, über die die Figur verfügt.

Diese drei verschiedenen Kategorien für Schaden sind dabei: „bei Krit vervielfacht“ (Waffenschaden, Boni durch Stärke etc.), „weiterer Schaden“ (Schaden durch Dinge wie heilige Waffen, die bei kritischen Treffern nicht mehrfach angerechnet werden) sowie „bedingter Schaden“ (Schaden, der nur unter bestimmten Umständen funktioniert, die erst nach dem Angriff feststehen – zum Beispiel hinterhältige Angriffe bei Gegnern mit Bollwerk-Effekten). Auch die Chance auf kritische Treffer (bei 19-20 einzutragen als 19 etc.) sowie der kritische Multiplikator und Boni auf den Wurf zur Bestätigung von kritischen Treffern werden hier eingetragen.

Schaden kann sowohl Deutsch (also mit W) als auch englisch (mit d) eingetragen werden. Außerdem kann man unter Spezielle Würfel noch eigene Würfel definieren, die dann mit C (für Custom) angesprochen werden können. Das ist zum Beispiel hilfreich, wenn die Figur über den Schurkentrick Heftiger Hinterhältiger Angriff verfügt. Bei diesen speziellen Würfeln kann man einfach die Menge der möglichen Werte vorgeben. In dem Beispiel also „2,2,3,4,5,6“.
Spezialwürfel
Spezialwürfel

 

Modifikatoren
Modifikatoren
Modifikatoren

Modifikatoren beinhalten alles, was den Angriff und den Schaden verändern kann. Von Talenten wie heftiger Angriff über Verzauberungen der Waffe wie Heilig bis hin zu Effekten, die Freund und Feind euch angedeihen lassen, kann man hier alles eintragen und aktivieren bzw. deaktivieren. Man kann die Einträge hier auch problemlos wieder löschen, aber ich empfehle, Dinge, die immer wieder vorkommen, stehenzulassen. So spart man sich beim nächsten Mal noch ein wenig Zeit.

Werte des Gegners

Nachdem man alle Eintragungen vorgenommen und alle aktiven Modifikatoren eingeschaltet hat, kann man im linken Bereich noch die Rüstungsklasse des Gegners eintragen, was aber optional ist.

Angriffsreihe würfeln und Treffer auswählen
Angriffsreihe
Angriffsreihe

Zu guter Letzt dann einfach den großen roten Button anklicken und schon würfelt das Tool alles aus.

Durch Anklicken der einzelnen getroffenen Rüstungsklassen kann man Würfe zu Treffern erklären. Dadurch wird der entsprechende Schaden sichtbar und automatisch zum Gesamtschaden addiert, wobei eine eventuell eingetragene Schadenreduzierung des Gegners berücksichtigt wird.

Die Tatsache, dass der Schaden nicht direkt angezeigt wird, ist dem geschuldet, dass es durchaus Effekte gibt, die man verwenden kann, um einen Angriffswurf nachträglich zu verbessern. Da man aber nicht sehen sollte, ob sich das „lohnt“, also der Schadenswurf gut oder schlecht ist, bleibt der Schaden verborgen, bis man etwas als Treffer deklariert hat.

Bedingten Schaden kann man entweder einzeln ein- und ausschalten oder global. Einzeln erreicht man die Werte, indem man die entsprechenden Felder anklickt, global, indem man die erste Zelle der Zeile anklickt.

Sonstige Würfel würfeln

Natürlich muss man nicht nur Angriffe würfeln, sondern oftmals auch andere Dinge. Damit man dann nicht extra dafür die Würfel auspacken muss, kann man durch einen Klick auf „Würfel“ eine Leiste ausfahren, in der alle Standardwürfel bereits eingetragen sind. Außerdem kann man selbst einen Würfelcode eingeben und diesen würfeln lassen. Das hilft zum Beispiel dem Spielleiter bei einem Drachodem von 15W8. Mit einem weiteren Klick auf Würfel verschwindet die Leiste wieder.

Statistische Analysen

Hilfsprogramme
Hilfsprogramme

Unter Hilfsprogramme sind zwei statistische Analysen zu finden, die Spielleitern bei der Vorbereitung von Begegnungen helfen und Spielern bei der Entscheidung, ob es sinnvoll ist, bestimmte Talente einzusetzen.

Der Button „Durchschnittsschaden berechnen“ tut genau, was er sagt: Er berechnet gegen jede Rüstungsklasse den durchschnittlichen Schaden, der mit den derzeit aktiven Einstellungen in einer Runde zu erwarten ist. Hilfreich, um zu sehen, wie lange der Krieger der Runde zum Beispiel gegen das Monster stehen sollte.

Über „Modifikator untersuchen“ kann man einen oder mehrere Modifikatoren unter die Lupe nehmen. Am hilfreichsten ist das bei Talenten wie Heftiger Angriff, deren Einsatz optional und eben nicht immer sinnvoll ist. Hierzu einfach den oder die Modifikatoren in das Feld eintragen und Berechnen anklicken. Als Ergebnis erhaltet ihr eine Liste von Durchschnittsschaden mit oder ohne diesen Modifikator gegen alle möglichen Rüstungsklassen. Dieselbe Funktion ermöglicht auch festzustellen, wie viel eigentlich ein bestimmter Bonus ausmacht und kann euch so helfen zu entscheiden, ob es mehr Sinn ergibt, eine Waffe mit +1 zu verzaubern, oder ihr eine Verbesserung zu geben, die 1W6 Elementarschaden zusätzlich macht.

Kompatibilität

Obwohl das fertige Tool eigentlich nur aus Dingen besteht, die in jedem Browser funktionieren sollten, kam es doch zu ein paar Problemen, die ich, mangels Zugriff auf entsprechende Hardware, nicht beseitigen konnte. So funktioniert das Tool unter OS X laut internen Tests nicht zufriedenstellend. Auf iOS und auch auf Android funktioniert es, allerdings in beiden Fällen nur im Querformat des Gerätes, zufriedenstellend.

Schlusswort

Entgegen unserer üblichen Lizenz steht das Würfeltool übrigens unter einer Lizenz, die es euch erlaubt, es zu verändern. Genauer unter der Creative Commons Namensnennung 4.0 International Lizenz.

Sollten euch also Funktionen fehlen oder etwas nicht gefallen, fühlt euch frei, es anzupassen.

Eine einfache Anpassung ist zum Beispiel, in Zeile 1493 das ‚de‘ in ‚en‘ zu ändern, um die Standardsprache des Tools auf englisch zu ändern, falls ihr, wie ich, öfter mit den englischen Begriffen spielt.

Natürlich wäre es nett, wenn ihr uns gute Änderungen mitteilt und schickt, damit wir diese vielleicht direkt einbauen können. Oder, wenn ihr selbst nicht über die notwendigen Kenntnisse verfügt, könnt ihr uns auch gerne fragen, wenn euch etwas fehlt. Wenn es nicht zu komplex ist, lässt es sich sicherlich noch einbauen.

Bis dahin wünsche ich euch auf jeden Fall viel Freude mit dem D20 Attack Roller.

Solltet ihr Testdaten haben wollen, um euch einfach mal ein Bild davon zu machen, was das Tool überhaupt macht, so findet ihr hier die Daten meines aktuellen Charakters aus der Wrath of the Righteous-Kampagne: <Avrashnir>

Logo: Ulisses Spiele
Fotografie: Roger Lewin

 

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein