22 Punkte von xguru 2024-06-17 | Noch keine Kommentare. | Auf WhatsApp teilen
  • Braindump ist ein Versuch, sich vorzustellen, wie Spieleentwicklung in der neuen Welt von LLMs und generativer AI aussehen könnte
  • Mit Braindump kann man allein durch die Eingabe von Prompts ein Top-down-/2.5D-Spiel oder eine interaktive Welt erstellen
    • Gibt man zum Beispiel „Einen Starfighter bauen, der Laser schießen und BB-8-Bomben abwerfen kann“ ein, werden dafür 3D-Modelle, Spieldaten und Skripte generiert

Von den ersten Experimenten bis heute

  • Vor etwa 6 Monaten als einfacher Prototyp begonnen, dann 3D-Modellgenerierung ergänzt, Multiplayer-Funktionen hinzugefügt und die UX mehrfach verbessert
  • Heute hat Braindump die folgenden Kernfunktionen
    • Einheiten, Fähigkeiten und Eigenschaften definieren (z. B. „Ein Ork mit 50 HP, der einen Zauberstab fallen lässt“)
    • Objekte auf der Spielkarte platzieren (z. B. „20 Orks in einem Kreis anordnen“)
    • Spielregeln und Logik erzeugen (z. B. „Wenn die Gesundheit eines Orks 0 erreicht, an dieser Stelle einen Geister-Ork erzeugen“)
    • Neue 3D-Modelle generieren (z. B. „Den Ork rosa machen und ihm flauschige Ohren geben“, mit Meshy)
  • Auf all das kann über eine integrierte natürlichsprachliche Prompt-Oberfläche zugegriffen werden

Herausforderung 1: UX für Prompting entwerfen

  • Beim Bauen mit LLMs gibt es zwei große Probleme
    1. Wie bringt man ein LLM dazu, sich konsistent so zu verhalten, wie man es möchte?
    2. Was ist die beste UX für die Interaktion mit einem LLM?
  • Durch viele Prompt-Experimente wurde auf den aktuellen iterativen Ansatz umgestellt
    • Ein Spiel auf einmal aus einer vollständigen Beschreibung zu generieren, funktioniert nicht besonders gut
    • Baut man ein Spiel schrittweise über mehrere Prompts auf, entstehen mehr Gelegenheiten, Dinge genauer zu beschreiben oder zu iterieren
  • Es wird weiter experimentiert, um die richtige Balance zwischen Prompts und bestehenden Steuerelementen zu finden

Herausforderung 2: Eine Spiel-API für LLMs entwerfen

  • Das Generieren von Code für bestehende Game-Engines erwies sich als schwierig
    • LLMs sind gut darin, Code-Snippets zu erzeugen, haben aber Schwierigkeiten mit größeren Software-Bausteinen sowie dem Aufbau und der Pflege von Software-Architekturen
  • Stattdessen wurde in TypeScript eine stark vereinfachte „Spiel-API“ gebaut, die so viel Struktur wie möglich vorgibt, damit sich das LLM auf das Schreiben von Code und Daten konzentrieren kann
  • Werden die aus der API generierten Typdefinitionen (.d.ts) GPT als System-Prompt gegeben, nutzt GPT die API in den meisten Fällen schon im ersten Versuch konsistent korrekt
  • Es wurde außerdem ein überraschender Vorteil von Typprüfungen entdeckt: Wenn GPT Fehler findet, versucht es, sie selbst zu korrigieren

Generierte Makros

  • Die Spiel-API eröffnet noch einen weiteren interessanten UX-Flow: generierte Makros
  • In Anwendungen sind Makros in der Regel kleine Programme, die Aufgaben automatisieren können
  • Im Braindump-System erzeugt jeder Prompt Code, und dieser Code kann fast alles automatisieren, was von der Spiel-API abgedeckt wird
    • Man kann zum Beispiel einen Prompt wie „Zelte neben einem Lagerfeuer platzieren“ eingeben
    • Auch langweilige Aufgaben lassen sich automatisieren (z. B. „5 verschiedene Katzen mit unterschiedlichen Werten erstellen“)
    • Man kann es auch bitten, Fragen zu beantworten, die Berechnungen erfordern (z. B. „Wie viele Zelte zeigen nach Norden?“)
  • Das eröffnet neue Arbeitsweisen
    • Anfangs wirkt es etwas seltsam, aber wenn man sich daran gewöhnt hat, lassen sich sehr monotone Aufgaben in wenigen Sekunden auf kreative Weise erledigen

