Um eine gleichbleibende Qualität der Charakterblätter im Repository sicherzustellen, müssen alle Einsendungen die unten aufgeführten Mindestanforderungen erfüllen.
1. Verhaltensregeln verstoßen hast.
- Der Verhaltenskodexvon Roll20 gilt für Charakterbögen und sie müssen sich daran halten.
- Verletzen Sie nicht das geistige Eigentum. Community-Blätter sollten aufgrund möglicher Urheberrechtsbeschränkungen keine Charaktererstellung oder -entwicklung beinhalten. „By Roll20“-Blätter können diesen Inhalt dank unserer Partnerschaften mit Spieleentwicklern enthalten. Blätter, die aus dem Code eines „By Roll20“-Bogens entwickelt werden, müssen sicherstellen, dass jeglicher Code für die Charaktererstellung oder Weiterentwicklungsoptionen entfernt wird. Es ist in Ordnung, Attribute zu haben, die automatisch basierend auf anderen Attributen (einschließlich der aktuellen Ebene) berechnet werden. Wir informieren Sie, wenn Ihr eingereichtes Blatt gegen diese Regel verstößt.
- Es gibt eine bestimmte Anforderung für Charakterbögen. Alle Einreichungen neuer Pull-Requests für ein Charakterblatt, das einen Bereich für „Geschlecht“ enthält, müssen eine offene Texteingabe sein (im Gegensatz zu einem Dropdown-Menü mit einer vordefinierten Liste von Optionen). Diese Richtlinie spiegelt unsere kontinuierlichen Bemühungen wider, in unserem Ansatz zur Erleichterung des Spielens inklusiv zu sein – wir möchten, dass möglichst viele Menschen auf die Art und Weise spielen können, die ihnen am meisten Spaß macht. In diesem Fall macht es einen großen Unterschied für unsere Community, sich die Zeit zu nehmen, diese kleine Programmieränderung anzugehen.
2. Guter Code
- Minimales Styling. Alle Zeichenblätter sollten einen kleinen Anteil an CSS & HTML-Stil aufweisen, um sie ästhetisch ansprechend und benutzerfreundlich zu machen. Beispielsweise sollten sich Elemente nicht unbeabsichtigt überlappen, wenn die Größe eines Fensters geändert wird. Das Blatt sollte Spielern bekannt sein, die es gewohnt sind, die Papierversion dieses Blattes zu sehen. Es muss nicht mit der Papierversion identisch sein und darf keine Urheberrechte verletzen, aber es sollte auch nicht so verrückt gestaltet sein, dass es den Spielern schwerfällt, die Verwendung zu verstehen. Beim Design steht in erster Linie die Benutzerfreundlichkeit im Vordergrund.
-
Richtige HTML-Syntax. Die richtige HTML-Syntax wird empfohlen, um die Zugänglichkeit zu verbessern und den Code für Community-Beiträge wartbar zu machen. Von allen neuen Blättern wird erwartet, dass sie geeignete Containerelemente wie
<div>
und<span>
Elemente verwenden. Ihre HTML-Datei darfdas Tag<head>
oder<body>
verwenden, sonst wird Ihr Zeichenblatt möglicherweise nicht in die virtuelle Tischplatte geladen.
-
Nr.
<Tabelle>
verwendet für Layout. Als allgemeiner Standard sollte ein<Tabelle>
Element nur für Tabellendaten verwendet werden. Die<Tabelle>
darf nicht fürLayoutsverwendet werden. Alternativen finden SieEntwerfen des Zeichenblattlayouts.
- Unix-Serverkompatibilität ist erforderlich.Alle CSS-, HTML- und JSON-Dateien müssen mit Unix-Zeilenenden (LF) übermittelt werden. Eine Google-Suche kann Ihnen sagen, wie Sie dies in Ihrem bevorzugten Texteditor einstellen. Darüber hinaus muss jede Einreichung eine gültige sheet.json-Datei und ein Vorschaubild enthalten. Anweisungen zum Erstellen einer geeigneten sheet.json finden Sie in derGitHub README.
- Chrome & Firefox-kompatibel. Die beiden offiziell unterstützten Browser von Roll20 sind Chrome & Firefox. Alle Zeichenblätter müssen in diesen beiden Browsern auf Funktionalität und Stil getestet werden.
3. Eine zufriedenstellende Erfahrung
- Zeichenblätter müssen standardmäßig eigenständig sein. Alle grundlegenden Blattfunktionen müssen ohne externe Anforderungen wie Bilder oder Schriftarten, die außerhalb von Roll20 gehostet werden, und API-Begleitskripts nutzbar sein. API-Begleiter sind eine willkommene Ergänzung für Charakterblätter, aber um Community-Mitgliedern auf allen Abonnementebenen die Funktionalität „Zugänglichkeit & zu gewährleisten, muss das Blatt standardmäßig ohne externe Anforderungen verwendbar sein.
- Funktionelle Rolltasten. Die besten Blätter zeichnen nicht nur die Charakterstatistiken auf, sie enthalten auch die häufigsten Würfe für das Spielsystem. Dies macht es für neue Spieler viel einfacher, das Spiel zu spielen, indem intuitive Funktionen hinzugefügt werden. Obwohl Sie nicht jede Rolle im gesamten System einbeziehen müssen, kann die Einbeziehung häufig verwendeter Rollen, wo angebracht, Ihr Blatt auf die nächste Ebene heben. Spiele, die keine Würfe haben, wie zum BeispielAmber Diceless Roleplaying Game, müssen diesen Standard nicht erfüllen. Wenn Sie ein Blatt für ein System entwerfen, für das diese Anforderung nicht gilt, fügen Sie bitte einen Kommentar in Ihre Pull-Anfrage ein.
-
Eingaben & Textfelder zur Datenverfolgung. Charakterblätter für Spielsysteme mit Attributen und Statistiken sollten
<input>
Elemente enthalten, damit Benutzer den Überblick über ihre Daten behalten. Verwenden Sie nach Möglichkeit buchstabierte Standardnamen für Attribute. Zum Beispiel „Intelligenz“, „Stärke“ und „Weisheit“. Dies ist wichtig, damit die meisten Werte geändert werden können, wenn ein Charakter mit einem anderen Blatt in ein Spiel importiert wird. Wenn die Attributnamen alle unterschiedlich sind, kann nichts importiert werden. Am besten sehen Sie sich die vorhandenen Tabellenblätter für dieses System an und verwenden nach Möglichkeit dieselben Attributnamen, die bereits verwendet werden. Ebenso sollten<textarea>
Tags enthalten sein, wenn Benutzer Notizen oder Beschreibungen hinzufügen können. Diese Anforderung ist je nach System sehr unterschiedlich. Wenn diese Anforderung nicht auf das Spielsystem zutrifft, für das Sie ein Blatt erstellen, fügen Sie bitte einen Kommentar in Ihre Pull-Anfrage ein.
- Regeln müssen leicht verfügbar sein. Blätter können für unabhängige Spiele und Homebrew-Systeme eingereicht werden. Homebrew-Spiele müssen sicherstellen, dass sie das Urheberrecht für ihr jeweiliges Spielsystem nicht verletzen. In beiden Fällen müssen die Regeln der Öffentlichkeit online leicht zugänglich sein.
Jenseits des Minimums
Die folgenden Vorschläge sind für neue Charakterblätter, die dem Repository hinzugefügt werden sollen, nicht erforderlich. Angehende Blattautoren, die neu in der Frontend-Entwicklung sind, sollten sich darauf konzentrieren, die oben genannten Mindestanforderungen für die erste Version ihres Blattes zu erfüllen. Sobald Sie jedoch mit den Grundlagen vertraut sind, können Sie mit den folgenden Vorschlägen das Blatt noch einen Schritt weiter bringen und es wirklich zum Glänzen bringen.
- CSS-Zauberei. Unsere Community von Blattautoren ist außergewöhnlich clever und kreativ. Sie bieten hier Beispiele für Möglichkeiten, das Charakterblattsystem zu nutzen.
- Individuelle Rollenvorlagen. Rollenvorlagen können an den Farbschema- & Stil Ihres Charakterblatts angepasst werden. Darüber hinaus können sie verwendet werden, um Benutzern dabei zu helfen, eine Wurfausgabe zu erzielen, die der spezifischen Mechanik des Spielsystems entspricht.
-
Sheet Worker sind ein leistungsstarkes Werkzeug!. Diese Skripte sind eine erweiterte Funktion des Character Sheets-Systems, die es dem Blattautor ermöglicht, JavaScript anzugeben, das bei bestimmten Ereignissen ausgeführt werden soll, beispielsweise immer dann, wenn die Werte an einer
-Eingabe
geändert werden.
- Übersetzungsschlüssel. Charakterblatt i18n, oder Internationalisierung, ermöglicht es Ihnen, Ihr Charakterblatt so zu gestalten, dass unsere Übersetzergemeinschaft Ihr Blatt in ihre Sprache übersetzen kann, sodass diese Sprache jedem auf Roll20 zur Verfügung steht. Seit September 2016 akzeptieren wir keine neuen Charakterbögen mehr, bei denen es sich lediglich um alternative Übersetzungen bereits vorhandener Charakterbögen handelt.
- Standardblatteinstellungen. Auswählbare Optionen können in der Datei sheet.json angegeben werden, die mit Ihrem benutzerdefinierten Zeichenblatt bereitgestellt wird. Diese Optionen bieten Standardeinstellungen für alle Charaktere, wenn Ihr Charakterbogen verwendet wird.
- Kompendium Integration. Indem Sie festlegen, dass Ihr Blatt mit einem Kompendium kompatibel ist, haben Spieler während des Spiels in der rechten Seitenleiste direkten Zugriff auf dieses Kompendium. Kompendien sind immer noch ein wachsendes Feature auf Roll20 und die Integration ist für die meisten Spielsysteme noch nicht verfügbar.
-
Attributnamen in Titel einbeziehen. Durch das Hinzufügen von
title=@{attribute_name}
können Makroersteller die Namen von Attributen leichter finden. Titel werden gelegentlich für andere Zwecke verwendet, also verwenden Sie Ihr bestes Urteilsvermögen.
-
Link zur Wiki-SeiteWenn Sie eine Wiki-Seite für Ihr Blatt erstellt haben, können Sie im Abschnittsheet.json
Anweisungen
auf in verlinken.
Empfohlene Vorgehensweise
Hierbei handelt es sich um Best-Practice-Richtlinien, die dazu beitragen sollen, die Konsistenz zwischen Blattautoren zu erhöhen und so ein wartbares Code-Repository für die Community bereitzustellen.
Attribute/Eingaben
- Attributnamen sollten in Kleinbuchstaben angegeben werden. Aus Gründen der Konsistenz erleichtert jeder, der dies tut, das Programmieren ein wenig.
-
Rollenspiele haben seltsame Wörter. Verwenden Sie für Texteingaben und Textbereiche
, Spellcheck="false"
, um zu verhindern, dass der Browser Rechtschreibfehler anzeigt.
- Weniger Attribute verwenden & Eingaben. Je mehr Attribute und Eingaben Sie haben, desto langsamer wird das Blatt geladen. Für das durchschnittliche Blatt stellt dies kein Problem dar, aber robuste Blätter wie dasD&D 5E-Blatt nach Rolleoder dasPathfinder (Community)überschüssige Attribute & Eingaben können zu Leistungsproblemen führen, wenn sie nicht verwaltet werden.
- Überspannt deaktivierte Eingänge. Attributgestützte Spannensind effizienter als deaktivierte Eingaben.
Sheetworkers & Rollenvorlagen
- Asynchrone Kaskaden vermeiden. Vermeiden Sie nach Möglichkeit asynchrone Kaskaden für Blattarbeiter. Ein Beispiel hierfür ist getAttrs –> Berechnungen –> setAttrs –> getAttrs –> Berechnungen –> setAttrs… Ein besserer Weg, dies zu tun, ist getAttrs für alles, was Sie benötigen, und dann alle notwendigen Berechnungen durchzuführen, bevor Sie schließlich ein einzelnes setAttrs verwenden.
- Blattarbeiter über automatisch berechnete Attribute. Blattarbeiter werden ausgelöst, wenn Ereignisse eintreten, was die Leistung von Charakterblättern gegenüber automatisch berechneten Attributen verbessert, da diese Ereignisse seltener auftreten.
- Platzieren Sie Roll Templates und Sheet Worker am unteren Rand der HTML-Seite.Es gilt alsBest Practice, JavaScript am Ende der Seiten zu platzieren
Details zum Dark Mode-Styling
- Theme-Schalter
Wenn ein Benutzer in den Dunkelmodus wechselt, fügt die virtuelle Tischplatte dem <body> Element die spezifische CSS-Klasse.sheet-darkmode
hinzu. Wenn der Schalter wieder auf Licht gestellt wird, wird diese Klasse entfernt. - Theme-Änderung
Durch das Hinzufügen von Farboptionen am Ende Ihrer Blätter wird das CSS Ihres Blattes, verpackt in einembody.sheet-darkmode { }
, Benutzern die Änderung angezeigt, wenn sie den Schalter betätigen.
Andere Roll20-spezifische
-
Vermeiden Sie !important. Vermeiden Sie nach Möglichkeit die Verwendung von
!important
in CSS, da dies zu einem kaskadierenden Effekt von immer mehr !importants führen kann.
-
Blatt
nicht für CSS-Klassennamen in HTMLeinschließen.Blatt
wird automatisch zu den CSS-Klassen im HTML hinzugefügt, daher ist es überflüssig, es dort zu wiederholen. Das Weglassen erhöht auch die Lesbarkeit, wenn viele Klassen verwendet werden.- Führen Sie beispielsweise im HTML anstelle von
class="sheet-strRow"
einfachclass="strRow"
aus. WARNUNG: Das oben Gesagte gilt nicht für Klassen mit <rolltemplate> Elementen. Für diese müssen Sie den vollständigen Klassennamen angeben (z. B. beginnend mit, Blatt
), sonst funktionieren Ihre Rolltemplates einfach nicht mehr.
- Führen Sie beispielsweise im HTML anstelle von
- Geben Sie eine Mindestbreitean. Die Angabe einer Mindestbreite auf dem Blatt hilft bei der Größenänderung. Versuchen Sie, beim ersten Öffnen eines Blatts die Standardbreite von etwa 800 bis 900 Pixel nicht zu überschreiten. Charakterbögen mit NPC-Ansicht können kleiner sein und aufwändige PC-Blätter sind manchmal größer.
- Verwenden Sie ^{ } für Übersetzungen in Schaltflächenmakros. Wenn Sie in Ihren Schaltflächenmakros ^{key} verwenden, wird der entsprechende Schlüssel aus dem Übersetzungs-JSON der entsprechenden Sprache eingefügt. Dadurch können Rollenvorlagen besser an andere Sprachen angepasst werden.
GitHub/Sheet-Einreichung
-
Verwenden Sie
Git Branch
für Ihre laufende Arbeit. Erstellen Sie einen neuen Zweig, um Ihre laufende Arbeit zu speichern. Führen Sie den fertigen Code erst dann in den Master-Zweigroll20-character-sheetsein, wenn er für eine Pull-Anfrage bereit ist. Dadurch wird verhindert, dass Pull-Requests mit unvollständigem Code übermittelt werden, was zu einer Verzögerung bei der Codezusammenführung führen kann. Besser noch, teilen Sie das roll20-character-sheets-Repository auf und senden Sie Ihre Pull-Anfragen über GitHub.
- Alle Bilder in das Git-Repository einschließen. Bilder sollten im GitHub-Repository enthalten sein, um einen einfachen Zugriff, geringere externe Abhängigkeiten und einfachere Aktualisierungen zu ermöglichen.
Lesen Sie mehr unterBeginner's Guide to GitHub.
Allgemeines HTML/CSS/Codierung
Allgemeine Tipps, die über die reine Arbeit mit der Erstellung von Charakterblättern für Roll20 hinausgehen.
-
Versuchen Sie, dem XHTML-Standardnahe zu kommen. Beenden Sie beispielsweise Elemente mit einem Schrägstrich wie diesem
<input ... />
. -
Verwenden Sie Inline-Stile als letzten Ausweg. Inline-Stile sind weniger wartbarer Code und externe Stylesheets sind fast immer eine bessere Option. Beschränken Sie die Anzahl der
style =
-Attribute im HTML auf so wenige wie möglich. - Schreibe lesbaren Code.Wenn der Code besser lesbar ist, ist es für andere einfacher, Beiträge zu leisten und zusammenzuarbeiten. 18 Tipps zum Schreiben von lesbarem Code
- Befolgen Sie die allgemeinen HTML/CSS-Styleguides.Wenn Sie nicht im Widerspruch zu Roll20-spezifischen Best Practices stehen, befolgen Sie die empfohlenen Styleguides, um Ihren Code konsistent und besser lesbar zu halten, wie zum Beispiel: