Zum Inhalt springen

Automatisierung und KI in der Spieleentwicklung mit ChatGPT und Python

Automatisierung und KI in der Spieleentwicklung mit ChatGPT und Python

Einleitung

Hallo! Mein Name ist Mario und ich bin ein leidenschaftlicher Solo-Indie-Spieleentwickler aus den malerischen österreichischen Alpen in Tirol. Mein Weg in die Welt der Spieleentwicklung war ein ungewöhnlicher. Ursprünglich habe ich als Chef Patissier in hoch angesehenen Restaurants gearbeitet, bevor ich zur Fotografie wechselte. Meine Fähigkeiten in Photoshop und Lightroom zeugen von meiner autodidaktischen Hingabe und Leidenschaft.

Meine Faszination für Technologie führte mich schließlich zur Spieleentwicklung, wo ich meine wahre Berufung fand. Ich brachte mir selbst das Programmieren bei und tauchte in die fesselnde Welt der Spielekreation ein. Mein erstes Projekt, „Hell Grinder„, war ein kleines, aber bedeutendes Lernprojekt für mich. Seitdem widme ich meine kreativen Energien dem Genre, das mich am meisten fesselt: Science-Fiction, das aktuelle Projekt ist „Astrosphere„.

In Astrosphere, einem Sci-Fi-Strategie-Abenteuerspiel, erkundest du Sternensysteme und baust deine Raumstation aus. Sammle Ressourcen und überlebe auf deinem interstellaren Abenteuer.

Neben der Spieleentwicklung habe ich ein tiefes Interesse an Webdesign und genieße es, Zeit inmitten der atemberaubenden Naturschönheit der Berge zu verbringen. Diese vielfältigen Interessen fließen in meine Arbeit ein und tragen zu einzigartigen und immersiven Spielerlebnissen bei.

In diesem Blogbeitrag möchte ich darüber sprechen, wie ich ChatGPT in meinen Workflow integriere, um die Herausforderungen beim Programmieren komplexer Spiele zu meistern. Ein großes Problem bei der Spieleentwicklung ist die Vielzahl von Klassen und Dateien, die alle miteinander in Beziehung stehen. Damit ChatGPT effektiv helfen kann, muss es über den gesamten Code Bescheid wissen. Es ist jedoch sehr mühsam, jedes Mal alle Dateien in ChatGPT zu kopieren. Daher habe ich eine effizientere Lösung entwickelt, die ich euch im Folgenden vorstellen möchte.



Banner


Die Herausforderung: Komplexer Code in Spielen

Bei der Entwicklung von Spielen stößt man schnell auf die immense Komplexität, die mit der Erstellung und Verwaltung von Code einhergeht. Ein typisches Spiel besteht aus zahlreichen Klassen und Dateien, die alle untereinander in Beziehung stehen. Jede Klasse erfüllt eine bestimmte Funktion und interagiert mit anderen Klassen auf vielfältige Weise. Diese Struktur ist notwendig, um die verschiedenen Aspekte eines Spiels – von der Grafik über die Physik bis hin zur Benutzerinteraktion – zu handhaben.

Herausforderungen bei der Spieleentwicklung:

  1. Vielzahl von Dateien und Klassen:
    • Ein Spielprojekt kann leicht hunderte oder sogar tausende von Dateien umfassen. Diese Dateien sind in einer hierarchischen Struktur organisiert, die es schwierig macht, den Überblick zu behalten.
  2. Komplexe Abhängigkeiten:
    • Klassen und Dateien sind oft stark voneinander abhängig. Änderungen in einer Datei können Auswirkungen auf mehrere andere Dateien haben. Es ist daher entscheidend, dass man den gesamten Code im Blick hat, um keine ungewollten Fehler zu verursachen.
  3. Fehlersuche und Optimierung:
    • Das Auffinden von Fehlern und die Optimierung des Codes erfordert ein tiefes Verständnis der gesamten Codebasis. Dies kann sehr zeitaufwendig und mühsam sein, insbesondere wenn man die Dateien manuell durchsuchen muss.

Wie ChatGPT helfen kann:

ChatGPT hat das Potenzial, diese Herausforderungen zu meistern, indem es Entwicklern hilft, ihren Code besser zu verstehen und zu verwalten. Es kann Codevorschläge machen, bei der Fehlersuche unterstützen und Optimierungen vorschlagen. Allerdings steht man vor dem Problem, dass ChatGPT am effektivsten ist, wenn es Zugang zum gesamten Code hat. Das manuelle Kopieren jeder Datei in ChatGPT ist jedoch äußerst umständlich und ineffizient.

Um dieses Problem zu lösen, habe ich eine Methode entwickelt, die es mir ermöglicht, ChatGPT den gesamten Code meines Projekts zur Verfügung zu stellen, ohne jede Datei einzeln kopieren zu müssen. Im nächsten Kapitel werde ich erklären, wie ich mithilfe eines einfachen Python-Scripts alle .cs-Dateien meines Projekts in eine einzige Textdatei kombiniere und so ChatGPT optimal nutzen kann.

