22 points par xguru 2024-06-17 | Aucun commentaire pour le moment. | Partager sur WhatsApp
  • 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
    1. Comment faire en sorte que le LLM se comporte de manière cohérente comme on le souhaite
    2. 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.

Aucun commentaire pour le moment.