CATALOGUE

Les briques du site

Un cadre dessiné.
Fond papier, réglages par défaut
Un cadre dessiné.
Fond laiton, trait 5px, penché
Rond

composants/cadre.php

  • Cadre : le cadre dessiné à la main (classe dessin), la brique de tout le site.
  • Paramètres : contenu (HTML), fond, trait, ombre, inclinaison (degrés), classes, balise (div), attributs.
  • Exemple : cadre(['contenu' => '<p>Bonjour</p>', 'fond' => 'laiton', 'trait' => '5px', 'inclinaison' => -1.5]);
UN SYSTÈME PAR SOIR ?!
Nuit, par défaut
CRÉER UN RPG
Laiton
A0-16
Magenta

composants/etiquette.php

  • Étiquette : un bout de papier déchiré (classe dechire), son bord est calculé par site.js.
  • Paramètres : texte, fond, couleur (du texte), rotation (degrés), classes.
  • Exemple : etiquette(['texte' => 'CRÉER UN RPG', 'fond' => 'laiton', 'couleur' => 'encre', 'rotation' => -3]);

composants/touche.php

  • Touche : le gros bouton « Jouer » en forme de touche de clavier, en lien ou en vrai bouton.
  • Paramètres : adresse, surtitre, titre, variante (laiton ou magenta), balise (a ou button), classes, attributs.
  • Exemple : touche(['adresse' => '/article/A0-03#jeu', 'surtitre' => 'Chapitre A0-03', 'titre' => 'Tester la dernière version']);
A0-16

Acte 0

La télémétrie

Le jeu raconte ce qui s'y passe : un joueur a démarré, il a mis en pause, il a chargé tel scénario. Sans savoir qui. Et les chiffres seront publiés avec chaque version.

JouerVidéoLire

Dernière version
A0-16

Acte 0

La télémétrie

Le jeu raconte ce qui s'y passe : un joueur a démarré, il a mis en pause, il a chargé tel scénario. Sans savoir qui. Et les chiffres seront publiés avec chaque version.

JouerVidéoLire

Publiée
Sombre : version-0
A0-99

Acte 0

Le prochain chapitre

PAGE À VENIR

Jouer

À venir

composants/carte_chapitre.php

  • Carte de chapitre : une version du jeu dans la frise de l'accueil.
  • Paramètres : id, etiquette (sinon id), titre, acte, resume (null : PAGE À VENIR), jouer, video, lire, dernier, sombre.
  • Exemple : carte_chapitre(['id' => 'A0-03', 'titre' => 'Le site', 'acte' => 'Acte 0', 'resume' => '…', 'jouer' => '/versions/A0-03/index.html', 'lire' => '/article/A0-03']);
ACTE 0 · CHAPITRE 16

La télémétrie

composants/titre_de_page.php

  • Titre de page : le grand titre d'un article dans un cadre penché, avec son bandeau déchiré.
  • Paramètres : bandeau, titre.
  • Exemple : titre_de_page(['bandeau' => 'ACTE 0 · CHAPITRE 3', 'titre' => 'Le build web et le site']);

Ce qui est nouveau

Le jeu raconte ce qui s'y passe : un joueur a démarré, il a mis en pause, il a chargé tel scénario. Sans savoir qui. Et les chiffres seront publiés avec chaque version.

Un sous-titre

Un intertitre

  • Une puce avec du code en ligne.
  • Une puce avec un lien.

composants/feuille.php

  • Feuille : la page de papier qui porte le corps d'une lettre ou d'un contenu.
  • Paramètres : html (déjà rendu, par exemple par rendre_markdown).
  • Exemple : feuille(['html' => rendre_markdown("## Ce qui est nouveau\n\nLe jeu est sur le web.")]);
PROMPT
Pose un système Telemetrie.

Où on en est : le build web est produit par construire-web.ps1 et servi par le Docker
du site. Systemes porte Horloge, Sauvegarde, Pupitre. Les scénarios s'appliquent par
l'amorceur et le pupitre. Le projet n'envoie rien nulle part. Une clé de projet PostHog
existe, hébergement européen.

