Allgemeine Programmier - Werkzeuge bei der Entwicklung von Computerspielen

14.11.2016

Für die Entwicklung von Computerspielen ist eine ganze Reihe von Werkzeugen hilfreich. Praktischerweise existieren für viele Zwecke kostenlose und frei verfügbare Programme. Im folgenden werden beispielhaft einige frei verfügbare Tools für die Entwicklung auf einem Windows PC vorgestellt.

Je nach Spiel kann der Bedarf an Tools für die Entwicklung variieren (in diesem Artikel wird ein überschaubares, von Grund auf selber geschriebenes, Projekt angenommen). Zudem ist diese Auswahl an Werkzeugen natürlich zu einem gewissen Grad subjektiv - bei den hier vorgestellten handelt es sich um Programme, mit denen der Autor dieses Artikels gute Erfahrungen gemacht hat.

Um ein aufwändigeres Computerspiel mit vertretbarem Aufwand umzusetzen ist i.a. eine (3d-)Engine erforderlich. Allerdings sind Engines sind meist ziemlich komplexe Software, deren Interaktion mit Tools (wie etwa Versionsverwaltung) eine Sache für sich ist, die den Rahmen dieses Artikels sprengen würde. Aus diesem Grund wird hier ein ohne Engine (d.h. "von Grund auf") programmiertes Spiel angenommen.

Computerspiele können in unterschiedlichen Sprachen (z.B. C++, Java, C# etc.) programmiert werden (wobei je nach Sprache andere Werkzeuge zum Einsatz kommen können). Am bequemsten geht das mit einer integrierten Entwicklungsumgebung (auf Englisch integrated development environment, kurz IDE), die gleich mehrere Funktionen zusammenfasst (Texteditor, Compiler bzw. Interpreter, Linker, Debugger, Quelltextformatierer).
Als einfachstes Beispiel sei hier Processing genannt. Größere C++/C# Projekte lassen sich z.B. mit Visual Studio Express, Java Projekte z.B. mit Eclipse implementieren. Ohne IDE ist zumindest ein Compiler (z.B. MinGW für C++) sowie ein möglichst guter Text-Editor (z.B. Notepad++) erforderlich.

Ein Computerspiel-Programm besteht aus einer oder mehreren Dateien, die im Verlauf der Entwicklung immer wieder verändert werden. Wenn Änderungen rückgängig gemacht werden müssen, etwa weil plötzlich ein Fehler (Bug) auftritt, wäre eine "Zeitmaschine" hilfreich, mittels der sich vorherige Versionen des Projekts wiederherstellen lassen. Und arbeitet mehr als eine Person an dem Spiel, so sollte sichergestellt sein, dass Änderungen durch eine Person nicht die Arbeit von anderen überschreiben. Diese Funktionen erfüllt eine Versionsverwaltung, wie z.B. Subversion (kurz: SVN) oder GIT (unter Windows z.B. mit VisualSVN Server und TortioseSVN Client). Zusätzlich kann WinMerge (auch in TortoiseSVN integrierbar) hilfreich sein, um Unterschiede zwischen Text-Dateien automatisch anzuzeigen und zu bearbeiten.

Die meisten Computerspiele bestehen nicht nur aus Quellcode sondern enthalten auch Konfigurations- sowie Sound- und Bild-Dateien wie auch 3d-Modelle. Zur Bearbeitung von Texten kann der oben genannte Texteditor verwendet werden. Für Sounds eignet sich z.B. Audacity. Schnelle Ansicht von Bildern ohne lange auf das Programm warten zu müssen erlaubt z.B. IrfanView. Die Bearbeitung von Pixel-Bildern ist z.B. mittels Gimp möglich (für Vektor-Grafiken eignet sich etwa Inkscape). Ein sehr mächtiges Werkzeug zur 3d-Modellierung ist Blender. Einfache Bild-Formate wie NetPBM und 3d-Formate wie Obj lassen sich übrigens zur Not auch mit einem Texteditor bearbeiten - dieser Ansatz ist aber i.a. nicht zu empfehlen.

Um ein Video des Spiels (etwa für einen Trailer) zu erzeugen, kann z.B. VirtualDub für die Aufzeichnung (Screencast) sowie für eher einfache (im Sinne von nicht zu anspruchsvolle) Bearbeitungsschritte verwendet werden. Zum Abspielen eignet sich etwa der VLC media player.

Dokumentation lässt sich etwa mit OpenOffice oder LibreOffice erstellen und als pdf exportieren. Für Fortgeschrittene sei LaTeX erwähnt: unter Windows z.B. MikTeX/TexWorks (enthält auch pdf-Betrachter), optional mit TeXnicCenter als Editor. Zur Erzeugung von Diagrammen kann der visuelle Editor yEd verwendet werden. Alternativ kann Graphviz Graphen automatisch aus Text-Dateien in Abbildungen umsetzen (besonders geeignet, wenn die Graphen automatisch erzeugt werden).

Die Dateien des fertigen Projekts können z.B. mit 7zip zusammengepackt und komprimiert (und falls es mal nötig sein sollte: etwa mit WinSCP auf einen ftp-Server (Konfiguration z.B. über login mit Putty) kopiert) werden.

Last but not least sei noch das Thema Verschlüsselung erwähnt:
Ist man, wie in der Computerspiele-Branche oft üblich, durch einen Geheimhaltungsvertrag (non-disclosure agreement, NDA) verpflichtet, so empfiehlt es sich Dateien auf Laptops in z.B. mit VeraCrypt verschlüsselten Containern zu speichern, damit bei Verlust des Rechners keine relevanten Informationen öffentlich werden.