Classifica globale: API dei punteggi, schermata iniziale e nome memorizzato

- services/scores-api: microservizio (solo stdlib) con SQLite WAL, idempotenza per
  submission_id, limiti di frequenza e validazione; immagine Docker non-root.
- nginx: reverse proxy su /api/zombie-fps/ (stessa origine del gioco, niente CORS).
- scripts/leaderboard.gd: client HTTP con retry idempotente; su desktop la classifica
  resta disattivata senza --api=, cosi' i test non sporcano la classifica pubblica.
- scripts/player_profile.gd: nome, id anonimo e miglior punteggio in user:// e in
  window.localStorage; il nome scelto non viene piu' richiesto; riparazione dei
  profili con la stringa "null".
- scripts/start_screen.gd: menu con nome, GIOCA e classifica; la partita parte solo
  dal pulsante (via la rete di sicurezza sull'input, Invio nel campo non avvia).
- scripts/main.gd, player.gd: avvio esplicito, segnale died, nota dell'invio.
- tools: test_scores_api.py (42), test_leaderboard (14), test_player_profile (21),
  test_start_screen (10); suite esistenti adeguate all'avvio manuale.
- docs/HIGHSCORES.md + docs/WEB-DEPLOY.md aggiornati.
This commit is contained in:
enne2
2026-10-13 23:26:00 +02:00
parent 9d1988c48b
commit ae32ad9615
27 changed files with 2071 additions and 32 deletions
+17
View File
@@ -1,5 +1,22 @@
# Web build and compressed deployment
## Global high scores release: a961c96175bc644e
Start screen with global leaderboard, player name and score submission; new score API
service on the bastion behind an nginx reverse proxy, see `docs/HIGHSCORES.md`.
Backups on the root: `index-before-highscores.html`, `index-before-menu-fix.html`,
`index-before-null-fix.html`, `index-before-repair.html`, `index-before-lb-guard.html`.
Releases kept on the server (retention policy: live + previous):
`a961c96175bc644e` (live) and `209fa6b154fea8df`. Nine older releases were removed
with the guarded procedure (604 MB -> 110 MB, 4.6 GB free, deleted release 404,
live PCK `cmp`-identical, previous release still 200).
Intermediate builds of this same work, all superseded and now deleted:
`dcf1260b1a673ef4` (first leaderboard build), `6e012ca9a54d7baa` (menu fix, stored the
string "null" as name), `69a88b5cca18f009` (name repair, no leaderboard guard),
`209fa6b154fea8df` (previous release, kept).
## Eight windows release: fbfc9bdc01e2b32d
Two windows per wall (eight total) and random zombie entry from different openings, see