- 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
- Wie bringt man ein LLM dazu, sich konsistent so zu verhalten, wie man es möchte?
- 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.