- Braindump est une tentative d’imaginer à quoi pourrait ressembler la création de jeux dans le nouveau monde des LLM et de l’IA générative
- Avec Braindump, il est possible de construire un jeu en vue de dessus/2.5D ou un monde interactif simplement en saisissant des prompts
- Par exemple, si l’on saisit « créer un chasseur stellaire capable de tirer des lasers et de larguer des bombes BB-8 », les modèles 3D, les données de jeu et les scripts correspondants sont générés
Des premières expérimentations à aujourd’hui
- Le projet a commencé il y a environ 6 mois comme un simple prototype, puis a évolué avec la génération de modèles 3D, l’ajout du multijoueur et de nombreuses améliorations UX
- Aujourd’hui, Braindump propose les fonctionnalités clés suivantes
- Définition des unités, capacités et attributs (ex. : « un orc avec 50 HP qui laisse tomber une baguette magique »)
- Placement d’objets sur la carte du jeu (ex. : « placer 20 orcs en cercle »)
- Génération des règles et de la logique du jeu (ex. : « quand la santé d’un orc atteint 0, faire apparaître un orc fantôme à cet endroit »)
- Génération de nouveaux modèles 3D (ex. : « je veux rendre l’orc rose et lui ajouter des oreilles duveteuses », via Meshy)
- Le tout est accessible via une interface de prompts en langage naturel entièrement intégrée
Défi 1 : concevoir une UX pour le prompting
- Lorsqu’on construit quelque chose avec des LLM, deux grands problèmes se posent
- Comment faire en sorte que le LLM se comporte de manière cohérente comme on le souhaite
- Quelle est la meilleure UX pour interagir avec le LLM
- De nombreuses expérimentations sur les prompts ont conduit à l’approche itérative actuelle
- Générer un jeu d’un seul coup à partir d’une description complète fonctionne mal
- Construire progressivement le jeu via plusieurs prompts permet d’ajouter des détails ou d’itérer plus facilement
- L’équipe continue d’expérimenter pour trouver le bon équilibre entre prompts et contrôles classiques
Défi 2 : concevoir une API de jeu pour les LLM
- La génération de code pour des moteurs de jeu existants s’est révélée difficile
- Les LLM sont doués pour générer des snippets de code, mais ont du mal avec des morceaux logiciels plus vastes ainsi qu’avec la construction et la maintenance de l’architecture logicielle
- À la place, une « API de jeu » très simplifiée a été construite en TypeScript afin de fournir autant de structure que possible et permettre au LLM de se concentrer sur l’écriture du code et des données
- En fournissant à GPT les définitions de types générées par l’API (
.d.ts) dans le prompt système, GPT utilise généralement l’API correctement dès le premier essai
- La vérification de types a aussi révélé un avantage surprenant : lorsque GPT détecte une erreur, il essaie de la corriger lui-même
Macros générées
- L’API de jeu a ouvert un autre flux UX intéressant : les macros générées
- En général, dans une application, une macro est un petit programme qui automatise des tâches
- Dans le système Braindump, chaque prompt génère du code, et ce code peut automatiser presque tout ce que couvre l’API de jeu
- Par exemple, on peut saisir un prompt comme « placer des tentes à côté du feu de camp »
- Il est aussi possible d’automatiser des tâches fastidieuses (ex. : « créer 5 chats différents avec des stats différentes »)
- On peut même lui demander de répondre à des questions nécessitant un calcul (ex. : « combien de tentes sont orientées vers le nord ? »)
- Cela ouvre une nouvelle manière de travailler
- Au début c’est un peu étrange, mais une fois qu’on s’y habitue, cela permet d’accomplir en quelques secondes, de façon créative, des tâches très répétitives
IA et édition collaborative
- L’objectif était de rendre tout Braindump multijoueur
- Cela concerne à la fois la création du jeu et le jeu lui-même
- Au départ, il n’y avait qu’un grand chat auquel tout le monde pouvait contribuer, mais c’était confus
- Le principal problème était que l’on travaillait souvent sur deux choses différentes sans rapport entre elles
- Après avoir essayé plusieurs solutions, cela a convergé vers ce qui est appelé des « Threads »
- On peut démarrer un prompt n’importe où dans le monde, puis le préciser ou l’enrichir quand nécessaire
- Les threads reçoivent au départ l’état le plus récent du jeu, mais pas l’historique complet du projet
- Plusieurs threads peuvent être « en cours d’exécution » en même temps, mais un seul prompt à la fois peut s’exécuter par thread
- Jusqu’à présent, cela fonctionne plutôt bien
- Lors des tests, 5 personnes ont travaillé en même temps sur le même monde ; c’était certes un peu confus, mais cela restait fonctionnel
- Des moyens permettant aux utilisateurs de se coordonner efficacement sont activement recherchés
Benchmarking et tests
- Un outil de benchmarking a été développé pour évaluer les performances du moteur de prompts
- Cet outil exécute des dizaines de scénarios, chacun avec son propre prompt, puis utilise GPT pour évaluer si le prompt a réussi
- Un second GPT appelé « évaluateur » (avec son propre prompt système) reçoit ces conditions, l’état simulé final ainsi que toutes les erreurs survenues, et doit déterminer si le test est un succès ou non
- La suite de tests en est encore à ses débuts, mais de plus en plus de tests sont ajoutés à mesure que de nouveaux styles de prompts et des cas d’échec sont découverts
Pourquoi créer Braindump
- Personnellement, l’auteur a toujours aimé les jeux et la créativité
- L’IA générative représente la prochaine étape naturelle en matière de gain de productivité
- Elle permet tout simplement d’en faire davantage
- Comme les grands studios produisent des jeux de plus en plus conservateurs, il est enthousiasmant de donner à de petits groupes, voire à des individus, les moyens de créer le jeu de leurs rêves
- L’auteur veut voir quelles idées folles les gens imagineront et réaliseront lorsqu’ils auront un studio de jeux IA complet au bout des doigts
Et ensuite
- Braindump n’en est qu’à ses débuts
- Le système est aujourd’hui déjà très à l’aise pour exécuter des « commandes » (« créer un chat »), mais il est clair qu’il peut être étendu pour gérer aussi des tâches beaucoup plus vagues ou plus « grandes »
- Les pistes actuellement étudiées incluent
- La prise en charge de prompts plus « grands » via le planning
- Faire en sorte que GPT cesse de deviner et demande plutôt des clarifications à l’utilisateur
- Améliorer la qualité du code en poussant GPT à critiquer son propre travail
- Améliorer la découvrabilité et l’inspiration (« qu’est-ce que je peux créer avec ça ? »)
- Améliorer les fonctionnalités du moteur de jeu d’une manière adaptée aux LLM
Aucun commentaire pour le moment.