Die Lösung: ChatGPT zur Unterstützung beim Programmieren

Die Integration von ChatGPT in meinen Entwicklungsprozess hat sich als äußerst wertvoll erwiesen. Es bietet nicht nur schnelle Antworten auf spezifische Programmierfragen, sondern kann auch größere Zusammenhänge im Code verstehen und wertvolle Verbesserungsvorschläge machen. Der Schlüssel zur effektiven Nutzung von ChatGPT liegt darin, ihm Zugriff auf den gesamten Code zu ermöglichen, was, wie bereits erwähnt, eine Herausforderung darstellt.

Um diese Herausforderung zu meistern, habe ich ein Python-Script entwickelt, das alle .cs-Dateien meines Projekts in eine einzige Textdatei zusammenfasst. Auf diese Weise kann ich diese Datei einfach in ChatGPT hochladen und ihm so den gesamten Überblick über meinen Code geben. Hier ist eine detaillierte Erklärung, wie dieses Script funktioniert.

Das Python Script: Alle .cs Dateien zusammenführen

Das Script durchsucht einen angegebenen Ordner und seine Unterordner nach allen .cs-Dateien, liest deren Inhalte und schreibt sie in eine einzige Textdatei. Dies ermöglicht es, den gesamten Code des Projekts in einer Datei zusammenzufassen und diese dann in ChatGPT hochzuladen.

Schritt-für-Schritt Erklärung des Scripts:

  1. Pfad zum Scripts-Ordner festlegen:
    • Der Pfad zum Ordner, der alle .cs-Dateien enthält, wird definiert. In meinem Fall ist es: D:\Develop\Unity\Astrosphere\Assets\Scripts
  2. Ziel-Textdatei definieren:
    • Der Pfad zur Textdatei, in die alle Inhalte geschrieben werden sollen, wird festgelegt. Diese Datei wird auf meinem Desktop gespeichert.
  3. Funktion zur Datei-Inhaltslesung (read_file_content):
    • Diese Funktion liest den Inhalt einer Datei. Sie versucht zuerst, die Datei mit windows-1252 zu lesen und wechselt zu UTF-8, falls dies fehlschlägt, um sicherzustellen, dass alle Dateien korrekt gelesen werden.
  4. Hauptfunktion zum Kombinieren der Dateien (combine_cs_files):
    • Diese Funktion durchläuft alle Dateien im angegebenen Ordner und seinen Unterordnern, sucht nach .cs-Dateien, liest deren Inhalt und schreibt ihn in die Ziel-Textdatei. Jede Datei wird mit einem Kommentar, der den Dateinamen und den Pfad angibt, in die Textdatei eingefügt.

Hier ist der vollständige Code des Scripts:

import os

# Pfad zum Scripts-Ordner
scripts_folder = r"D:\Develop\Unity\Astrosphere\Assets\Scripts"

# Ziel-Textdatei
output_file_path = r"C:\Users\mario\Desktop\combined_cs_files.txt"

def read_file_content(file_path):
    try:
        with open(file_path, 'r', encoding="windows-1252") as file:
            return file.read()
    except UnicodeDecodeError:
        # Versucht, die Datei mit UTF-8 zu lesen, falls windows-1252 fehlschlägt
        with open(file_path, 'r', encoding="utf-8", errors="replace") as file:
            return file.read()

def combine_cs_files(folder_path, output_file_path):
    with open(output_file_path, 'w', encoding="utf-8") as output_file:
        for root, dirs, files in os.walk(folder_path):
            for file in files:
                if file.endswith(".cs"):
                    file_path = os.path.join(root, file)
                    content = read_file_content(file_path)
                    output_file.write(f"\n\n// Datei: {file_path}\n\n")
                    output_file.write(content)

# Aufrufen der Funktion
combine_cs_files(scripts_folder, output_file_path)

Durch die Verwendung dieses Scripts kann ich alle meine .cs-Dateien in einer einzigen Textdatei bündeln und diese Datei in ChatGPT hochladen. Das spart nicht nur Zeit, sondern stellt auch sicher, dass ChatGPT den gesamten Code überblicken kann und somit effektiver bei der Programmierung helfen kann.

Um dieses Script ausführen zu können, benötigst du natürlich Python auf deinem Computer. Python ist eine weit verbreitete Programmiersprache, die leicht zu installieren und zu verwenden ist. Falls du Python noch nicht installiert hast, kannst du es von der offiziellen Python-Website herunterladen und installieren.

Einfache Ausführung mit einer .bat Datei

Um das Python-Script noch einfacher und schneller ausführen zu können, habe ich eine Batch-Datei .bat erstellt. Diese Batch-Datei ermöglicht es, das Python-Script durch einen einfachen Doppelklick auszuführen, ohne dass man die Kommandozeile öffnen und Befehle manuell eingeben muss. Dies ist besonders nützlich, wenn man das Script regelmäßig verwenden möchte.

