Dank KI sollen auch Programmier-Laien komplexe Programme wie Spiele erstellen können. Eine Forschergruppe hat diese Behauptung anhand des Spiels Flappy Bird und der Programmiersprache Python auf die Probe gestellt.
Die Ergebnisse der Forschungsgruppe von DiverSE zeigen, dass KI-Programmierung nicht so einfach ist, wie sie manchmal dargestellt wird, aber Potenzial hat. Das Experiment gibt keine eindeutige Antwort auf die Frage, ob Nicht-Programmierer plötzlich voll funktionsfähige Spiele mit KI entwickeln können, aber es zeigt zumindest, dass der Prozess weder einfach noch gelöst ist.
Flappy Bird per Sprachbefehl
Die Studie konzentrierte sich auf das Spiel Flappy Bird mit Python als Programmiersprache und untersuchte verschiedene Methoden mit ChatGPT Version 3.5 und 4. Das Team testete unterschiedliche Prompts und Strategien. Diese beinhalteten
- die Formulierung eines kurzen Prompts, der das Spiel lediglich beschreibt,
- die genauere Vorgabe einer Liste von Funktionen,
- eine kurze Beschreibung der wichtigsten Funktionen,
- die Bereitstellung eines vollständigen Code-Beispiels mit der Bitte um einen Prompt-Vorschlag
- und die Verwendung einer Reihe von Prompts zur Codegenerierung, ohne den Code zwischendurch zu überprüfen.
Die Forscher fanden jedoch keinen magischen Prompt, der immer ein spielbares Spiel erzeugte. Einige Versuche erzeugten spielbare Spiele ohne zusätzliche technische Eingriffe, aber viele Sitzungen führten zu unbrauchbaren Spielen, die umfangreiche Codekorrekturen erforderten.
Interessanterweise generierte ChatGPT selbst mit den gleichen Prompts deutlich unterschiedliche Codeversionen, die zu völlig verschiedenen Ergebnissen führten. Das Team spricht von erheblichen Inkonsistenzen in der Ausgabequalität, die gelegentlich sogar in eine Sackgasse führten.
Laien-Programmierung mit ChatGPT? Ja, aber ...
Der Test zeigt, dass Laien mit minimalen technischen Kenntnissen zwar Spiele mit ChatGPT erstellen können, dass dies aber ohne Programmierkenntnisse kaum systematisch möglich ist. Oft (aber nicht immer) waren direkte Eingriffe in den Code notwendig, um Fehler zu beheben.
War ein Spiel von vornherein in einem schlechten Zustand, war es ohne Programmierkenntnisse noch schwieriger zu reparieren, da die visuelle Kontrollmöglichkeit für entsprechendes Feedback fehlte. Wer keinen Code lesen kann, kann sich nur auf die Fehler beziehen, die im Spiel sichtbar sind. Aber wenn das Spiel nicht funktioniert, fällt diese Möglichkeit weg.
Während des Experiments teilte ChatGPT das Problem oft auf und fügte Platzhalter in den Code ein, ohne die Implementierung zu aktualisieren. Das ist zwar vorteilhaft für die Entwickler, aber für den Endbenutzer ist das Spiel unvollständig und nicht funktionsfähig.
Insgesamt betont das Team die Vorteile von ChatGPT für die Programmierung, einschließlich der Inspiration für neue Variationen eines Spiels oder einzigartige Features, die Verwendung des generierten Codes als Ausgangspunkt und die prinzipielle Möglichkeit für Endbenutzer, interessante Spiele zu erstellen, die "manchmal funktionieren".
Das Team schlägt weitere Vorgehensweisen vor, wie den Wechsel der Programmiersprache, die Suche nach besseren Prompts oder einer Sprache zur besseren Steuerung von ChatGPT und die Verbesserung der Integration der ChatGPT-Ausgabe in die Entwicklungsumgebung, um Zeit zu sparen.
Alle 35 Sessions mit Prompts, Code, Beobachtungen und Ergebnissen mit GPT-3.5 und GPT-4 via ChatGPT sind auf Github verfügbar. Das folgende Video zeigt einige der Experimente und ihre Ergebnisse.