Um eine konsistente Qualität der Charakterbögen im Repository zu gewährleisten, müssen alle Einreichungen die untenstehenden Mindestanforderungen erfüllen.
1. Verhaltenskodex
- Roll20-Verhaltenskodexgilt für Charakterbögen und sie müssen sich daran halten.
- Verstoß gegen geistiges Eigentum vermeiden. Gemeinschaftscharakterbögen sollten keine Charaktererstellung oder Weiterentwicklung enthalten, aufgrund potenzieller Urheberrechtsbeschränkungen. 'By Roll20'-Bögen können diesen Inhalt dank unserer Partnerschaften mit Spiel-Erstellern enthalten. Bögen, die aus dem Code eines 'By Roll20'-Bogens entwickelt werden, müssen sicherstellen, dass jeder Code für Charaktererstellung oder -entwicklung entfernt wird. Es ist in Ordnung, Attribute zu haben, die basierend auf anderen Attributen (einschließlich des aktuellen Levels) automatisch berechnet werden. Wir werden dich benachrichtigen, falls dein eingereichter Bogen gegen diese Regel verstößt.
- Es gibt eine spezifische Anforderung für Charakterbögen. Alle Einreichungen von neuen Pull Requests für einen Charakterbogen, der ein Feld für das 'Geschlecht' enthält, müssen daraus ein offenes Texteingabefeld machen (anstatt einer Dropdown-Liste mit vordefinierten Optionen). Diese Richtlinie spiegelt unsere fortlaufenden Bemühungen wider, inklusiv zu sein in unserem Ansatz zur Förderung des Spielens - wir möchten, dass so viele Menschen wie möglich auf die für sie angenehmste Weise spielen können. In diesem Fall macht es einen großen Unterschied für unsere Gemeinschaft, sich die Zeit zu nehmen, diese kleine Programmänderung vorzunehmen.
2. Guter Kodex
- Mindeststyling. Alle Charakterbögen sollten ein wenig CSS & HTML-Styling haben, damit sie ästhetisch ansprechend und benutzbar sind. Zum Beispiel sollten sich Elemente nicht ungewollt überlappen, wenn die Größe eines Fensters geändert wird. Das Blatt sollte den Spielerinnen und Spielern vertraut sein, die es gewohnt sind, die Papierversion des Blattes zu sehen. Sie muss nicht identisch mit der Papierversion sein und sollte keine Urheberrechte verletzen, aber sie sollte auch nicht so verrückt gestaltet sein, dass die Spielerinnen und Spieler nicht verstehen, wie man sie benutzt. Entwickle vor allem die Benutzerfreundlichkeit.
-
Richtige HTML-Syntax. Eine korrekte HTML-Syntax wird empfohlen, um die Zugänglichkeit zu verbessern und den Code für Beiträge der Gemeinschaft wartbar zu machen. Alle neuen Blätter müssen die richtigen Container-Elemente wie
<div>
und<span>
verwenden. Deine HTML-Datei darfkein<head>
oder<body>
Tag verwenden, da sonst dein Charakterbogen nicht im virtuellen Spieltisch geladen wird.
-
Keine
<Tabelle>
für Layoutbenutzt. Als allgemeiner Standard sollte ein<Tabellen>
Element nur für tabellarische Daten verwendet werden. Die<Tabellen>
sollten nicht für Layoutsverwendet werden. SieheGestaltung des Layouts des Charakterbogens für Alternativen.
- Die Kompatibilität mit Unix-Servern ist erforderlich.Alle CSS-, HTML- und JSON-Dateien müssen mit Unix-Zeilenenden (LF) eingereicht werden. Eine Google-Suche kann dir sagen, wie du dies in deinem favorisierten Texteditor einstellen kannst. Zudem muss jeder Beitrag eine gültige sheet.json-Datei und ein Vorschaubild enthalten. Anweisungen zur Erstellung einer korrekten sheet.json finden Sie im GitHub README.
- Chrome & Firefox-kompatibel. Die beiden offiziell unterstützten Browser von Roll20 sind Chrome & und Firefox. Alle Charakterbögen müssen in diesen beiden Browsern auf Funktionalität und Design getestet werden.
3. Ein Zufriedenstellendes Erlebnis
- Charakterbögen müssen standardmäßig eigenständig sein. All basic sheet functionality must be usable without external requirements such as images or fonts hosted outside Roll20, and Mod (API) companion scripts. Mod (API) companions are a welcome supplement for character sheets, but to ensure accessibility & functionality to community members at all of subscription levels, the sheet must be usable by default without outside requirements.
- Funktionale Wurfschaltflächen. Die besten Blätter führen nicht nur Charakterstatistiken, sondern enthalten auch die häufigsten Würfe für das Spielsystem. Dies erleichtert es neuen Spielern, das Spiel zu spielen, indem sie intuitive Funktionen hinzufügen. Sie müssen nicht jeden Wurf im gesamten System einschließen, aber das Hinzufügen von häufig verwendeten Würfen kann Ihren Blatt auf die nächste Ebene heben. Spiele ohne Würfe, wie z.B.Amber Diceless Roleplaying Game, müssen nicht diesem Standard entsprechen. Wenn Sie ein Blatt für ein System entwerfen, für das diese Anforderung nicht gilt, fügen Sie einen Kommentar zu Ihrer Pull-Anfrage hinzu.
-
Eingaben & Textfelder für die Datenaufzeichnung. Charakterbögen für Spielsysteme, die Attribute und Statistiken haben, sollten
<input>
-Elemente enthalten, um Benutzern die Verfolgung ihrer Daten zu ermöglichen. Verwenden Sie nach Möglichkeit Standardnamen für Attribute, ausgeschrieben. Zum Beispiel "Intelligenz", "Stärke" und "Weisheit". Dies ist wichtig, damit Werte eines Charakters, wenn er in ein Spiel mit einem anderen Blatt importiert wird, größtenteils übernommen werden können. Wenn die Attributnamen alle unterschiedlich sind, kann nichts importiert werden. Deine beste Wahl ist es, dir vorhandene Blätter für dieses System anzuschauen und wann immer möglich die gleichen Attributnamen zu verwenden, die bereits verwendet werden. Ebenso sollten<textarea>
-Tags verwendet werden, wenn sie für Benutzer zur Hinzufügung von Notizen oder Beschreibungen geeignet sind. Dieses Anforderung ist stark variabel basierend auf dem System und wenn diese Anforderung nicht auf das Spiel-System zutrifft, für das du einen Bogen erstellst, füge bitte einen Kommentar in deinen Pull Request ein.
- Regel muss einfach verfügbar gemacht werden. Blätter können für unabhängige Spiele und selbstgemachte Systeme eingereicht werden. Selbstgemachte Spiele müssen sicherstellen, dass sie das Urheberrecht für ihr entsprechendes Spiel-System nicht verletzen. In beiden Fällen müssen die Regeln online für die Öffentlichkeit leicht verfügbar sein.
Über das Mindestmaß hinaus
Die folgenden Vorschläge sind nicht erforderlich für neue Charakterbögen, die dem Repository hinzugefügt werden sollen. Wenn du neu in der Frontend-Entwicklung bist, solltest du dich darauf konzentrieren, die Mindestanforderungen für die Version eins deines Charakterbogens zu erfüllen. Sobald du jedoch mit den Grundlagen vertraut bist, können die folgenden Vorschläge den Charakterbogen einen Schritt weiter bringen und ihn wirklich brillieren lassen.
- CSS Wizardry. Unsere Community von Bogenautoren ist außergewöhnlich klug und kreativ. Sie bieten hier Beispiele für Möglichkeiten, das Charakterbogensystem einzusetzen.
- Benutzerdefinierte Rollenvorlagen. Die Würfelvorlagen können an das Farbschema & und den Stil deines Charakterbogens angepasst werden. Darüber hinaus können sie dazu verwendet werden, um Benutzern dabei zu helfen, eine Würfelausgabe zu erzielen, die den spezifischen Mechaniken des Spielsystems entspricht.
-
Sheetbauer sind ein mächtiges Werkzeug!. Diese Skripte sind eine erweiterte Funktion des Charakterbogensystems, mit der der Bogenautor JavaScript angeben kann, das bei bestimmten Ereignissen ausgeführt wird, wie z. B. immer wenn sich die Werte in einem
Eingabefeld
ändern.
- Übersetzungsschlüssel. Charakterbogen-Internationalisierung ermöglicht es dir, deinen Charakterbogen so zu gestalten, dass unsere Übersetzungsgemeinschaft ihn in ihre Sprache übersetzen kann, sodass diese Sprache für jeden auf Roll20 verfügbar ist. Seit September 2016 akzeptieren wir keine neuen Charakterbögen mehr, die lediglich alternative Übersetzungen bereits vorhandener Charakterbögen sind.
- Standard-Charakterbogeneinstellungen. Auswahlmöglichkeiten können in der sheet.json-Datei angegeben werden, die mit deinem benutzerdefinierten Charakterbogen bereitgestellt wird. Diese Optionen bieten Standardwerte für alle Charaktere, wenn dein Charakterbogen verwendet wird.
- Kompendium-Integration. Indem du bezeichnest, dass dein Bogen mit einem Kompendium kompatibel ist, haben Spieler während des Spiels direkten Zugriff auf dieses Kompendium in der rechten Seitenleiste. Compendiums sind immer noch ein wachsendes Feature auf Roll20 und die Integration steht noch nicht für die Mehrheit der Spielsysteme zur Verfügung.
-
Attribute-Namen in Titel einfügen. Das Hinzufügen von
title=@{attribute_name}
erleichtert es den Makro-Erstellern, den Namen der Attribute zu finden. Titel werden gelegentlich für andere Zwecke verwendet, also benutze dein bestes Urteilsvermögen.
-
Verlinkung zur Wiki-SeiteWenn du eine Wiki-Seite für deinen Bogen erstellt hast, kannst du sie im sheet.json 's
Anweisungen
Abschnitt verlinken.
Best Practices
Dies sind Best-Practice-Richtlinien, um die Konsistenz zwischen den Bogenautoren zu erhöhen und ein pflegbares Code-Repository für die Community bereitzustellen.
Attribute/Eingaben
- Attributnamen sollten in Kleinbuchstaben sein. Um der Konsistenz willen, macht es das Programmieren etwas einfacher, wenn jeder dies macht.
-
RPGs have strange words. Verwende
spellcheck="false"
für Texteingaben und Textareas, um die Anzeige von Rechtschreibfehlern im Browser zu verhindern.
- Verwende weniger Attribute & für Eingaben. Je mehr Attribute und Eingaben du hast, desto langsamer wird das Blatt geladen. Für den durchschnittlichen Bogen ist das kein Problem, aber robuste Bögen wie derD&D 5E Bogen von der Rolleoder derPathfinder (Community)Überschussattribute & Eingaben können zu Leistungsproblemen führen, wenn sie nicht verwaltet werden.
- Spans über deaktivierte Eingaben. Attribute-unterstützte Spans sind effizienter als deaktivierte Eingaben.
Blattbearbeiter & Rollenvorlagen
- Asynchrone Ketten vermeiden. Immer wenn möglich, vermeide asynchrone Kaskaden für Blatt-Arbeiter. Ein Beispiel hierfür ist, getAttrs -> Berechnungen -> setAttrs -> getAttrs -> Berechnungen -> setAttrs… Eine bessere Möglichkeit besteht darin, alles, was du brauchst, mit getAttrs zu erhalten, dann alle notwendigen Berechnungen durchzuführen, bevor du schließlich setAttrs verwendest.
- Blatt-Arbeiter über automatisch berechnete Attribute. Blatt-Arbeiter werden ausgelöst, wenn Ereignisse auftreten, was die Leistung für Charakterbögen verbessert im Vergleich zu automatisch berechneten Attributen, da diese Ereignisse seltener auftreten.
- Platziere Würfel-Vorlagen und Blatt-Arbeiter am Ende der HTML-Seite.Es gilt alsbewährte Praxis, JavaScript am Ende der Seiten zu platzieren.
Details zur Dunkelmodus-Stilisierung
- Themenwechsel
Wenn ein Benutzer in den Dunkelmodus wechselt, fügt die virtuelle Spieltischklasse den spezifischen CSS-Klassen.sheet-darkmode
dem <body> Element hinzu. Beim Zurückschalten auf den hellen Modus wird diese Klasse entfernt. - Themenänderung
Durch Hinzufügen von Farbwahlmöglichkeiten am Ende deiner Blätter deines Blattes CSS, eingepackt in abody.sheet-darkmode { }
Benutzer, sehen die Änderung, wenn sie den Schalter umlegen.
Andere Roll20-spezifische
-
Vermeiden Sie !important. Verwende nach Möglichkeit
!important
in CSS nicht, da es einen kaskadierenden Effekt von immer mehr !important erzeugen kann.
-
Füge
nicht hinzu.
für CSS-Klassennamen im HTML.sheet-
wird automatisch zu den CSS-Klassen im HTML hinzugefügt, daher ist es überflüssig, es dort zu wiederholen. Es ist auch lesbarer, wenn viele Klassen verwendet werden, um sie auszulassen.- Zum Beispiel im HTML anstelle von
class="sheet-strRow"
mach einfachclass="strRow"
. ACHTUNG: Das vorherige ist für Klassen von <rolltemplate> Elementen nicht wahr. Bei diesen musst du den vollständigen Klassennamen angeben (d. h. mit Beginn aussheet-
), ansonsten funktionieren deine Rollenvorlagen einfach nicht mehr.
- Zum Beispiel im HTML anstelle von
- Füge eine minimale Breitehinzu. Das Hinzufügen einer minimalen Breite zum Charakterbogen erleichtert das Ändern der Größe. Versuche nicht, die Standardbreite zu überschreiten, wenn ein Charakterbogen zum ersten Mal geöffnet wird, etwa 800px-900px. Charakterbögen mit einer NSC-Ansicht können kleiner sein und ausführliche SC-Bögen sind manchmal größer.
- Verwende ^{ } für Übersetzungen in Button-Makros. In deinen Button-Makros fügt ^{key} den entsprechenden Schlüssel aus dem entsprechenden Sprachübersetzungs-Json ein. Dadurch werden Rollenvorlagen besser an andere Sprachen angepasst.
GitHub/Sheet Einreichung
-
Verwenden Sie
den Git-Branch
für Ihre Arbeit in Bearbeitung. Erstellen Sie einen neuen Branch, um Ihre Arbeit in Bearbeitung zu speichern. Führe erst den fertigen Code in den roll20-character-sheets Master-Branch zusammen, wenn er für einen Pull Request bereit ist. Dadurch wird verhindert, dass unvollständiger Code in Pull Requests eingereicht wird, was zu Verzögerungen bei der Zusammenführung des Codes führen kann. Noch besser ist es, die roll20-character-sheets-Repository zu forken und Ihre Pull Requests über GitHub einzureichen.
- Fügen Sie alle Bilder in das Git-Repositoryein. Bilder sollten im GitHub-Repository enthalten sein, um einfachen Zugriff, reduzierte externe Abhängigkeiten und einfachere Aktualisierungen zu ermöglichen.
Weitere Informationen findest du in derAnfängeranleitung für GitHub.
Allgemeine HTML/CSS/Codierung
Allgemeine Tipps, die über die Erstellung von Charakterbögen für Roll20 hinaus gelten.
-
Versuchen Sie, dem XHTML-Standard nahe zu sein. Zum Beispiel, Beenden der Elemente mit einem Schrägstrich wie diesem
<input ... />
. -
Verwenden Sie Inline-Styles als letztes Mittel. Inline-Styles sind weniger wartbarer Code und externe Style Sheets sind fast immer eine bessere Option. Behalte so wenig wie möglich
style =
Attribute im HTML. - Schreibe lesbaren Code.Wenn der Code lesbarer ist, ist es für andere leichter, beizutragen und zusammenzuarbeiten. 18 Tipps zum Schreiben von lesbarem Code
- Folge allgemeinen HTML/CSS-Style-Guides.Wenn keine Widersprüche zu Roll20-spezifischen bewährten Praktiken bestehen, folge empfohlenen Style-Guides, um deinen Code konsistent und lesbarer zu halten, wie zum Beispiel: