From 0e7a50493cc9613790bfb981a82301a25654e860 Mon Sep 17 00:00:00 2001 From: Andrea Manzi Date: Mon, 26 Oct 2026 23:30:48 +0100 Subject: [PATCH] =?UTF-8?q?Il=20cartello=20d'apertura:=20online,=20su=20un?= =?UTF-8?q?=20sito=20mai=20visitato,=20il=20browser=20bloccava=20la=20musi?= =?UTF-8?q?chetta=20senza=20un=20gesto=20(in=20locale=20no,=20ci=20si=20gi?= =?UTF-8?q?oca=20da=20giorni);=20ora=20in=20quel=20caso=20il=20cartello=20?= =?UTF-8?q?aspetta=20un=20tocco=20(=C2=ABTocca=20per=20cominciare=C2=BB)?= =?UTF-8?q?=20e=20poi=20parte=20coi=20suoi=20tempi.=20La=20Ghiacciomobile?= =?UTF-8?q?=20non=20ripete=20pi=C3=B9=20le=20battute=20due=20volte=20(la?= =?UTF-8?q?=20scelta=20la=20dice=20gi=C3=A0=20Andrea).=20Licenza=20(codice?= =?UTF-8?q?=20MIT,=20storia=20e=20grafica=20CC=20BY-NC-SA,=20eccezioni=20p?= =?UTF-8?q?er=20persone=20vere,=20palio,=20Suno,=20voci=20XTTS=20con=20la?= =?UTF-8?q?=20CPML,=20font=20OFL,=20Wikipedia),=20README=20riscritto,=20sc?= =?UTF-8?q?ripts/check-public.sh=20e=20make=20check-public=20dentro=20make?= =?UTF-8?q?=20verify.=20Prove=20nel=20browser=20con=20l'autoplay=20permess?= =?UTF-8?q?o,=20pi=C3=B9=20una=20per=20il=20caso=20bloccato?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01A1dxvtsZx8NE9fwjXUNDBr --- LICENSE | 71 ++++++++++++++++++ Makefile | 7 +- README.md | 107 ++++++++++++---------------- assets/voices/andrea-57375fe2af.mp3 | Bin 24764 -> 0 bytes assets/voices/index.json | 4 -- docs/LICENZA-CPML.txt | 84 ++++++++++++++++++++++ index.html | 1 + scripts/check-public.sh | 51 +++++++++++++ src/main.js | 20 +++--- src/story/story.js | 5 +- style.css | 4 ++ tests/ambient.browser.mjs | 2 +- tests/biliardo.browser.mjs | 2 +- tests/briscola.browser.mjs | 2 +- tests/browser.mjs | 22 +++++- tests/scopa.browser.mjs | 2 +- tests/tressette.browser.mjs | 2 +- tests/veicoli.browser.mjs | 2 +- video/demo-prototipo.mjs | 3 + video/partita-completa.mjs | 3 + video/tutorial-comune.mjs | 3 + 21 files changed, 313 insertions(+), 84 deletions(-) create mode 100644 LICENSE delete mode 100644 assets/voices/andrea-57375fe2af.mp3 create mode 100644 docs/LICENZA-CPML.txt create mode 100755 scripts/check-public.sh diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..097b9d1 --- /dev/null +++ b/LICENSE @@ -0,0 +1,71 @@ +Licenze de «La Leggenda del Regolo» + +Il progetto è un gioco gratuito e non commerciale. Ha due parti con licenze diverse: il codice, e tutto il resto. + +================================================================================ +1. IL CODICE: licenza MIT +================================================================================ + +Vale per tutto ciò che sta fuori dalle cartelle assets/, docs/ e video/: i sorgenti in src/, i test, gli strumenti +in tools/, gli script, index.html, style.css, i file di configurazione. + +MIT License + +Copyright (c) 2026 Andrea Manzi + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the Software without restriction, including without limitation the +rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of +the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE +WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS +OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +================================================================================ +2. LA STORIA, LA GRAFICA, LA MUSICA: Creative Commons BY-NC-SA 4.0 +================================================================================ + +Vale per la storia e i dialoghi (src/story/), i documenti in docs/, gli sfondi, i primi piani, le icone e gli sprite +dei personaggi inventati (assets/scenes, assets/closeups, assets/icons, assets/effects, assets/favicon, e in +assets/characters quelli che non ritraggono persone vere), le musiche composte e sintetizzate dagli script in tools/ +(assets/audio/biliardo.mp3, carte.mp3, bocce.mp3, pieve.mp3, cartello.mp3) e i video «Come si gioca» (assets/video). + +© 2026 Andrea Manzi. Si possono copiare, ridistribuire e rielaborare citando l'autore, per scopi non commerciali, +e distribuendo le opere derivate con la stessa licenza. Testo completo: https://creativecommons.org/licenses/by-nc-sa/4.0/ + +Gli sfondi sono stati disegnati con strumenti di generazione di immagini (OpenAI) a partire da fotografie di San +Piero a Sieve, quasi tutte di Andrea Manzi; la provenienza di ognuno è registrata in docs/IMMAGINI.md (la foto +dell'interno della Pieve è di Mariano Mirannalti, citato nei Ringraziamenti). + +================================================================================ +3. ECCEZIONI: cose che NON si possono riusare, o che hanno una licenza propria +================================================================================ + +a) Le persone vere. I ritratti in pixel nei Ringraziamenti (assets/credits/) e gli sprite dei personaggi ispirati a + persone vere (vecchietti, Mariano, l'Ing. Tozzi, il Tozzino, il BaronDeDuke, l'Arcu, Fra Peppino e gli altri + indicati nei commenti di src/story/story.js) sono pubblicati con il consenso delle persone ritratte, SOLO per + questo gioco: tutti i diritti riservati, non si possono riusare altrove. Lo stesso vale per i nomi e i ricordi + delle persone del paese che compaiono nella storia. + +b) La fotografia del palio del 2007 (assets/closeups/palio-2007.jpg) ritrae il quadro dipinto dai ragazzi delle + scuole medie di San Piero a Sieve: tutti i diritti riservati agli autori, pubblicata qui per il gioco. + +c) Le musiche di Andrea Manzi generate con Suno (assets/audio/titolo.mp3, paese.mp3, sera.mp3, fortezza.mp3, + ricordi.mp3) si usano alle condizioni d'uso di Suno e non sono coperte dalla licenza Creative Commons. + +d) Le voci dei personaggi (assets/voices/) e la voce narrante dei video (assets/video/) sono sintetizzate con + XTTS-v2 di Coqui, distribuito con la Coqui Public Model License (https://coqui.ai/cpml, testo in + docs/LICENZA-CPML.txt): i file audio che ne derivano si possono usare SOLO per scopi non commerciali. + +e) Il carattere Press Start 2P di CodeMan38 (assets/fonts/) è distribuito con la SIL Open Font License 1.1: il testo + della licenza è in assets/fonts/OFL-press-start-2p.txt. + +f) L'aneddoto della Torre dello Scoronconcolo riprende, riformulati, i fatti della voce «Michele del Tavolaccino» + di Wikipedia in italiano (CC BY-SA 4.0): https://it.wikipedia.org/wiki/Michele_del_Tavolaccino + +Monkey Island e La storia infinita sono citati come ricordi: i marchi e le opere restano dei rispettivi titolari. diff --git a/Makefile b/Makefile index ec0b4ca..8a4d202 100644 --- a/Makefile +++ b/Makefile @@ -23,7 +23,7 @@ DST ?= assets/scenes/$(notdir $(SRC)) CROP ?= COLORS ?= 64 -.PHONY: help serve open test browser verify bump voci voci-elenco sfondi sfondi-genera sfondi-confronto background character \ +.PHONY: help serve open test browser verify check-public bump voci voci-elenco sfondi sfondi-genera sfondi-confronto background character \ build up down restart logs ps shell image-size deploy deploy-logs clean distclean ## ------------------------------------------------------------ sviluppo @@ -50,7 +50,10 @@ test: ## Test della logica, della storia, della soluzione completa e del generat browser: ## Partita completa nel browser con Playwright $(NODE) tests/browser.mjs -verify: test browser ## Tutti i controlli +verify: test browser check-public ## Tutti i controlli + +check-public: ## Prima di pubblicare: niente prompt, fogli grezzi, segreti o nomi della rete di casa (tutta la storia) + bash scripts/check-public.sh bump: ## Nuova versione (PARTE=patch|minor|major): verifica, commit e tag v; poi make deploy scripts/bump.sh $(or $(PARTE),patch) diff --git a/README.md b/README.md index f8b62e1..7e08cd4 100644 --- a/README.md +++ b/README.md @@ -1,81 +1,66 @@ # La Leggenda del Regolo -Avventura grafica punta-e-clicca ambientata a San Piero a Sieve, nella settimana del Palio della Fortezza del 2007. -Il palio, il quadro dipinto dai ragazzi delle medie, è sparito: un ragazzo del paese deve ritrovarlo prima della festa. +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.* -Progetto in fase di ideazione: il documento di progetto è in [`docs/PROGETTO.md`](docs/PROGETTO.md). -Per ora c'è un prototipo del motore con due scene di prova e grafica provvisoria. +Si gioca online su **https://50037.manzolo.it** (50037 è il CAP di San Piero), nel browser, anche dal telefono. +È gratuito e non commerciale. -## Generare sfondi dalle fotografie +## Cosa c'è -Il generatore Python è `tools/genera.py`; istruzioni e prompt delle due nuove vedute -sono descritti in [`docs/GENERAZIONE_SFONDI.md`](docs/GENERAZIONE_SFONDI.md). -Lavora sulle foto di **San Piero a Sieve**, conserva i master a 1536×864 e permette -di prepararne copie a 640×360 per il gioco. - -```zsh -python3 tools/genera.py --dry-run # elenco delle foto, nessuna API e nessun file scritto -``` - -## Voci dei personaggi - -Ogni battuta ha la sua voce, generata con XTTS-v2 sulla GPU (licenza solo non commerciale): un mp3 per battuta in -`assets/voices/`, la voce di ogni personaggio in `tools/voci.json` (castello e leone con altezza ed eco proprie). - -```zsh -make voci # solo le battute nuove o cambiate; i file che non servono più si tolgono -make voci RIFAI='Ci sei?' # ritenta una battuta storpiata (XTTS è casuale: di solito il secondo tentativo va) -make voci-elenco # cosa manca, senza generare -``` - -Il test `tests/voices.test.mjs` fallisce se una battuta non ha la sua voce: dopo aver cambiato un testo, `make voci`. +- **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 -```zsh -python3 -m http.server 8000 # poi http://localhost:8000 -``` - -Clic = azione più sensata (parla, guarda, vai); clic destro o pressione lunga = guarda; un verbo scelto vale per il -clic successivo. Spazio salta la battuta, i numeri scelgono nel dialogo, Esc annulla il verbo. - -Il libro dell'oratorio si apre e si sfoglia con clic o tocco; Esc lo chiude. Nella fessura della Fortezza, -la torcia segue mouse o dito (anche trascinando): si cercano i dettagli tenendo brevemente la luce su di essi. -Si possono usare anche le frecce, oppure Invio per cercare il prossimo dettaglio. «Torna fuori» permette di -riprovare; dopo il ritrovamento, «Continua» conclude il capitolo. -Il volume dei suoni ambientali e del fruscio delle pagine si regola in **Pausa → Ambiente ed effetti**. - -Al biliardo del Circolo 4 Maggio, clic o tocco fissa la mira; regola la forza e premi **Tira**. -Le frecce ← → affinano la direzione, con Maiusc per passi ancora più piccoli. La guida usa la stessa fisica -del tiro: mostra sponde, primo contatto e direzioni iniziali dopo l'urto (azzurro per l'avversaria, giallo -per la propria biglia). Tenendo premuto sul tavolo o Spazio si carica il colpo, con la mira bloccata. - -## In Docker +Niente da installare e niente da compilare: HTML, CSS e moduli JavaScript ES. ```zsh -make up # http://localhost:8080 (DOCKER_PORT=… per cambiarla) -make down +python3 -m http.server 8000 # poi http://localhost:8000 ``` -## Struttura +Oppure `make up` (Docker, su http://localhost:8080). Non aprire `index.html` con `file://`: i moduli vogliono HTTP. -- `src/engine/`: motore senza storia (`game.js` logica e coda delle azioni, `geometry.js` area calpestabile e - percorsi, `command.js` verbi e clic, `render.js` disegno, `storage.js` salvataggio); -- `src/story/`: la storia come dati (`story.js`) e la sua soluzione completa (`solution.js`); -- `src/main.js`: collega tutto alla pagina; -- `assets/scenes/`: sfondi a 640×360, preparati con `tools/prepare_background.py` dagli originali in `assets/raw/`. -- `assets/characters/`: fogli dei personaggi, tagliati con `tools/slice_sprites.py` e allineati con - `tools/prepare_character.py` (istruzioni in testa al file). +## Come è fatto -## Test +- `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); `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 -npm test # logica, storia coerente, soluzione percorsa dall'inizio alla fine -npm install && npx playwright install chromium-headless-shell -npm run browser # partita completa con clic veri in Chromium, salvataggio, telefono -npm run browser -- --media-only # libro, torcia e audio: controllo mirato desktop/telefono -npm run browser:biliardo # mira e tiro con mouse/touch, desktop e telefono; schermate in /tmp/regolo-biliardo +make verify # sintassi, test, prova nel browser: quello che gira prima di ogni versione +make voci # le voci delle battute nuove (XTTS-v2 su GPU) +make bump # nuova versione: verifica, commit e tag +make deploy # pubblica l'ultimo commit (immagine Docker spedita al server) ``` +## 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). diff --git a/assets/voices/andrea-57375fe2af.mp3 b/assets/voices/andrea-57375fe2af.mp3 deleted file mode 100644 index a3a4cb776c40d9f2c21a71c079fe654f219ee6f3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24764 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 diff --git a/assets/voices/index.json b/assets/voices/index.json index 3300bfc..a7f3d9b 100644 --- a/assets/voices/index.json +++ b/assets/voices/index.json @@ -1543,10 +1543,6 @@ "file": "andrea-2acf574bfa.mp3", "sec": 5.36 }, - "andrea|Ho sentito dire dal Trappola che pensavi di poter attraversare i muri.": { - "file": "andrea-57375fe2af.mp3", - "sec": 3.45 - }, "andrea|Riposa, Ghiacciomobile.": { "file": "andrea-c79d2d1c81.mp3", "sec": 2.19 diff --git a/docs/LICENZA-CPML.txt b/docs/LICENZA-CPML.txt new file mode 100644 index 0000000..e41830f --- /dev/null +++ b/docs/LICENZA-CPML.txt @@ -0,0 +1,84 @@ +# Coqui Public Model License 1.0.0 +https://coqui.ai/cpml.txt + + +This license allows only non-commercial use of a machine learning model and its outputs. + + +## Acceptance + + +In order to get any license under these terms, you must agree to them as both strict obligations and conditions to all your licenses. + + +## Licenses + + +The licensor grants you a copyright license to do everything you might do with the model that would otherwise infringe the licensor's copyright in it, for any non-commercial purpose. The licensor grants you a patent license that covers patent claims the licensor can license, or becomes able to license, that you would infringe by using the model in the form provided by +the licensor, for any non-commercial purpose. + + +## Non-commercial Purpose + + +Non-commercial purposes include any of the following uses of the model or its output, but only so far as you do not receive any direct or indirect payment arising from the use of the model or its output. + + +### Personal use for research, experiment, and testing for the benefit of public knowledge, personal study, private entertainment, hobby projects, amateur pursuits, or religious +observance. + + +### Use by commercial or for-profit entities for testing, evaluation, or non-commercial research and development. Use of the model to train other models for commercial use is not a non-commercial purpose. + + +### Use by any charitable organization for charitable purposes, or for testing or evaluation. Use for revenue-generating activity, including projects directly funded by government grants, is not a non-commercial purpose. + + +## Notices + + +You must ensure that anyone who gets a copy of any part of the model, or any modification of the model, or their output, from you also gets a copy of these terms or the URL for them above. + + +## No Other Rights + + +These terms do not allow you to sublicense or transfer any of your licenses to anyone else, or prevent the licensor from granting licenses to anyone else. These terms do not imply +any other licenses. + + +## Patent Defense + + +If you make any written claim that the model infringes or contributes to infringement of any patent, your licenses for the model granted under these terms ends immediately. If your company makes such a claim, your patent license ends immediately for work on behalf of your company. + + +## Violations + + +The first time you are notified in writing that you have violated any of these terms, or done anything with the model or its output that is not covered by your licenses, your licenses can nonetheless continue if you come into full compliance with these terms, and take practical steps to correct past violations, within 30 days of receiving notice. Otherwise, all your licenses +end immediately. + + +## No Liability + + +***As far as the law allows, the model and its output come as is, without any warranty or condition, and the licensor will not be liable to you for any damages arising out of these terms or the use or nature of the model or its output, under any kind of legal claim. If this provision is not enforceable in your jurisdiction, your licenses are void.*** + + +## Definitions + + +The **licensor** is the individual or entity offering these terms, and the **model** is the model the licensor makes available under these terms, including any documentation or similar information about the model. + + +**You** refers to the individual or entity agreeing to these terms. + + +**Your company** is any legal entity, sole proprietorship, or other kind of organization that you work for, plus all organizations that have control over, are under the control of, or are under common control with that organization. **Control** means ownership of substantially all the assets of an entity, or the power to direct its management and policies by vote, contract, or otherwise. Control can be direct or indirect. + + +**Your licenses** are all the licenses granted to you under these terms. + + +**Use** means anything you do with the model or its output requiring one of your licenses. \ No newline at end of file diff --git a/index.html b/index.html index 71d1d42..af13ceb 100644 --- a/index.html +++ b/index.html @@ -33,6 +33,7 @@

Manzolo

(Poca) Art

Presents

+

Tocca per cominciare