Iro-Koku : quatre mois sous Unity, quatre jours pour en faire une application web
Un jeu de cartes construit pendant quatre mois sous Unity, règle après règle, puis porté en application web en quatre jours avec un agent de code. Ce que le portage a coûté, ce qu'il a révélé, et pourquoi il n'aurait pas été possible sans les quatre mois d'avant.
Iro-Koku est un jeu de duel de cartes : une grille de 4 × 4 cases, des cartes portant une valeur sur chacun de leurs quatre côtés, et une capture dès qu'une carte posée est plus forte que sa voisine. Chaque carte appartient à une Teinte, et quinze règles viennent tout bouleverser. Le jeu existe depuis février. Il ne tournait pourtant sur aucun téléphone avant le 30 septembre. Février à juin : le jeu se construit sous Unity Le dépôt d'origine, FFS, compte 102 commits entre le 5 février et le 25 juin. Il raconte une méthode très régulière. - Février : un premier adversaire automatique dès le deuxième jour, le glisser-déposer des cartes, puis un panneau de débogage pour voir ce que le moteur calcule. - Mars : une règle par tâche, numérotée. TASK008-Tide (la Marée), TASK009Peak (le Sommet), TASK010 à TASK014 en une seule journée (règles Aveugle, Inverse, Emmêlés, Abondance, Volte-face), puis Jugement, Chaos et Mort subite. Chaque règle est codée, testée dans la scène, puis commitée avant la suivante. - Avril : trois commits. Le projet souffle. - Mai et juin : deux développeurs rejoignent le projet. Écran d'accueil, collection, options, système de manches, effets visuels. Le code se réorganise (GameManager devient GameManagerOld) et la scène de duel est reconnectée en trois étapes. Au bout de quatre mois, il y a un moteur complet, un document de conception détaillé et cent cartes illustrées. Mais aucun moyen simple de faire jouer quelqu'un. Un projet Unity se partage par une compilation à installer, et chaque essai sur téléphone en demande une nouvelle. 30 septembre : la version 1.0 web Le portage part d'une consigne simple : reproduire le jeu en HTML, CSS et JavaScript, sans dépendance ni étape de compilation, installable et jouable hors ligne. Le README du dépôt web contient une table de correspondance : CombatSystem devient engine.js, AIPlayer devient ai.js, SaveLoadManager devient save.js, et ainsi de suite pour chaque script. La 1.0 du 30 septembre contient déjà le moteur des quinze règles, un adversaire sur trois niveaux, les cent cartes, une aventure de 21 rencontres, des rangs et un marchand. La 1.16.6 arrive le 4 octobre au soir. Ce que le portage a révélé Traduire un moteur ligne à ligne oblige à le relire. Le README liste les écarts volontaires avec le code Unity, et ce sont surtout des bogues trouvés en route : - la règle Volte-face donnait toutes les cartes au même camp, au lieu d'inverser chaque propriétaire ; - la règle Jugement renvoyait une valeur vide en cas d'égalité, ce qui faisait planter la partie ; - les cases modifiées ne pouvaient jamais apparaître : les réglages valaient 0 et 0, et la fonction de tirage au sort excluait la borne haute ; - l'immunité de la Forge ne s'arrêtait jamais ; - à partir de la carte 25, chaque illustration était associée à la mauvaise carte. Aucun de ces problèmes ne se voyait en jouant quelques parties dans l'éditeur. Ils sont apparus parce qu'il fallait expliquer chaque ligne à un autre langage. Ce que l'IA a fait, et ce qu'elle n'a pas fait L'agent de code a écrit l'essentiel du JavaScript. Il ne l'a pas inventé : chaque règle avait déjà un nom, une fiche et un comportement testé dans Unity. Le document de conception décrivait même les phases qui n'avaient jamais été codées côté Unity (récompenses, rangs, collection, marchand), et la version web les a reprises telles quelles. Le portage de quatre jours repose donc sur quatre mois de décisions. L'IA a accéléré la traduction, pas la conception. Et ensuite : 1.1 à 1.16 en quatre jours Les versions suivantes ne touchent presque plus au moteur. Elles parlent de lisibilité sur un écran de 375 pixels, de tutoriels avec Hoshi, la mascotte, d'un geste de glisser qui reste sous le doigt, et d'une saga de plein écran sur iPhone qui méritera son propre billet. Sept petits tests automatiques sont aussi apparus dans le dépôt, sur l'équilibrage de l'aventure, les Teintes ou la collection de départ. À retenir - Un prototype dans un outil lourd n'est pas du temps perdu : c'est la spécification du produit suivant. - Porter un code est le meilleur moyen de le relire : cinq bogues sont apparus en quatre jours. - Une application web se partage par un lien. C'est souvent ce qui manque pour avoir enfin de vrais joueurs.