Erstellen der .bat Datei

Die Batch-Datei enthält nur wenige Zeilen Code, die das Python-Script aufrufen und sicherstellen, dass das Konsolenfenster geöffnet bleibt, bis man eine Taste drückt. Hier ist der Inhalt der Batch-Datei:

@echo off
python C:\Users\mario\Desktop\Scripts_to_txt.py
pause

Erklärung der Batch-Datei:

  1. @echo off
    • Dieser Befehl verhindert, dass die Befehle in der Batch-Datei im Konsolenfenster angezeigt werden. Dies sorgt für eine sauberere Ausgabe.
  2. python C:\Users\mario\Desktop\Scripts_to_txt.py
    • Dieser Befehl führt das Python-Script aus. Du musst sicherstellen, dass der Pfad zur Python-Datei korrekt ist. In diesem Beispiel liegt das Script auf meinem Desktop.
  3. pause
    • Dieser Befehl hält das Konsolenfenster offen, bis man eine Taste drückt. Dies ist nützlich, um die Ausgaben des Scripts zu sehen und sicherzustellen, dass alles korrekt ausgeführt wurde.

Verwendung der .bat Datei

  1. Erstellen der Batch-Datei:
    • Öffne einen Texteditor wie Notepad.
    • Kopiere den oben stehenden Code in das Textdokument.
    • Speichere die Datei mit der Erweiterung .bat, z.B. run_scripts_to_txt.bat.
  2. Ausführen der Batch-Datei:
    • Doppelklicke auf die erstellte .bat-Datei. Das Konsolenfenster öffnet sich und das Python-Script wird ausgeführt.
    • Nach der Ausführung bleibt das Konsolenfenster geöffnet, sodass du die Ausgabe überprüfen kannst. Drücke eine beliebige Taste, um das Fenster zu schließen.

Vorteile der Batch-Datei

  • Zeitsparend: Ein Doppelklick genügt, um das Script auszuführen, was den Prozess erheblich beschleunigt.
  • Benutzerfreundlich: Keine Notwendigkeit, die Kommandozeile manuell zu öffnen und Befehle einzugeben.
  • Wiederverwendbar: Einmal eingerichtet, kann die Batch-Datei immer wieder verwendet werden.

Durch die Kombination von Python und einer Batch-Datei habe ich eine effiziente Methode geschaffen, um meinen gesamten Code in eine einzige Textdatei zu bündeln und diese Datei dann in ChatGPT hochzuladen. Dies verbessert meinen Workflow erheblich und ermöglicht es mir, die Unterstützung von ChatGPT optimal zu nutzen.

Fazit

Die Integration von ChatGPT in meinen Entwicklungsprozess hat mein Arbeiten als Spieleentwickler deutlich effizienter und angenehmer gemacht. Durch die Nutzung eines einfachen Python-Scripts und einer Batch-Datei kann ich ChatGPT den gesamten Code meines Projekts zur Verfügung stellen, ohne jedes Mal alle Dateien manuell kopieren zu müssen. Dies spart nicht nur Zeit, sondern ermöglicht es mir auch, den gesamten Überblick über meinen Code zu behalten und effektiver an meinem Spiel zu arbeiten.

Persönliche Erfahrungen und Verbesserungen im Workflow:

Seit der Implementierung dieser Lösung hat sich mein Workflow erheblich verbessert. Die Möglichkeit, ChatGPT den gesamten Code meines Projekts zur Verfügung zu stellen, hat mir geholfen, komplexe Probleme schneller zu lösen und meine Programmierfähigkeiten weiter zu verbessern. Die Automatisierung hat mir zudem viel manuelle Arbeit erspart und meinen Entwicklungsprozess insgesamt effizienter gestaltet.

Ermutigung an andere Entwickler:

Ich möchte andere Entwickler ermutigen, ähnliche Lösungen in ihren Workflow zu integrieren und die Vorteile von ChatGPT voll auszuschöpfen. Ob man nun ein Solo-Entwickler ist oder in einem Team arbeitet, die Automatisierung und Nutzung von KI-Tools kann einen großen Unterschied machen.

Bonus: Tipps und Tricks

Zusätzlich zu den oben beschriebenen Schritten möchte ich einige weitere Tipps und Tricks teilen, wie man ChatGPT effektiv in den Entwicklungsprozess einbindet:

  • Kleine Code-Snippets nutzen:
    • Wenn das Projekt sehr groß ist, kann es hilfreich sein, kleinere Code-Snippets zu ChatGPT hochzuladen und gezielte Fragen zu stellen.
  • Kommentieren des Codes:
    • Durch das Hinzufügen von Kommentaren in den Code kann ChatGPT den Kontext besser verstehen und präzisere Vorschläge machen.
  • Regelmäßige Updates:
    • Aktualisiere die Textdatei regelmäßig, um sicherzustellen, dass ChatGPT immer mit dem neuesten Code arbeitet. Ich mache das einfach jedes mal wenn ich beginne zu arbeiten.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

20 − neunzehn =