Ce que je veux : un ScriptableObject ReglagesTelemetrie dans Jeu/Reglages avec la clé
de projet, l'adresse de l'hôte européen, et un bool Active. Un composant Telemetrie
sur Systemes dans Demarrage, avec une méthode statique Evenement(nom, propriétés
optionnelles sous forme de paires clé valeur), qui dans un build WebGL appelle un pont
JavaScript, et partout ailleurs écrit l'événement dans la console sans rien envoyer.
Le pont : un fichier .jslib dans Jeu/Plugins/WebGL qui appelle posthog.capture, et un
modèle de page WebGL dans Jeu/WebGLTemplates/Orevia, copie du modèle par défaut, qui
charge le script PostHog avec la clé et l'hôte, sans cookie (persistance en mémoire),
sans enregistrement de session, sans capture automatique des clics, avec un
identifiant anonyme régénéré à chaque session. Les réglages du projet utilisent ce
modèle. Les événements envoyés ce soir : demarrage au lancement avec la version du
build (l'identifiant de chapitre, lu d'un champ de ReglagesTelemetrie rempli par
construire-web.ps1), scenario_applique avec le nom du scénario, et pause avec l'état.
Mets à jour construire-web.ps1 pour écrire l'identifiant de version dans la fiche
avant le build.

Plus tard : mort avec la position et le lieu, point_sur_atteint, enigme_resolue avec
la durée, abandon à la fermeture de la page avec la durée de session, et un tableau de
bord par version ; un texte dans la page du site dira ce qui est mesuré et comment le
refuser.

Ce que je ne veux pas : aucune donnée personnelle, pas d'adresse IP conservée (régler
le projet PostHog en conséquence, et le dire dans la page), pas d'événement dans
l'éditeur, pas d'envoi si Active est faux.

Quand c'est fait, montre-moi le composant, le modèle de page, et lance le jeu dans
l'éditeur pour que je voie les événements dans la console.
Long : replié, avec « Voir plus »
PROMPT
Ce que je veux : une étiquette déchirée.
Ce que je ne veux pas : une image.
Court : trois lignes ou moins

composants/prompt.php

  • Prompt : un prompt donné à l'IA, replié, avec « Voir plus » et « Copier ».
  • Paramètres : texte (brut, il est échappé ici).
  • Exemple : prompt(['texte' => "Où on en est : le projet est vide.\nCe que je veux : un site."]);

Cliquez dans le jeu pour prendre la main

Le jeu ne se charge pas ? Ouvrir le build seul
Sans commandes dans la lettre

ZQSD ou flèches · Espace · Échap pour le menu

Le jeu ne se charge pas ? Ouvrir le build seul
Avec un champ commandes

