Per garantire una qualità coerente delle schede dei personaggi nel repository, tutti i contributi devono soddisfare i requisiti minimi di seguito.
1. Codice di condotta
- Il Codice di Condotta di Roll20si applica alle schede dei personaggi e devono attenersi ad esso.
- Non violare la proprietà intellettuale. Le schede della comunità non devono includere la creazione o l'avanzamento del personaggio a causa di potenziali restrizioni di copyright. Le schede 'By Roll20' possono includere questi contenuti grazie alle nostre partnership con i creatori di giochi. I fogli sviluppati a partire dal codice di un foglio 'By Roll20' dovranno assicurarsi che qualsiasi codice di creazione del personaggio o di opzioni di avanzamento sia rimosso. Va bene avere attributi che si calcolano automaticamente in base ad altri attributi (compreso il livello corrente). Le faremo sapere se il suo foglio inviato viola questa regola.
- Esiste un requisito specifico per le schede dei personaggi. Tutti i contributi di nuove richieste di pull per qualsiasi scheda personaggio che contiene un'area per "genere" dovranno rendere tale area un input di testo aperto (invece di un menu a tendina contenente un elenco predefinito di opzioni). Questa linea guida riflette i nostri continui sforzi per essere inclusivi nel nostro approccio al gioco: vogliamo che il numero massimo di persone possa giocare nel modo che offre loro il maggior divertimento. In questo caso, dedicare del tempo per affrontare questa piccola modifica di programmazione fa una grande differenza per la nostra comunità.
2. Buon Codice
- Stile minimo. Tutte le schede dei personaggi dovrebbero avere una piccola quantità di CSS & HTML per renderle esteticamente gradevoli e utilizzabili. Ad esempio, gli elementi non dovrebbero sovrapporsi involontariamente quando una finestra viene ridimensionata. Il foglio dovrebbe essere familiare ai giocatori abituati a vedere la versione cartacea di quel foglio. Non è necessario che sia identico alla versione cartacea e dovrebbe evitare di violare qualsiasi diritto d'autore, ma non dovrebbe nemmeno essere disposto in modo così confuso che i giocatori avranno difficoltà a capire come usarlo. Progetta innanzitutto per la facilità d'uso.
-
Sintassi HTML corretta. Si consiglia di utilizzare una sintassi HTML corretta per aumentare l'accessibilità e rendere il codice manutenibile per i contributi della comunità. Si prevede che tutti i nuovi fogli utilizzino elementi di contenitori corretti come
< div >
e< span >
elementi. Il suo file HTML non deveutilizzare i tag<head>
o<body>
, altrimenti la sua scheda personaggio potrebbe non essere caricata sul tavolo virtuale.
-
No
<table>
used for layout. As a general standard a<table>
used for tabular data. The<table>
shall not be used forlayouts. SeeDesigning Character Sheet Layoutfor alternatives.
- Unix server compatibility is required.All CSS, HTML, and JSON files are required to be submitted with Unix line endings (LF). A Google search can tell you how to set this in your favorite text editor. Additionally, every submission must include a valid sheet.json file and a preview image. Directions for creating a proper sheet.json can be found on theGitHub README.
- Chrome & compatibile con Firefox. I due browser ufficialmente supportati da Roll20 sono Chrome & Firefox. Tutte le schede dei personaggi devono essere testate per funzionalità e stile in questi due browser.
3. Un'Esperienza Soddisfacente
- Le schede dei personaggi devono essere autonome per impostazione predefinita. 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.
- Pulsanti di lancio funzionali. Le migliori schede non solo tengono traccia delle statistiche dei personaggi, ma hanno anche i lanci più comuni del sistema di gioco incorporati in esse. Ciò rende molto più facile per i nuovi giocatori giocare al gioco aggiungendo funzionalità intuitive. Anche se non è necessario includere ogni lancio nell'intero sistema, includere lanci frequentemente utilizzati quando appropriato può elevare la scheda al livello successivo. I giochi che non hanno tiri, comeAmber Diceless Roleplaying Gioco, non sono tenuti a rispettare questo standard. Se stai progettando un foglio per un sistema in cui questa richiesta non si applica, per favore includi un commento nella tua richiesta di pull.
-
Inserimenti & campi di testo per il tracciamento dei dati. Le schede dei personaggi per i sistemi di gioco che hanno attributi e statistiche dovrebbero includere
<input>
elementi per gli utenti per tenere traccia dei loro dati. Quando possibile, utilizza nomi standard per gli attributi, scritti per esteso. Ad esempio, "intelligenza", "forza" e "saggezza". Questo è importante affinché, se un personaggio viene importato in un gioco con un foglio diverso, la maggior parte dei valori possa essere trasferita. Se i nomi degli attributi sono tutti diversi, allora nulla può essere importato. La tua miglior opzione è guardare i fogli esistenti per quel sistema e, quando possibile, utilizzare gli stessi nomi degli attributi già in uso. Allo stesso modo, dovrebbero essere inclusi<textarea>
tag, se applicabili, per consentire agli utenti di aggiungere note o descrizioni. Questa richiesta è altamente variabile in base al sistema e se questa richiesta non è applicabile al sistema di gioco per cui stai creando un foglio, includi un commento nella tua richiesta di pull.
- Le regole devono essere facilmente disponibili. I fogli possono essere inviati per giochi indipendenti e sistemi fatti in casa. I giochi fatti in casa dovranno assicurarsi di non violare i diritti d'autore del rispettivo sistema di gioco. In entrambi i casi, le regole devono essere facilmente disponibili online al pubblico.
Oltre al minimo
Le seguenti suggerimenti non sono richiesti per i nuovi fogli di personaggio che vogliono essere aggiunti al repository. Gli autori di fogli di personaggio alle prime armi con lo sviluppo front-end dovrebbero concentrarsi nel soddisfare i requisiti minimi sopra per la versione uno del loro foglio. Tuttavia, una volta che ti senti a tuo agio con le basi, i suggerimenti seguenti possono portare il foglio a un livello superiore e farlo davvero brillare.
- CSS Wizardry. La nostra comunità di autori di fogli di personaggio è estremamente intelligente e creativa. Offrono qui esempi di modi per sfruttare il sistema del foglio di personaggio.
- Modelli di lancio personalizzati. I modelli di rotolo possono essere personalizzati per abbinare lo schema di colori & allo stile della sua scheda personaggio. Inoltre, possono essere utilizzati per aiutare gli utenti a ottenere un risultato di lancio che corrisponda alle meccaniche specifiche del sistema di gioco.
-
Gli Sheet Workers sono un potente strumento!. Questi script sono una funzione avanzata del sistema dei Fogli di Carattere che consente all'autore del foglio di specificare l'esecuzione di JavaScript durante determinati eventi, come ad esempio ogni volta che vengono modificati i valori di un input
.
- Chiavi di traduzione. La localizzazione delle schede dei personaggi, o internazionalizzazione, ti permetterà di progettare il tuo foglio del personaggio in modo tale che la nostra comunità di traduttori possa tradurlo nella loro lingua, rendendo quella lingua disponibile a chiunque su Roll20. A partire da settembre 2016, non accettiamo più nuove schede dei personaggi che sono semplicemente traduzioni alternative di schede dei personaggi già esistenti.
- Impostazioni predefinite del foglio. Le opzioni selezionabili possono essere specificate nel file sheet.json fornito con il tuo foglio del personaggio personalizzato. Queste opzioni forniscono le impostazioni predefinite per tutti i personaggi quando il suo Foglio di Carattere è in uso.
- Integrazione del Compendio. Indicando che il suo foglio è compatibile con un Compendio, i giocatori avranno accesso diretto a quel Compendio nella barra laterale destra durante il gioco. I compendium sono ancora una funzionalità in crescita su Roll20 e l'integrazione non è ancora disponibile per la maggior parte dei sistemi di gioco.
-
Includa i nomi degli attributi nei titoli. L'aggiunta di
title=@{attribute_name}
aiuta i creatori di macro a trovare più facilmente il nome degli attributi. I titoli vengono occasionalmente utilizzati per altri scopi, quindi usa il tuo miglior giudizio.
-
Collegamento alla pagina wikiSe ha creato una pagina wiki per il suo foglio, potrebbe collegarsi alla sezionesheet.json'
istruzioni
.
Best Practices
Queste sono linee guida delle migliori pratiche per aumentare la coerenza tra gli autori dei fogli al fine di fornire un repository di codice mantenibile per la comunità.
Attributi/Ingressi
- I nomi degli attributi dovrebbero essere in minuscolo. Per una questione di coerenza, tutti coloro che lo fanno rendono la programmazione un po' più facile.
-
Gli RPG hanno parole strane. Utilizza
spellcheck="false"
per gli input di testo e le aree di testo per evitare che il browser segnali errori di ortografia.
- Utilizza meno attributi & negli input. Più attributi e input hai, più lento sarà il caricamento del foglio. Questo non è un problema per il foglio medio, ma fogli robusti comeD&D 5E Foglio per rotolooPathfinder (Community)attributi in eccesso & input possono portare a problemi di prestazioni se non gestiti.
- Si estende su ingressi disabilitati. Le campate con attributisono più efficienti degli ingressi disabilitati.
Lattonieri & Modelli di rotolo
- Eviti le cascate asincrone. Quando possibile, evitare le cascate asincrone per i fogli di lavoro. Un esempio è getAttrs -> calcoli -> setAttrs -> getAttrs -> calcoli -> setAttrs… Un modo migliore per fare ciò è ottenere gli attributi per tutto ciò di cui avrai bisogno, quindi effettuare tutti i calcoli necessari prima di utilizzare un singolo setAttrs.
- Lavoratori del foglio di lavoro su attributi calcolati automaticamente. I lavoratori del foglio di lavoro vengono attivati quando si verificano eventi che migliorano le prestazioni per i fogli di lavoro dei personaggi su attributi calcolati automaticamente poiché questi eventi si verificano meno frequentemente.
- Collochi i modelli di rotolo e i fogli di lavoro in fondo alla pagina HTML.È considerata la migliore prassi diposizionare JavaScript alla fine delle pagine
Dettagli di stile della modalità scura
- Commutazione del tema
Quando un utente passa alla modalità scura, il tavolo virtuale aggiunge la classe CSS specifica.sheet-darkmode
all'elemento <body> . Quando si riporta l'interruttore sulla luce, la classe viene rimossa. - Cambio tema
Aggiungendo scelte di colore alla fine dei fogli di lavoro CSS, racchiusi in unbody.sheet-darkmode { }
gli utenti vedranno il cambiamento quando attiveranno l'interruttore.
Altro specifico di Roll20
-
Evitare !important. Ogni volta che possibile, cerca di evitare di utilizzare
!important
in CSS poiché può creare un effetto a cascata di sempre più !importants.
-
Non includere
foglio-
per i nomi delle classi CSS nell'HTML.foglio-
viene automaticamente aggiunto alle classi CSS nell'HTML, quindi è ridondante ripeterlo lì. Ometterlo aumenta anche la leggibilità se vengono utilizzate molte classi.- Ad esempio nell'HTML, invece di
class="sheet-strRow"
, fai semplicementeclass="strRow"
. ATTENZIONE: quanto sopra non è vero per le classi di elementi <rolltemplate> . Per questi, è necessario specificare il nome completo della classe (cioè iniziando consheet-
) o i tuoi rolltemplates smetteranno semplicemente di funzionare.
- Ad esempio nell'HTML, invece di
- Includi una larghezza minima. Includendo una larghezza minima nel foglio aiuterà con il ridimensionamento. Cerca di non superare la larghezza predefinita quando si apre un foglio per la prima volta, approssimativamente 800px-900px. Le schede dei personaggi con una vista NPC possono essere più piccole e le schede PC elaborate sono talvolta più grandi.
- Usa ^{ } per le traduzioni nelle macro dei pulsanti. Nelle tue macro dei pulsanti, usando ^{key} verrà inserita la chiave appropriata dal json di traduzione della lingua appropriata. Questo rende i modelli di roll più adattabili ad altre lingue.
GitHub/Invio Scheda
-
Usa
git branch
per il tuo lavoro in corso. Crea un nuovo branch per salvare il tuo lavoro in corso. Unisca il codice finito nel ramo masterroll20-character-sheetssolo quando è pronto per una richiesta di pull. Questo aiuterà a evitare di inviare richieste di pull con codice incompleto che possono causare ritardi nella fusione del codice. Ancora meglio, forkare il repository roll20-character-sheets e inviare le tue richieste di pull tramite GitHub.
- Includi tutte le immagini nel Repository Git. Le immagini dovrebbero essere incluse nel repository GitHub per un facile accesso, riduzione delle dipendenze esterne e aggiornamenti più semplici.
Per saperne di più suGuida per principianti a GitHub.
HTML/CSS/Coding generale
Suggerimenti generali che si applicano oltre alla creazione di schede personaggio per Roll20.
-
Cerca di essere vicino allo standard XHTML. Ad esempio, termina gli elementi con una barra come questo
<input ... />
. -
Utilizza gli stili inline solo come ultima risorsa. Gli stili inline sono codici meno manutenibili e i fogli di stile esterni sono quasi sempre una scelta migliore. Mantenga gli attributi
style =
nell'HTML al minor numero possibile. - Scrivi codice leggibile.Se il codice è più leggibile, è più facile per gli altri contribuire e collaborare. 18 Suggerimenti per scrivere codice leggibile
- Segui le linee guida generali di HTML/CSS.Quando non contraddicono le migliori pratiche specifiche di Roll20, segui le linee guida consigliate per mantenere il tuo codice coerente e più leggibile, come ad esempio: