Construire Agoro Road en public

Le journal de bord d'un jeu qui n'est pas fini. Ce que nous avons décidé, ce que cela a coûté, et ce qui est sorti de travers — y compris ce dont nous nous étions déjà persuadés que c'était très bien.

Mis à jour le 20 septembre 2026 Le plus récent d'abord En développement
L'exigence que cette page s'impose

Tout ce qui figure ici était vrai à la date indiquée au-dessus. Les images de concept sont signalées comme telles et les captures d'écran comme des captures d'écran, parce que sur ce projet la différence entre les deux a été tout le problème. Lorsqu'une décision en a annulé une précédente, la précédente reste sur la page.

Où en est la route

La version courte, tenue en un seul endroit et mise à jour avec le journal. Chaque autre page et chaque billet que nous écrivons part de cette liste.

État au 21 septembre 2026Chaque surface, avec son état
Jouer gratuitement dans le navigateurEn ligneLa région complète de Hearthland, en coop par code privé, sans compte.
Réservations · éditions Wave 1OuvertGratuit, une adresse e-mail seulement, rien n'est débité. Numérique €12.99 · Soutien €19.99 · Collector €99 / €149 (500 places) · Fondateur €250 (20 places).
iOS · App StoreEn préparationL'identifiant de l'app est enregistré chez Apple. La fiche de l'App Store et la première version sont en cours de préparation ; la date sera annoncée ici lorsque la version sera soumise.
Android · Google PlayEn préparationMême version. Aucune fiche Play n'existe encore ; elle suivra la fiche iOS.
La route en 3D (web et ordinateur)En préparationTient 60 images par seconde. Onze de ses objets sont encore des bouche-trous, elle n'est donc pas encore activée pour les joueurs.
Figurines, imprimées iciEn préparationPremiers voyageurs imprimés le 14 septembre sur l'imprimante du studio. Une figurine de 10 cm demande deux à trois heures d'impression.
RevenueCat Shipaton 2026En préparationNous construisons en public pour ce concours, et ce journal rassemble ces billets. Les candidatures ferment le 30 septembre.
Tripothon S1InscritInscrits le 14 septembre. Les candidatures vont du 15 septembre au 5 octobre ; la nôtre est la route en 3D.
IndiegogoEn préparationUne page de campagne est en préparation. Indiegogo ne lance une campagne qu'au moins sept jours après son examen, la date sera donc annoncée ici en premier.

Epic dit qu'il faut un PC. Nous avons fait tourner leur éditeur sur un MacBook — puis nous avons heurté trois murs qui n'avaient rien à voir avec le Mac.

Unreal Editor for Fortnite ne fonctionne que sous Windows. La documentation est catégorique : pour utiliser UEFN, il vous faudra un PC. Nous n'en avons pas ici. Windows est donc parti dans une machine virtuelle sur le portable, l'éditeur s'est ouvert, Verse a compilé, et nos voyageurs, la charrette, un arbre et un poste de guet se sont dressés dans une île Fortnite à laquelle nous avons ensuite joué sur une tablette.

Cette partie-là a marché. Les trois choses apprises ensuite sont la partie utile, et aucune ne concerne le matériel.

On ne peut pas être son propre personnage. Le joueur, dans Fortnite, est un avatar Fortnite. Le système de personnages humains réalistes est autorisé dans l'éditeur, mais la licence ne le permet que pour les personnages que l'on rencontre, jamais celui que l'on incarne. Un jeu dont le sujet même est le voyageur que vous êtes ne peut pas y remettre ce voyageur entre les mains du joueur.

Le jeu ne tourne pas là où tourne l'éditeur. Fortnite exige une fonction de sécurité que la machine virtuelle ne sait pas fournir : l'édition se fait donc sur le Mac et les essais de jeu sur une tablette, par code. Cette boucle fonctionne, et elle est plus lente qu'il n'y paraît.

Et le monde photographié n'a pas pu entrer. Nous avions reconstruit notre camp de halte à partir de huit vues générées — en nuage de points, c'est réellement bon, la meilleure vue que nous ayons de ce lieu. Converti en surface telle qu'un moteur de jeu l'attend, c'est du confetti : plus d'un million de fragments qui ne se simplifient pas. En couper plus de quatre-vingt-dix-neuf pour cent n'en a retiré qu'un tiers. C'est une image dans laquelle on peut se tenir, pas une géométrie sur laquelle on peut bâtir.

Ce qui a changé — nous demandons désormais si une plateforme peut accueillir notre projet avant de passer une journée à adapter notre projet à la plateforme. Chacun de ces trois murs était publié, ou mesurable, avant que nous commencions. Le détour n'a pas été perdu — nous en sortons avec une voie Windows opérationnelle et un trajet réutilisable pour nos propres modèles — mais la question qui aurait révélé ces murs coûte un après-midi de lecture, et nous l'avons posée dans le mauvais ordre.

La vue 3D tient soixante images par seconde. Ce n'est toujours pas quelque chose que l'on puisse regarder.

Le second moteur de rendu est terminé. Le même jeu en dessous, deux façons de le dessiner : la vue plate d'origine et une vue 3D en temps réel, partageant une simulation qu'aucune des deux n'a le droit de toucher. Toutes deux rejouent une partie enregistrée identique vers un résultat identique — la preuve que la vue 3D est une vue et non un second jeu subtilement différent.

Sur le déploiement de test, elle dessine une image en environ 16,7 millisecondes, et la plus lente sur une longue série a pris 16,8. C'est un soixante images par seconde verrouillé, avec quarante voyageurs en marche et environ sept cent mille triangles à l'écran. Dix-sept vérifications sur dix-sept passent.

Et ce n'est toujours pas livrable, parce que onze des objets qui s'y dressent sont des bouche-trous — ceux décrits dans l'entrée ci-dessous, générés à partir de descriptions écrites plutôt qu'à partir des images de concept. Le moteur de rendu est fini. Ce qu'il dessine ne l'est pas.

Ce qui a changé — « le moteur de rendu est fini » et « le jeu a le bon aspect » se sont révélés indépendants, et nous traitions discrètement le premier comme une preuve du second. Un chiffre de performance ne voit pas la direction artistique. Nous rapportons désormais ces deux états séparément, car une compilation au vert qui dessine les mauvais objets à soixante images par seconde reste les mauvais objets.

Et — le travail sur les assets a quitté une personne qui clique dans un outil web pour rejoindre quelque chose que la compilation peut exécuter directement. Cela supprime toute une catégorie d'erreurs que nous répétions : dans cet outil, les réglages se réinitialisaient silencieusement entre les étapes — confidentialité, niveau de détail, animations exportées — et trois sessions distinctes y ont perdu du travail. Le remplaçant n'est pas plus malin, il est simplement incapable d'oublier une case à cocher.

Le réglage évident n'a rien changé. Nous avons donc mesuré où les supports touchent vraiment.

Les deux impressions de la veille (ci-dessous) ont échoué sur une seule grandeur : la matière restée sur la figurine. Nos vérifications de découpe avaient validé les deux fichiers, car aucune ne mesurait cela. La première chose construite ce matin fut donc l'instrument manquant : un script qui lit le parcours d'outil final et indique combien de millimètres carrés de pointes de support touchent le modèle, en combien d'endroits, et si un tronc de support pousse depuis la figurine elle-même.

Puis le réglage vers lequel tout le monde se tourne. « Supports sur le plateau uniquement » sonne comme le remède au résidu. Sur le fichier de Daniel, il est passé de 191 mm² en 1 083 points à 184 mm² en 1 040 — parce que chacun des sept troncs reposait déjà sur le plateau. Le résidu n'a jamais été les troncs. C'étaient les pointes sous le sac, les mains et le menton, et les branches frôlant les parois en montant.

Ce qui a réellement bougé : des arbres plus fins à paroi unique, un écart plus large aux parois, un espace plus haut sous le modèle et un seuil plus raide. Daniel 191 → 127 mm² (avec les semelles coupées à plat pour que rien ne se loge sous les pieds). Amara 178 → 45 mm², sans entretoises, sans piquets et sans bloc — les deux boucles qui partaient encore dans le vide ont reçu un pont caché d'un millimètre dans la masse des cheveux, long de deux millimètres, qui n'a jamais à être retiré. Douze légères inclinaisons de chaque figurine ont été découpées et mesurées ; toutes étaient pires que la station debout. La hauteur de couche s'est aussi révélée un levier : à 0,14 mm au lieu de 0,2 mm, les pointes sur Amara tombent à 8,5 mm², pour 27 minutes d'impression en plus — découpé et mesuré, pas encore imprimé.

La figurine imprimée d'Amara de 80 mm vue de dos : PLA violet, six courts moignons de piquets à la nuque sous les cheveux, résidu de support rugueux entre les jambes sous l'ourlet de la robe
Ce que l'instrument a été construit pour mesurer. Photographie de la première impression d'Amara : les piquets à la nuque et le résidu de bloc sous l'ourlet.
La figurine imprimée de Daniel de 97 mm posée sur une table en bois : PLA violet couvert de fils fins, avec des zones rugueuses sur le sac d'épaule et le long du bâton de marche
Le même jour, Daniel à 97 mm. Photographie. Fils fins sur le torse, cicatrices d'arbres sur le sac et sur le bâton.

Ce qui a changé — une impression se juge au résidu sur la figurine, mesuré depuis le parcours d'outil, et non à la part de support dans le fichier. Et « trouver un moyen » signifie une autre approche posée sur la table à côté de celle qu'on a réglée : le plan du jour prévoit les deux figurines à 120 mm sur une plaque de base (découpées : 5 h 07 et 6 h 17), une voie de supports qui fait pousser ses propres piliers fins depuis le plateau avec des pointes en tête d'épingle au lieu des couches d'interface du trancheur, deux passes de recherche sur la façon dont d'autres imprimeurs de figurines gèrent supports et hauteurs de couche, et la première impression de l'Amara retravaillée.

Nous avons imprimé les deux premiers voyageurs sur notre propre imprimante. Les supports ont gagné.

Deux figurines sont sorties pour la première fois de l'imprimante de bureau : Amara Sol à 80 mm et Daniel à 97 mm, dans l'unique filament violet que nous avons chargé. Chacune portait une réponse différente à la même question — comment soutenir des mains, un pot, un ourlet et des boucles de cheveux pendant l'impression.

Amara a reçu notre propre réponse : de fines entretoises et des piquets fusionnés au modèle, coupés ensuite, plus un bloc plein sous l'ourlet. Daniel a reçu les supports arborescents du trancheur. Les deux réponses étaient mauvaises à cette taille. Les piquets derrière les cheveux d'Amara et sous ses boucles d'oreilles sont inatteignables à la pince à 80 mm. Le bloc sous l'ourlet a laissé des gravats entre ses jambes. Daniel est sorti du plateau couvert de fils fins, avec des cicatrices là où les arbres avaient tenu le sac et le bâton.

Autour de l'impression, les éléments qui permettent de la regarder sont passés en ligne le même jour : une vue navigateur qui rejoue le parcours d'outil au fil de la progression rapportée par l'imprimante, un message tous les cinq pour cent sur le serveur communautaire, et un guide « réveiller l'imprimante » pour le direct. Rien de cela ne change l'aspect des impressions ; cela change qui peut les voir.

La figurine imprimée d'Amara de 80 mm couchée sur le côté sur une table en bois, PLA violet, avec de fines tiges de support encore attachées de la robe vers les mains et le pot
Amara à 80 mm, première impression. Photographie. Les tiges allant de la robe vers les mains étaient notre idée — et elles ne se détachent pas proprement à cette échelle.

Ce qui a changé — les entretoises et piquets fusionnés dans une figurine de moins de 100 mm sont abandonnés ; ce qui soutient l'impression doit reposer sur le plateau et toucher la figurine le moins possible. Et chaque vérification qui déclarait ces fichiers prêts est désormais accompagnée d'une autre qui mesure ce que les vérifications avaient manqué.

Nous avons mis la capture du moteur de rendu à côté de l'image de concept. Personne ne l'avait jamais fait.

La vue 3D avait passé tout ce que nous lui demandions. Les mêmes entrées rejouent la même image sur six cents images, les temps d'image tiennent sur un téléphone, les quatorze maillages finis se dressent sur les bons anneaux. Tout cela est vrai et tout cela a été vérifié.