composants/barre_de_jeu.php

  • Barre de jeu : la ligne sous la démo jouable, le bouton Plein écran, l'aide des commandes et le lien vers le build seul.
  • Paramètres : commandes (texte d'aide, vide : « Cliquez dans le jeu pour prendre la main »), build (adresse du build Unity seul).
  • Exemple : barre_de_jeu(['commandes' => 'ZQSD ou flèches · Espace · Échap pour le menu', 'build' => '/versions/A0-03/index.html']);
En petit, dans une boîte de 420px

composants/diorama.php

  • Diorama : le ciel, le soleil, la mer et l'île en papier découpé, en haut de l'accueil.
  • Paramètres : aucun ; contenu (HTML) en option, posé par-dessus le décor.
  • Exemple : diorama([]) ou diorama(['contenu' => marque([])]);
OréviaCRÉER UN RPG

composants/marque.php

  • Marque : le nom « Orévia » et son étiquette, lue dans l'en-tête de contenu/accueil.md.
  • Paramètres : aucun.
  • Exemple : marque([]);

composants/pied.php

  • Pied : le pied de page, sur toutes les pages, avec le lien discret vers le catalogue.
  • Paramètres : aucun.
  • Exemple : pied([]);

composants/bouton_simple.php

  • Bouton simple : un lien en forme de bouton dessiné, pour les actions secondaires.
  • Paramètres : texte, adresse, aria (libellé accessible, sinon le texte).
  • Exemple : bouton_simple(['texte' => "Retour à l'accueil", 'adresse' => '/']);

La marque, l'accroche et les touches, assemblées dans le ciel : voir l'accueil.

composants/entete_accueil.php

  • En-tête de l'accueil : la marque, l'accroche et les touches Jouer, posés dans le ciel du diorama.
  • Paramètres : bandeau, titre, sous_titre (lus dans contenu/accueil.md), touches (liste de HTML, des appels à touche).
  • Exemple : diorama(['contenu' => entete_accueil(['bandeau' => accueil('bandeau'), 'titre' => accueil('titre'), 'touches' => [touche([...])]])]);
UN SYSTÈME PAR SOIR ?!

Je refais mon RPG avec une IA et en publique

Chaque épisode est une vidéo qui finit par un build jouable. Et tous les prompts sont prêts à copier.

composants/accroche.php

  • Accroche : le grand titre de l'accueil, son sous-titre et son bandeau déchiré.
  • Paramètres : bandeau, titre, sous_titre.
  • Exemple : accroche(['bandeau' => 'UN SYSTÈME PAR SOIRÉE', 'titre' => 'Je refais mon RPG', 'sous_titre' => 'Chaque épisode...']);

La rangée qui porte les touches, sur deux colonnes : voir l'exemple de touche.

composants/touches.php

  • Touches : la rangée des touches « Jouer », sur deux colonnes (une sur téléphone).
  • Paramètres : touches (liste de HTML, en général des appels à touche).
  • Exemple : touches(['touches' => [touche([...]), touche([..., 'variante' => 'magenta'])]]);

La grille des cartes de l'accueil, avec son titre : voir l'exemple de carte_chapitre.

composants/frise.php

  • Frise : la grille des chapitres, sous le ciel de l'accueil.
  • Paramètres : titre (de section), cartes (liste de HTML, en général des appels à carte_chapitre).
  • Exemple : frise(['titre' => 'Les chapitres · du plus récent au plus ancien', 'cartes' => [carte_chapitre([...])]]);

La colonne de lecture qui porte cette page.

composants/colonne.php

  • Colonne : la colonne de lecture d'un article ou d'une page, 860px au plus.
  • Paramètres : contenu (HTML), large (oui/non : 1100px pour le catalogue).
  • Exemple : colonne(['contenu' => titre_de_page([...]) . feuille([...])]);
RetourOrévia
A0-16La télémétrie
Jouer

composants/barre.php

  • Barre : l'en-tête collant des pages de chapitre, Retour, Orévia, le chapitre, un emplacement libre et Jouer.
  • Paramètres : id, titre, retour (adresse, l'accueil par défaut), jeu (ancre du jeu, null : pas de bouton Jouer), outils (HTML).
  • Exemple : barre(['id' => 'A0-03', 'titre' => 'Le build web et le site', 'jeu' => '#jeu']);

Ce jeu se joue au clavier ou à la manette, sur un ordinateur

Cliquez dans le jeu pour prendre la main

Le jeu ne se charge pas ? Ouvrir le build seul
Avant le lancement

composants/ecran_de_jeu.php

  • Écran de jeu : la démo jouable dans la page du chapitre, une affiche « Lancer la démo », puis le jeu et sa barre de jeu.
  • Paramètres : moteur (adresse de la page hôte), build (le build Unity seul), titre, poids (texte), commandes (aide, vide : « Cliquez dans le jeu »).
  • Exemple : ecran_de_jeu(['moteur' => '/jeu/A0-03', 'build' => '/versions/A0-03/index.html', 'titre' => 'Le site', 'poids' => '17 Mo']);

Une page entière, chargée dans l'iframe de l'écran de jeu : voir /jeu/A0-16.

composants/moteur.php

  • Moteur : la page hôte d'un build Unity, un canevas plein cadre et une barre de chargement, rien d'Unity autour.
  • Paramètres : build (le tableau rendu par version_build : chargeur, donnees, framework, code, streaming, societe, produit, version).
  • Exemple : moteur(['build' => version_build(version_trouver('A0-03'))]);

Chaque bloc de cette page est une fiche.

composants/fiche_composant.php

  • Fiche de composant : une entrée du catalogue, ses variantes rendues, puis un cartouche avec le fichier et sa documentation.
  • Paramètres : nom, variantes (liste de ['legende' => ..., 'rendu' => HTML]), disposition (pile, ligne ou grille), note (texte), doc (lignes).
  • Exemple : fiche_composant(['nom' => 'etiquette', 'variantes' => [['legende' => 'Laiton', 'rendu' => etiquette(['texte' => 'PROMPT'])]], 'doc' => doc_composant('etiquette')]);