# La Leggenda del Regolo Un'avventura grafica punta-e-clicca, nello spirito delle avventure anni '90, ambientata a **San Piero a Sieve** (Mugello) nella settimana del **Palio della Fortezza del 2007**. Il palio, il quadro dipinto dai ragazzi delle medie, è sparito: Andrea, un ragazzo del paese, deve ritrovarlo prima della festa, fra vecchietti che litigano sulle due leggende del Regolo, il serpente della Fortezza, e un paese disegnato dalle fotografie vere. *Al Lele, che mi ha fatto conoscere Monkey Island.* Si gioca online su **https://50037.manzolo.it** (50037 è il CAP di San Piero), nel browser, anche dal telefono. È gratuito e non commerciale. ## Cosa c'è - **Il primo capitolo**, dal pomeriggio alla sera: 38 scene, i dialoghi a scelte, l'inventario, la mappa del paese, il taccuino, il salvataggio automatico (e su file, per portarlo su un altro dispositivo). - **Le voci** di tutti i personaggi, in toscano, e le **musiche**. - **I giochi del paese**: la briscola, il tressette ai 21 e la scopa all'oratorio (con le carte toscane o le napoletane), le bocce al pallaio e il biliardo a cinque birilli al circolo, ognuno con tre livelli e un video «Come si gioca». - **Il paese vero**: gli sfondi sono disegnati dalle fotografie di San Piero; i personaggi, con il loro consenso, da persone vere. ## Giocare in locale Il gioco si scarica da **https://git.manzolo.it/manzolo/leggenda-del-regolo**: nella pagina dei [tag](https://git.manzolo.it/manzolo/leggenda-del-regolo/tags) c'è lo zip di ogni versione (l'ultima è quella online). Niente da installare e niente da compilare: HTML, CSS e moduli JavaScript ES. Dentro la cartella scompattata: ```zsh python3 -m http.server 8000 # poi http://localhost:8000 ``` Oppure `make up` (Docker, su http://localhost:8080). Non aprire `index.html` con `file://`: i moduli vogliono HTTP. ## Come è fatto - `src/engine/`: il motore (camminata con i percorsi, verbi e clic intelligente, dialoghi, inventario, salvataggi, musica, voci, suoni d'ambiente sintetizzati, effetti animati) e i minigiochi (`bocce.js`, `biliardo.js`, `briscola.js`, `tressette.js`, `scopa.js`, ognuno col suo `*-render.js`). - `src/story/`: la storia è dati, non codice: scene, oggetti, personaggi, dialoghi, soluzione (`solution.js`). - `assets/`: sfondi, sprite, musiche, voci, carattere, video. - `tools/`: gli strumenti (sprite dai fogli, voci con XTTS, musiche sintetizzate, favicon, taratura dei minigiochi). - `tests/`: `npm test` (unità: regole, storia coerente, voci, salvataggi) e `npm run browser` (Playwright: percorre tutta la soluzione dell'avventura, su desktop e telefono, in tre processi paralleli; `--parte=` per una sola); `npm run browser:briscola`, `:tressette`, `:scopa`, `:biliardo`, `:effects` per le parti singole. - `video/`: i copioni dei video «Come si gioca» e della demo, girati in una macchina virtuale. - `docs/`: `PROGETTO.md` (l'idea, i personaggi, la mappa) e `STATO.md` (dove siamo, cosa manca). ```zsh make verify # test, file pubblicabili e le prove nel browser cambiate dall'ultimo verde (ALL=1: tutte) make voci # le voci delle battute nuove (XTTS-v2 su GPU) make bump # nuova versione: verifica, commit e tag make deploy # pubblica la versione: immagine sul registry di Gitea, il server la scarica ``` ## Chi ha fatto cosa Un gioco di Andrea Manzi (Manzolo). Idee, ricordi, foto e volti: gli amici di San Piero, nei Ringraziamenti del gioco. Programmazione con Claude e Codex; sfondi dalle fotografie di Andrea con gli strumenti di generazione di immagini; musiche di Andrea con Suno e, per i giochi, sintetizzate da script; voci con XTTS-v2; carattere Press Start 2P. ## Licenze Il codice è MIT; storia, grafica e musiche sintetizzate sono Creative Commons BY-NC-SA 4.0; le persone vere ritratte, la foto del palio, le musiche di Suno e le voci XTTS (solo uso non commerciale) hanno le loro condizioni. Tutto in [`LICENSE`](LICENSE).