Ce que personne n'avait fait, c'était de poser une capture à côté de l'image dont elle est censée avoir l'air. Quand nous l'avons enfin fait, l'écart n'était pas mince. Le sol est un unique plan vert plat, sans horizon. La route est un ruban beige. Les anneaux de pierre sculptée — l'élément héroïque de chaque image de ce jeu — sont des disques pâles translucides à trente pour cent d'opacité.

Rien de tout cela n'est un bogue. Chacun de ces points est une chose qui n'a jamais été construite, et qui passait un test qui ne regardait pas.

La vue 3D d'Agoro Road le 13 septembre 2026 : un plan de sol vert et plat, un ruban de route beige, des disques pâles translucides pour les anneaux, et les maillages finis dressés le long de la route
La compilation, 13 septembre. Une capture du vrai moteur de rendu, à la caméra verrouillée du jeu.
L'image de concept : Lantern Bend au crépuscule, une route de terre sinueuse dans une vallée de hauteur avec des anneaux sculptés, un poste de guet, un mât à lanterne et un carré de jardin
L'image de concept à laquelle elle est comparée. Lantern Bend au crépuscule.

Ce qui a changé — l'aspect fait désormais partie de l'acceptation. Une capture est posée à côté de l'image de concept et jugée comme on juge un asset graphique. Une suite de tests qui n'inclut pas l'aspect certifiera volontiers une compilation qui n'a pas le bon aspect.

Onze accessoires sont sortis de travers. Nous refaisons les onze, pas les six qui ont échoué.

Les bâtiments et les accessoires ont été générés à partir de descriptions écrites. Les images de concept existaient déjà pour la plupart, dans le même dossier, et n'ont pas été utilisées.

Le tambour est revenu en chaudron de fonte noire. La lanterne est revenue en réverbère victorien. La charrette de marchandises est revenue en brouette de bois. Jugés un à un face aux cartes qu'ils devaient égaler : quatre étaient le mauvais objet ou la mauvaise palette, deux n'avaient aucune carte de référence, et cinq étaient assez proches pour passer à l'échelle de la carte.

La tentation était de refaire les quatre et de garder les cinq. Daniel a tranché dans l'autre sens.

il nous faut un aspect cohérent entre les images de concept, les accessoires, les images et les bandes-annoncesDaniel, 13 septembre 2026

Les onze sont donc refaits à partir des images, et non de descriptions des images. Les cinq qui étaient individuellement acceptables ne l'étaient pas comme éléments d'un ensemble, car c'est un ensemble que nous fabriquons réellement.

Correction, 20 septembre. Deux des trois exemples ci-dessus sont justes, un ne l'est pas. Lorsque nous avons enfin rendu le tambour livré et que nous l'avons regardé, c'est bien un tambour — un tambour sur pied, le bon objet. Ce qui cloche, c'est la matière : un orange laqué, là où la carte montre peau, corde et bois patiné. La formule « chaudron de fonte » venait d'une note écrite que personne n'avait confrontée au modèle, et elle a ensuite circulé dans trois de nos propres documents comme s'il s'agissait d'une observation. L'erreur qu'elle décrit est réelle ; l'exemple était faux. Nous laissons la phrase d'origine ci-dessus plutôt que de la corriger en douce, car la faute qu'elle a causée — affirmer à propos d'une image sans ouvrir l'image — est exactement la faute dont parle cette entrée, et nous l'avons commise en l'écrivant.

La carte de concept du Tambour d'Écho : un grand tambour sur pied à peau tendue et cordage, sur un support en bois sculpté, deux mailloches posées sur le bord
Le Tambour d'Écho tel qu'il a été dessiné. Cette carte existait avant que le modèle ne soit fait. Le modèle est revenu en chaudron de fonte.

Ce qui a changé — « acceptable isolément » n'est pas une réussite quand le travail est une seule direction artistique. Et nous inventorions les images de concept avant de générer quoi que ce soit, car l'image est un meilleur cahier des charges que n'importe quelle description de l'image.

Nous avons mené un comparatif qui a renversé notre propre recommandation.

Plus tôt dans la semaine, nous avions recommandé l'un des fournisseurs d'images par IA que nous utilisons pour fabriquer des planches de référence. Cette recommandation contenait une réserve écrite par celui qui l'avait formulée, et la réserve était la partie honnête : rien n'avait jamais été comparé à l'alternative. Elle disait que ce fournisseur est assez bon sur nos images. Elle ne disait pas que ce fournisseur gagne.

