Retire l'export exécutable (.exe) et la partie publique en ligne (/jouer)
Build and deploy / test-python (push) Successful in 7m5s
Build and deploy / test-js (push) Successful in 58s
Build and deploy / build-and-push (push) Skipped
Build and deploy / deploy (push) Skipped

Décision produit : seul l'export Web/SCORM (LMS) est pertinent — l'export
exécutable Windows autonome (publish/build_package.py, bouton "Publier")
et la partie publique par joueur (/jouer/<slug>, routes/public_play/,
"Publier en ligne") sont jugés redondants et retirés.

Conserve le mécanisme d'état "par joueur" (db/global_vars,
db/rows, per_player) : infrastructure générique déjà utilisée par
Score/Progression et testée indépendamment de toute route publique
(voir tests/test_player_state.py), aucune raison de la retirer.

_STATIC_ITEMS/_copy_characters (copie sélective des sprites CraftPix
réellement utilisés) migrent de build_package.py vers
build_scorm_package.py, seul appelant restant.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
william
2026-09-02 10:59:28 +02:00
co-authored by Claude Sonnet 5
parent 82d00b3800
commit e82eb7ce88
37 changed files with 115 additions and 1106 deletions
+1 -1
View File
@@ -24,7 +24,7 @@ def _load_manifest():
except FileNotFoundError:
# Poste de dev sans les assets animaux copiés (script pas encore
# lancé), ou paquet exporté pour un jeu qui n'utilise aucun
# personnage animal (voir publish/build_package.py, copie
# personnage animal (voir publish/build_scorm_package.py, copie
# sélective) : aucun personnage animal disponible, pas une erreur.
return {}
+14 -13
View File
@@ -14,20 +14,21 @@ from ..scenes.render_scene_object import render_scene_object
def full_game_payload(slug, player_id=db.PLAYER_SHARED):
"""Toutes les données nécessaires au runtime JS de la page de jeu jouable
(/game/<slug>/play, ou /jouer/<slug> — voir routes/public_play/) : chaque
écran avec ses éléments (HTML déjà généré, y compris les Répéteurs de
données, lus en direct), le graphe de logique (nœuds + fils) de chaque
écran, et un instantané des données du jeu (avec le type de chaque
champ, nécessaire pour évaluer une condition correctement) — un seul
aller-retour serveur, ensuite tout se joue côté client (aucune
navigation ne recharge la page, sauf pour appliquer une action "modifier
une donnée", qui doit passer par le serveur).
(/game/<slug>/play, ou le paquet Web/SCORM exporté — voir
publish/build_scorm_package.py) : chaque écran avec ses éléments (HTML
déjà généré, y compris les Répéteurs de données, lus en direct), le
graphe de logique (nœuds + fils) de chaque écran, et un instantané des
données du jeu (avec le type de chaque champ, nécessaire pour évaluer
une condition correctement) — un seul aller-retour serveur, ensuite
tout se joue côté client (aucune navigation ne recharge la page, sauf
pour appliquer une action "modifier une donnée", qui doit passer par
le serveur).
player_id (état par joueur, Phase 1) : PLAYER_SHARED pour l'aperçu
créateur (comportement inchangé — une seule partie partagée pendant la
conception), l'identifiant réel du visiteur pour une partie publique
(voir core/player_identity.py) — chaque objet/variable per_player
renvoie alors la valeur propre à CE joueur."""
player_id (état par joueur, Phase 1) : toujours PLAYER_SHARED
aujourd'hui (une seule partie partagée, pour la conception comme pour
un paquet exporté) — le paramètre reste générique pour tout objet/
variable per_player (voir db/global_vars/, db/rows/), qui renvoie
alors la valeur propre à CE joueur."""
# Fusion des moteurs (voir screens/screens_repo/ensure_schema.py) : un
# écran "jeu_2d" construit "elements" depuis _scene_objects (objets de
# scène en pixels) plutôt que _screen_elements (DOM en %) — décidé
@@ -9,7 +9,7 @@ def list_used_forge_characters(slug):
réellement référencés par CE jeu — tous écrans, écrans-modèles compris
(même patron que full_game_payload.py : un personnage peut vivre dans
un écran-modèle d'élément réutilisable). Utilisé par
publish/build_package.py pour ne copier dans le .zip exporté que les
publish/build_scorm_package.py pour ne copier dans le .zip exporté que les
dossiers static/characters/animals/<animal>/<NN>/ réellement utilisés
par CE jeu, plutôt que les ~52 000 fichiers de toute la bibliothèque
(voir le plan "Bibliothèque de sprites animaux CraftPix")."""