Kollaboratives Editieren mit AI

  • Alles an Braindump sollte Multiplayer-fähig sein
    • Das gilt sowohl für das Erstellen als auch für das Spielen von Spielen
  • Anfangs gab es nur einen großen Chat, zu dem alle beitragen konnten, aber das war verwirrend
    • Das Hauptproblem war, dass oft gleichzeitig an zwei verschiedenen, nicht miteinander verbundenen Dingen gearbeitet wurde
  • Nach mehreren Lösungsversuchen lief es schließlich auf etwas hinaus, das intern „Threads“ genannt wird
    • Man kann überall in der Welt einen Prompt starten, ihn aber bei Bedarf auch präzisieren oder erweitern
    • Threads bekommen zu Beginn den aktuellen Spielzustand, aber nicht die vollständige Projekthistorie
    • Mehrere Threads können gleichzeitig „laufen“, aber pro Thread kann immer nur ein Prompt gleichzeitig ausgeführt werden
  • Bisher funktioniert das ziemlich gut
    • In Tests arbeiteten 5 Personen gleichzeitig an derselben Welt; das war definitiv etwas chaotisch, aber weiterhin funktionsfähig
    • Es wird aktiv nach Wegen gesucht, wie Nutzer sich effektiv koordinieren können

Benchmarking und Tests

  • Zur Bewertung der Leistung der Prompt-Engine wurde ein Benchmarking-Tool entwickelt
    • Das Tool führt Dutzende Szenarien aus, jedes mit einem eigenen Prompt, und verwendet anschließend GPT, um zu bewerten, ob dieser Prompt erfolgreich war
  • Ein zweites GPT namens „Evaluator“ (mit eigenem System-Prompt) erhält diese Bedingungen, den simulierten Zustand nach Abschluss sowie alle aufgetretenen Fehler und soll entscheiden, ob der Test erfolgreich war
  • Die Testsuite ist noch in einem frühen Stadium, aber jedes Mal, wenn ein neuer Prompt-Stil oder ein neuer Fehlerfall entdeckt wird, werden weitere Tests hinzugefügt

Warum Braindump gebaut wird

  • Persönlich gab es schon immer eine Liebe zu Spielen und Kreativität
  • Generative AI ist der natürliche nächste Schritt bei Produktivitätssteigerungen
    • Sie ermöglicht es einfach, mehr zu schaffen
  • Da große Studios zunehmend konservativere Spiele machen, ist es spannend, kleine Gruppen oder sogar Einzelpersonen in die Lage zu versetzen, ihr Traumspiel zu bauen
  • Es ist faszinierend zu sehen, auf welche verrückten Ideen Menschen kommen und was sie umsetzen, wenn sie ein vollständiges AI-Gamestudio an ihren Fingerspitzen haben

Was als Nächstes kommt

  • Braindump steht erst am Anfang
  • Derzeit ist es schon ziemlich gut darin, „Befehle“ auszuführen („Eine Katze erstellen“), aber es ist klar, dass es auch auf viel vager formulierte oder „größere“ Aufgaben erweitert werden kann
  • Aktuell wird unter anderem an Folgendem geforscht
    • Unterstützung für „größere“ Prompts durch Planning
    • GPT dazu bringen, nicht mehr zu raten, sondern stattdessen den Nutzer um Klärung zu bitten
    • Verbesserung der Codequalität, indem GPT seine eigene Arbeit kritisch überprüft
    • Verbesserte Auffindbarkeit und Inspiration („Was könnte ich damit bauen?“)
    • Verbesserung von Game-Engine-Funktionen auf eine Weise, die gut zu LLMs passt

Noch keine Kommentare.

Noch keine Kommentare.