Nous avons donc comblé l'écart : les mêmes travaux chez deux fournisseurs, sept configurations, trois passes chacune — vingt et une images pour environ quarante-sept crédits, à peu près ce que coûte un seul asset 3D raté.

L'autre fournisseur a gagné, et le travail de planches a changé de camp. Nous étions sur le point de normaliser la recommandation sans l'avoir jamais testée.

Ce qui a changé — une recommandation qui n'a jamais été mesurée face à une alternative est une préférence. Si nous ne pouvons pas nommer ce qu'elle a battu, elle n'est pas encore décidée.

Trois voyageurs qui sont sortis justes, et pourquoi.

Ces trois-là ont suivi un autre chemin que les onze. La carte de concept a été transformée en une planche debout et nette, et c'est la planche — non une description — qui a été transformée en modèle. Gréés, avec repos et marche.

La même personne survit aux trois étapes. L'écharpe, la besace et le foulard de tête sont encore là à l'arrivée. Le ballot attaché dans le dos du porteur est ressorti en vraie géométrie plutôt qu'en suggestion peinte.

C'est tout l'argument en faveur d'un pipeline mené par l'image plutôt que par le texte, et c'est pourquoi les onze sont refaits.

Carte de concept du marcheur de route : un voyageur en cape à capuche sur une tunique indigo, avec une besace et un bâton de marche
1 · La carte de concept. Un dessin.
L'asset de jeu fini du marcheur de route : le même personnage en modèle 3D gréé
2 · L'asset de jeu fini. Le même homme — les cheveux poivre et sel, la cape de laine écrue, la tunique indigo, la besace et le bâton sont tous passés. Seule la pose a changé.

Notre compagnon est un oiseau, et la bibliothèque d'animations s'est révélée n'en contenir aucun.

Kofa est l'oiseau sankofa. Il a été construit pour Agoro Camp et il appartient au studio plutôt qu'à un seul jeu — le même oiseau, le même aspect, des capacités différentes dans chacun — si bien que l'amener sur cette route ne nous coûte rien en conception. Sa boucle est récupérer, révéler, explorer, et l'exploration ne se débloque que sur un terrain dont vous avez déjà récupéré le passé. L'avenir n'est pas visible tant que le passé n'est pas connu. Cette règle est le personnage, non un texte d'ambiance.

L'œuf d'or qu'il porte en est l'indicateur : vide signifie que le passé de ce lieu est encore perdu. Cela fonctionne parce que l'œuf est sorti du maillage comme un objet véritablement distinct, si bien que le jeu peut réellement l'éclairer au lieu de simplement le suggérer.

Le maillage est fini — texturé, avec un squelette de cinquante-six os. Puis nous avons ouvert la bibliothèque d'animations dont nous comptions tirer les cycles de vol et découvert qu'elle classe un oiseau bipède comme aviaire, et que sa section aviaire est vide. Pas mince. Vide.

Chacune de ses séquences sera donc animée à la main. C'est un coût réel, et il est désormais dans le plan plutôt que dans une surprise.

Mise à jour, 13 septembre. Quand nous avons voulu le mettre en pose, il s'est déchiré. Il ne manquait pas seulement ses animations — son squelette n'était pas au bon endroit. Nous avons mesuré chaque os face à la chair qu'il commande réellement : les os se trouvaient en moyenne à presque une longueur de corps de distance, et l'os du bec était plus loin du bec que l'oiseau n'est haut. Deux personnages humains gréés par le même outil mesuraient vingt-cinq fois mieux, ce qui nous a montré que le problème venait du gréage et non de notre règle.

Les poids — quel sommet suit quel os — étaient bons. Nous les avons donc gardés et avons ramené chaque os à l'intérieur de son propre corps, en déduisant chaque articulation de la région où deux os partagent l'influence. Cela l'a mis debout. L'image ci-dessous est la première qui ait jamais existé de ce personnage.

