A causa della pandemia, molti giocatori usano oggi ambienti online collaborativi (Virtual Tabletop o VTT) come Roll20, Foundry VTT o owlbear.rodeo. L’obiettivo del progetto è fornire una piattaforma open source VTT basata su tecnologie moderne (i.e., JavaScript) all’interno del browser. Il modello di riferimento per le funzionalità è owlbear.rodeo, quindi si intende realizzare le funzionalità relative al vero e proprio tavolo di gioco (mappa condivisa con griglia, token, e possibilità di caricare/importare set di token e di mappe personali), ma non funzionalità specifiche di un particolare gioco (per questo tipo di progetto si veda “Sviluppo di Bot Telegram in Python“) e neanche la gestione della connessione audio/video (esistono già strumenti di questo tipo che potrebbero essere integrati, ma l’integrazione non è particolarmente utile).
Caratteristiche e obiettivi
- Mappa di gioco: la mappa permette l’interazione da parte dei giocatori. È possibile definire un utente privilegiato che può caricare e modificare la mappa, mentre gli utenti normali possono solo muovere i propri token. La mappa avrà una griglia quadrata (opzionalmente, è possibile consentire la selezione di una griglia alternativa esagonale, nel caso in cui il progetto sia svolto da più persone).
- Token: si tratta di immagini più piccole che vengono sovrimpresse alla mappa, e possono essere spostate (nel caso in cui il progetto sia svolto da più persone, è possibile associare ogni token a uno o più giocatori, consentendo solo a questi di muovere quel token, e associare opzionalmente alcune caratteristiche numeriche ai token, mostrando delle barre di progresso sopra o sotto il token stesso).
- Salvataggio dei dati: il sistema deve consentire la persistenza, usando lo spazio di storage locale (i dati non vengono salvati su server).
- Chat e tiro di dadi. È utile, al fine di avere un sistema abbastanza completo, realizzare una semplice chat integrata con un generatore di numeri casuali controllato da comandi con una semplice sintassi per consentire il tiro di dadi all’interno dell’applicazione.
Tecnologie: JavaScript (o affini, e.g. TypeScript), HTML, CSS, possibilmente (ma non necessariamente) un framework front-end (e.g., Vue, React o Angular)
Una prima versione si può trovare qui. Può essere usata come punto di partenza per progetti futuri.
È anche possibile partire da un VTT open source come Mythic Table. In questo caso l’obiettivo è di replicare le caratteristiche del server usando un linguaggio più portabile di C# (ad esempio Python).