La mémoire agissait sans jamais le dire
EREME promet un équipage qui se souvient. Dix marques sur quinze pesaient réellement sur les manœuvres, mais aucun chemin ne pouvait le faire dire : la validation vérifiait que le texte existe, personne qu'il puisse sortir.
La promesse
EREME repose sur une promesse : ce qui arrive aux gens du bord s'inscrit, et ce qui s'inscrit agit. Le véhicule s'appelle une marque. Quinze au catalogue, et chacune garde son contexte : le jour, l'événement qui l'a posée. Une marque agit par quatre canaux : elle penche les choix (un biais par famille d'action, qui pèse aussi sur la tenue des manœuvres), elle ferme des portes, elle pèse sur les issues des événements qui la citent, et elle parle, par des phrases d'écho et d'épilogue écrites en données. Certaines débloquent en plus des scènes.
Fermer des portes est l'effet le plus fort, et c'est aussi le plus rare : deux marques sur quinze seulement en sont capables. L'effet dominant de la mémoire n'est pas l'interdit, c'est le penchant. Une règle maison verrouille l'ensemble : une marque qui ne serait que du texte est refusée à la validation, il lui faut au moins deux comportements observables.
Nommer la porte fermée
Fin juillet, un chantier de transparence : l'option grisée. Avant, un choix inaccessible affichait une formule générique, du genre « hors de portée : coût ou marque bloquante », sans dire quelle marque, ni de qui. Le correctif tient dans une décision d'architecture : la fonction qui dit pourquoi un choix est fermé est devenue la seule source de vérité, et la disponibilité en découle : un choix est ouvert si, et seulement si, la fonction ne trouve aucune cause de refus. Deux fonctions parallèles, une pour décider et une pour expliquer, auraient fini par diverger.
La surface pioche ensuite ses gabarits en données : telle marque de tel membre s'y refuse, il manque telle ressource. La porte fermée a un nom, et le nom vient du même code qui a fermé la porte.
Dix marques muettes
Début août, une passe de mesure outillée pose la question inverse : la mémoire qui agit, est-ce qu'elle se raconte ? La réponse tenait en un compte : dix marques sur quinze avaient des phrases d'écho qu'aucun chemin d'exécution ne pouvait faire sortir. Seules cinq étaient citées par un modificateur d'issue, l'unique canal qui déclenchait l'écho. Le commit le formule au scalpel : « La validation vérifiait que le texte EXISTE, personne qu'il puisse SORTIR. »
Le pire n'est pas le silence, c'est que ces dix marques agissaient quand même. Toutes portent un biais, donc toutes pesaient sur la tenue des manœuvres. Le joueur voyait des résultats changer sans jamais savoir pourquoi. L'exact contraire de la promesse du jeu.
Ouvrir le canal manquant
Le correctif ouvre le canal que la mesure désignait : la manœuvre elle-même. Chaque manœuvre sait désormais nommer sa marque déterminante, la plus forte en valeur absolue au-dessus d'un seuil réglé en données. Quand l'issue tombe, si aucun modificateur n'a rien attribué de plus précis, c'est cette marque qui prend la parole : la mémoire prime le tempérament. La mesure d'avant justifiait la règle : 525 incises de trait contre 6 incises de marque sur un banc de 320 voyages, d'après le commit. Le tempérament écrasait la mémoire.
Deux détails de cette correction valent le détour. D'abord un bug d'une humilité parfaite : l'affectation des postes était effacée juste avant le tirage de l'issue, et la première implémentation interrogeait donc une affectation déjà vide ; il a fallu deux mesures pour le voir, et le correctif capture l'affectation avant l'effacement. Ensuite un choix éditorial gravé en commentaire de code : l'incise nomme le porteur de la marque, qui peut être un appui et pas le décideur, parce que nommer la mauvaise personne serait « pire que se taire ».
Le garde-fou final ne surveille pas une fréquence : il garantit une possibilité. Chaque marque du catalogue doit avoir au moins un chemin qui fait sortir sa phrase. Le reste appartient au jeu joué.
Le miroir du même jour
Le même jour, quelques heures plus tard, le défaut inverse : l'écran promettait un poids que la mémoire ne pouvait pas tenir. Un badge annonçait un effet de mémoire sur 92 % des cartes d'événement, alors que la mémoire ne peut réellement changer quelque chose que sur une petite fraction d'entre elles. Le badge a été taillé au vrai périmètre. Trop se taire et trop promettre sont le même défaut de sincérité, et les deux se corrigent par la même méthode : mesurer ce qui sort, pas ce qui est écrit.
L'autre mémoire : ce qu'on a déjà vu pèse moins lourd
La saga tient une seconde mémoire, distincte de celle des personnages : le compte des événements déjà joués. Au tirage, le poids d'un événement se divise par cinq à chaque passage. Ni interdit, ni gratuit : un événement vu reste tirable, il pèse juste cinq fois moins, puis vingt-cinq fois moins. D'après les mesures du commit, la redite au quatrième voyage tombait de 44 à 18 %.
Ce lot-là aussi a corrigé son propre cadrage : l'intuition disait « il manque du contenu », la mesure a répondu que non. « La cause n'était pas le manque de contenu. [...] Écrire quinze scènes de plus les aurait fait tomber dans le même entonnoir. » Le problème était dans le tirage, pas dans le stock.
La leçon
Tout système caché qui influence ce que voit l'utilisateur doit avoir un canal d'explication, et un test qui prouve que le canal s'ouvre. La validation de contenu vérifie des existences ; seule une mesure de sortie vérifie une parole. Entre les deux vivait mon défaut préféré de ce chantier : quinze marques aux phrases parfaitement écrites, validées, relues, dont dix ne pouvaient physiquement pas être entendues.