Puis la seconde faute : des morceaux de l'œuf d'or étaient rattachés à un orteil, pour un quart de leur poids chacun, à l'autre bout du corps. Au repos c'est invisible, car au repos tous les os s'accordent. Dès que sa tête a pivoté, l'œuf s'est déchiré en éclats. Les deux fautes se cachaient dans la seule pose que l'on regarde jamais.

Kofa debout : un grand oiseau bleu et or au motif adinkra sur le cou et le corps, un long cou courbe, et un œuf d'or tenu dans le bec
1 · Debout, pour la première fois. Le même maillage qui avait été inutilisable toute la semaine. Rien n'a été resculpté — seul le squelette a été remis à sa place.
Kofa exécutant le regard en arrière sankofa : le cou s'arque vers le haut et l'arrière par-dessus l'échine, la tête retournée, l'œuf d'or emporté avec elle
2 · Le mouvement pour lequel il existe. Le cou s'arque en arrière par-dessus l'échine, la tête se retourne, l'œuf suit. Retourne le chercher.

Il possède maintenant trois séquences animées à la main — une marche, un repos et le regard en arrière ci-dessus. Elles vivent dans le fichier du personnage ; il n'est pas encore dans la version jouable.

Ce qui a changé — nous vérifions désormais qu'un outil sait faire la chose précise avant qu'un asset n'en dépende. « Elle a une bibliothèque d'animations » et « elle a une bibliothèque d'animations pour ceci » sont deux phrases différentes.

Et — notre premier regard en arrière a passé toutes les vérifications que nous avions écrites et restait inutilisable : le cou se nouait et la tête finissait enfouie dans une aile. Les vérifications mesuraient si le bec atteignait sa cible et si quelque chose s'intersectait. Aucune des deux ne pouvait voir une silhouette, qui est tout l'intérêt de cette pose. Nous testons désormais si le contour se croise lui-même, et chaque arête du maillage face à sa longueur d'origine — et nous regardons l'image. Une vérification incapable d'observer la façon dont une chose échoue la certifiera comme bonne.

Ce que les joueurs ont déjà changé

Deux de ces cas viennent de nos jeux déjà sortis plutôt que d'Agoro Road — mais ils ont changé la manière dont celui-ci se construit, alors ils ont leur place ici.

La boutique qui ne voulait rien vendre

« Wieso kann ich die nicht kaufen? »

Un testeur en Allemagne a envoyé une ligne au sujet d'Agoro Bounce : pourquoi est-ce que je ne peux pas les acheter ? La boutique affichait bientôt disponible sur tout.

La boutique n'était pas cassée. Le lien de test public distribuait encore la toute première version — faite avant que la boutique n'existe. Toutes les versions plus récentes n'étaient allées qu'au groupe privé. Il avait raison, et il regardait quelque chose de dix versions en retard.

Ce qui a changé

Nous avons cessé de supposer que le lien public sert ce que nous avons téléversé en dernier. Il a sa propre version et doit être pointé délibérément vers la nouvelle. Nous ouvrons désormais le lien que reçoit vraiment un testeur.

Le champ de nom qui mangeait la lettre S

Tapez « Sam ». Obtenez « am ».

Daniel est tombé dessus sur le site en ligne d'Agoro Bounce. Les raccourcis clavier du jeu écoutaient encore alors que le champ de nom avait le focus, et s était un raccourci — la lettre est donc partie dans le jeu au lieu d'entrer dans le champ.

Nous l'avons corrigé ce matin-là. Onze heures plus tard, il a signalé que c'était toujours cassé, et ça l'était. Le correctif était dans le code et non sur le site : une publication ultérieure était partie d'une copie plus ancienne du projet et avait discrètement remis l'ancienne version.

Ce qui a changé

Corrigé n'est pas livré. Nous chargeons la vraie page et confirmons que le correctif est bien dans ce que le serveur sert réellement avant que quiconque ne dise que c'est fait.

À propos de ce journal

Agoro Road est en développement et gratuit à jouer dans le navigateur pendant sa fabrication. Ce journal fait partie de notre manière de construire en public pendant le Shipaton 2026 ; nos applications déjà sorties sont Agoro Pocket, Agoro Bounce et Lanternlight, et chacune a sa propre entrée. Rien sur cette page n'est une annonce de sortie.

Voir le reste de ce que nous faisons →