Aller au contenu

OtterVillage

Un jeu mobile tranquille : un village de loutres au bord d’une rivière, des métiers, des bâtiments, le jour et la nuit.

En bref

Un jeu de gestion lente pour téléphone, en développement. C’est aussi mon terrain d’orchestration d’IA : des agents pilotent Unity et Blender par MCP, des modèles ouverts génèrent des images et des volumes, et chaque sortie de modèle est mesurée puis regardée avant d’entrer dans le jeu.

Nature
Projet personnel, futur jeu commercialisé
État
En développement, plus de 400 commits depuis mai 2026
Rôle
Conception, code, direction artistique, outillage, orchestration des agents
Pile
Unity 6 et URP, C#, UI Toolkit, Blender, Python
Modèles
FLUX.2 Pro par fal.ai, TRELLIS 2 de Hugging Face, Rodin et Tripo en comparaison

Mots-clésUnity 6 · URP · C# · UI Toolkit · Blender · Python · MCP (Model Context Protocol) · orchestration d’agents · Claude Code · Hugging Face · TRELLIS 2 · FLUX.2 · fal.ai · image vers 3D · retopologie · dépliage UV · cuisson de textures · IoU · tests EditMode · simulation d’équilibrage

Le village de nuit : quatre bâtiments éclairés, des lanternes le long des chemins, douze loutres entre la forêt et la rivière
Le village, la nuit. Douze loutres, quatre bâtiments, les lanternes allumées.

Ce que c’est

Le joueur installe des loutres, leur donne un métier, bâtit, et revient plus tard voir ce que le village est devenu. L’interface est entièrement en UI Toolkit. L’équilibrage est validé par des simulations écrites à part, que le code du jeu cite là où il applique la formule.

Le village de jour : une maison, un étal, un ponton sur la rivière, trois loutres
Le même village au début d’une partie, de jour.
Sur téléphone, le panneau Bâtiments : cabane, poste de pêche, cuisine, grande cabane, entrepôtSur téléphone, le panneau Gérer les loutres : Iris, Ambre et Bulle, chacune avec son métierSur téléphone, le panneau Ressources : vitesse du village, poissons, bois, nourriture
L’interface sur téléphone, en UI Toolkit : les bâtiments, les métiers des loutres, les ressources.

L’orchestration

Trois voies tournent ensemble. Un agent pilote l’éditeur Unity, le même agent pilote Blender, et des modèles génératifs fournissent la matière première. Les deux serveurs MCP sont déclarés dans le dépôt, donc la configuration suit le projet d’une machine à l’autre.

Bâtir le jeu

  1. L’agentcadré par les règles du dépôt
  2. Serveur MCP pour Unityversion épinglée
  3. Éditeur Unity 631 outils d’éditeur bâtissent le village et le capturent

Modeler

  1. L’agentpropose, exécute, mesure
  2. Serveur MCP pour Blender
  3. Blender40 scripts Python : forme, UV, cuisson, export

Générer

  1. Planche de conceptFLUX.2 Pro, par fal.ai
  2. Maillage brutTRELLIS 2, modèle ouvert de Hugging Face
  3. gardeValidationdouze mesures, puis le regard

Le jeu, dans Unity 6le village se refait, se mesure et se compare d’une version à l’autre

Trois voies, un même dépôt de règles, un même jeu.

Des outils d’éditeur construisent le village : la rivière, les chemins, la ceinture de forêt, le détail du sol, la prise de captures. Le village se refait, se mesure et se compare d’une version à l’autre.

Choisir un modèle

Les modèles image vers 3D ont été comparés sous contraintes réelles : la licence, la mémoire vidéo demandée, le coût.

  • TRELLIS 2, de Microsoft, distribué sur Hugging Face sous licence MIT : retenu, l’usage commercial étant permis sans ambiguïté.
  • Hunyuan3D : écarté, sa licence exclut l’Union européenne.
  • Rodin et Tripo : services comparés, Rodin passant par le pont Blender.
  • Meshy : écarté le 6 août 2026, style peluche et nombre de polygones ignoré.
  • FLUX.2 Pro par fal.ai pour les planches de concept. La clé vit dans le coffre de l’éditeur, jamais dans le dépôt.

De l’image au volume

  1. Les modèles génératifsPlanche de conceptun modèle d’images, face et dos
  2. Les gardesgardePlafond théoriqueface et dos diffèrent de 9,8 % : aucun maillage ne dépassera 0,917
  3. Les modèles génératifsMaillage brutun modèle image vers 3D
  4. Blender, par scriptsReprisesoudure, retopologie, dépliage, cuisson des textures, export
  5. Les gardesgardeDouze mesures à seuilsrecouvrement, membres, dépliage, densité de texels, saturation, aspect
  6. Les gardesgardeRegardune mesure ne voit pas un personnage sans visage
  7. UnityImportdécoupe des matériaux, rig, animations
La chaîne de production d’un personnage. Les blocs pleins sont des gardes.
Recouvrement
0,779 pour un plafond théorique de 0,917
Dépliage
69,2 % d’occupation pour une cible de 70 %, noté marginal
Pire rapport d’aspect
31, contre 401 sur le maillage brut
Corps
2 799 triangles, texture de 1024 px
Treizième cote
déclarée inexploitable : elle a affiché −77,2 % sans qu’aucun sommet ne bouge

Ce que j’ai décidé

Calculer le plafond avant de juger le modèle

Retenu
Mesurer d’abord ce qu’un résultat parfait vaudrait.
Écarté
Comparer directement le maillage à la planche.

Les deux vues de la planche diffèrent entre elles. Sans le plafond, un bon résultat passerait pour médiocre.

Une règle d’auto-audit pour l’agent

Retenu
Cinq temps de relecture après toute production visible, écrits comme compétence de l’agent.
Écarté
Se fier aux seules mesures.

Une journée entière avait produit un maillage correctement mesuré et un personnage sans visage, annoncé comme une réussite.

  • Les règles des agents en trois registres : ce qui est interdit, ce qui se demande, ce qui se vise. Neuf règles numérotées, avec les pièges d’outil rencontrés.
  • Aucune image générée n’est posée telle quelle sur un volume. Les textures sont composées par script, en six couches, à graine fixe.

Outils

  • Unity 6, URP, C#, UI Toolkit, 27 tests en mode éditeur.
  • Blender piloté par une quarantaine de scripts Python, nommés par étape.
  • Deux serveurs MCP, un pour Unity, un pour Blender.
  • Hugging Face pour les modèles ouverts, fal.ai pour la génération d’images.
  • Simulations d’équilibrage en JavaScript, testées par propriétés.

Ce que ça prouve

Que je sais orchestrer des agents et des modèles génératifs dans une chaîne de production réelle : choisir un modèle sur sa licence et sa mémoire, le brancher, et n’accepter sa sortie qu’après mesure.