De Slop Art Online aux protocoles : le parcours fou du Vibe Coding
Comment j'ai créé un jeu vidéo bizarre et révolutionné ma façon de voir les agents IA
Les meilleures idées naissent souvent des projets les plus décalés.
Imaginez la scène : vous êtes développeur, vient de prendre un coup de massue avec un licenciement. Vous enchaînez les candidatures sans retour, vous reprochez tout au monde, et surtout, vous vous sentez miserable. Puis un jour, quelque chose se déclenche. Vous décidez d'arrêter de vous plaindre et de construire quelque chose — quelque chose d'ambitieux, qui vous pousse à apprendre de nouveaux outils.
C'est exactement ce qui m'est arrivé. Et ce que j'ai construit, c'est un MMO où chaque PNJ est piloté par un LLM, traité exactement comme un joueur. Le nom ? SAO: Slop Art Online. (Oui, c'est une référence. Non, je ne m'excuse pas.)
Le choix technique qui n'était pas optimal
En commençant ce projet, j'ai fait ce que certains appelleraient des choix "sous-optimaux" : Rust, Bevy et SpacetimeDB. Ce sont des outils extraordinaires, ne vous méprenez pas. Mais它们的入门友好度并不高 pour le développement de jeux. C'était intentionnel, though. Je voulais de la friction. Je voulais me forcer à comprendre ce qui se passait vraiment sous le capot.
Le concept de base était simple mais ambitieux : les PNJ et les joueurs seraient impossibles à distinguer au niveau architectural. La seule différence ? Les PNJ prennent leurs décisions via des grands modèles de langage plutôt que des cerveaux humains. Marchands, gardes, politiciens, monstres — tous gobernés par les mêmes systèmes, tous "vivant" le monde du jeu via l'IA.
Mon approche initiale était naïve mais fonctionnelle : prendre un instantané du monde observable, l'emballer avec les actions disponibles, l'envoyer à un LLM, et attendre une réponse. Ça marchait. Jusqu'à ce que ça ne marche plus.
Le problème du temps réel
Voici le truc avec les MMO : ils n'attendent pas. Le combat se déroule en temps réel. Les joueurs s'attendent à ce que les PNJ réagissent instantanément, pas après un appel LLM de plusieurs secondes. Peu importe combien j'optimisais l'inférence, cette latence ne disparaîtrait jamais.
J'ai envisagé d'affiner un modèle plus petit sur des données de gameplay, mais ça semblait coûteux et rigide. Les mécaniques du jeu n'étaient même pas finalisées — entraîner un modèle sur des cibles mouvantes semblait à l'envers.
Puis est venue la percée : une architecture hybride.
Au lieu de compter uniquement sur les LLM pour les décisions, j'ai implémenté des behavior trees comme fondation. Chaque type de PNJ reçoit un arbre par défaut selon son rôle. Le LLM devient un "régénérateur" qui met à jour ces arbres selon ce que le PNJ "vit." Exécution déterministe et instantanée rencontre l'adaptabilité situationnelle.
[État SpacetimeDB] → [Dispatch Behavior Tree] → [Exécution Action]
↑
| (décisions rares)
[Pont LLM]
La magie s'est produite grâce à l'architecture push de SpacetimeDB. Le pont LLM reçoit toujours un état de jeu frais et contextualisé. Pas une liste plate d'outils. Pas un prompt statique. Une projection vivante du monde tel qu'il existe en ce moment, avec des actions sémantiquement connectées à la situation actuelle.
La question qui a tout changé
Debout à cette croisée architecturale, une pensée étrange a émergé :
Pourquoi chaque protocole IA n'est-il pas comme ça ?
Pourquoi exposons-nous des listes plates d'outils aux LLM ? Pourquoi utilisons-nous des interfaces conçues pour des yeux humains ? Que se passerait-il si nous concevions des systèmes spécifiquement pour les agents IA — des machines qui ont besoin d'état push-based, d'actions contextualisées, et de cadres de décision structurés ?
Le pattern behavior tree n'est pas seulement pour les jeux. C'est un modèle éprouvé pour la prise de décision IA. Le concept de推送 l'état pertinent au lieu de laisser les agents interroger l'information ? Ce n'est pas une amélioration incrémentale — c'est un changement de paradigme.
Ce que signifie vraiment un design agent-first
C'est là que les choses deviennent intéressantes pour quiconque construit avec l'IA. Nous sommes encore dans l'ère où nous adaptons des interfaces humaines pour des machines. Mais si nous inversons ça ?
Un protocole agent-first pourrait ressembler à :
- État push-based : Les systèmes envoient le contexte pertinent aux agents, pas l'inverse
- Actions contextualisées : Des outils qui comprennent leur pertinence actuelle selon l'état
- Espaces de décision structurés : Des hiérarchies claires pour les décisions, pas un choix illimité
- Validation intégrée : Des réducteurs qui assurent la cohérence de l'état avant et après les actions
Pensez à combien de développement IA actuel implique du prompt engineering juste pour que les modèles comprennent quelles actions sont possibles et quand. Maintenant imaginez un protocole où ce contexte est inhérent, toujours frais, toujours pertinent.
Le takeaway inattendu
Voici ce que le vibe coding m'a appris : parfois les insights les plus précieux viennent de construire quelque chose d'ambitieux avec de nouveaux outils. Je suis parti pour faire un jeu avec des PNJ IA. J'ai fini par questionner des hypothèses fondamentales sur comment les agents IA devraient interagir avec les systèmes.
Le protocole que je dessine n'est pas seulement théorique. Il naît de contraintes réelles, de décisions architecturales réelles, et de leçons réelles apprises en poussant les LLM dans des domaines pour lesquels ils n'étaient pas conçus.
Si vous faites du vibe coding en ce moment — que ce soit un jeu, une app, ou une expérience folle — faites attention aux moments où vous pensez "ça ne devrait pas fonctionner comme ça." Ces points de friction révèlent souvent plus sur l'avenir de l'IA que n'importe quelle feuille de route.
Le meilleur partie ? Je n'aurais jamais trouvé ces insights en jouant la sécurité. Parfois il faut construire Slop Art Online pour découvrir ce qui vient ensuite.
Quelle est votre histoire de vibe coding ? Parfois les projets les plus ridicules mènent aux percées les plus intéressantes. Partagez vos expériences dans les commentaires — je suis sincèrement curieux des chemins inattendus que d'autres ont empruntés.