Zuletzt aktualisiert: Januar 2020, Lesezeit: 10 Min.

Optimale Vorgehensweisen für das Programmieren stabiler Spiele mit weniger Fehlern

What you will get from this page: Tips on maintaining a stable and flexible build to save yourself time and money. Get pointers on using version control, utilizing your changelists, clean cheat functionality, bug tracking and more

After years of shipping large titles with even larger teams, typical AAA studios know how to keep their productions on track and maintain a clean and stable build. Sascha Gundlach, from MetalPop Games, highlights how independent game developers can adapt the AAA approach to their own production. 

With a clean build, it’s easy to change or add things, as well as maintain and debug features. Overall, you’ll be able to develop your game faster and more efficiently.

Die Vorteile eines ordentlichen Builds

Ein ordentlicher und stabiler Spiel-Build hat langfristige Vorteile:

  • Sie veröffentlichen stabilere Spiele mit weniger Fehlern.
  • Sie sparen Produktionszeit durch weniger Fehler und eine übersichtliche Codebasis.
  • Sie reduzieren die Gefahr, den Build zu „zerstören“.
  • Sie erstellen Demoversionen und spezielle Builds leichter.

Nicht alles, was für einen AAA-Build gut ist, eignet sich für Indie-Teams. Es gibt jedoch eine Menge kostenloser oder preiswerter Möglichkeiten, Ihren Build ordentlich und stabil zu halten, die von Teams jeder Größe implementiert werden können.

Selbst Soloprogrammierern helfen diese Tipps dabei, einen besseren, robusteren Spiel-Build zu gestalten. 

Nutzen Sie Versionskontrolle

Selbst heute, in Zeiten der kostenlosen Versionskontrollsysteme (VCS), gibt es noch Teams, die ihre Zusammenarbeit über freigegebene Ordner oder Dropbox gestalten. Entwickeln ohne Versionskontrolle ist ein bisschen wie Fahren ohne Sicherheitsgurt. Das Anlegen eines Sicherheitsgurts ist vielleicht nicht immer bequem und schränkt Sie ein wenig ein, aber wenn Sie mit voller Geschwindigkeit gegen einen Baum krachen, rettet er Ihr Leben.

Sie können es sich nicht leisten, getane Arbeit zu verlieren, egal wie groß Ihr Team ist. Ein gehacktes Dropbox-Konto oder eine kaputte Festplatte sollten nicht dazu führen, dass Sie Tage oder Wochen an Arbeit verlieren.

Es gibt viele kostenlose Lösungen. Perforce, Git und SVN bieten alle kostenfreie Versionen an. Mit Unity Teams, das direkt in Unity integriert sind, wird es noch einfacher.

Ein Perforce-Ordnerverlauf mit allen Änderungen

Nutzen Sie Ihre Änderungslisten

Neben der Sicherheit bietet ein VCS als weiteren Vorteil Änderungslisten, mit denen Sie den Überblick über alle vorgenommenen Änderungen behalten. Das obige Bild zeigt einen Perforce-Ordnerverlauf mit allen Änderungen.

Die meisten Systeme zwingen Sie zwar nicht dazu, eine Beschreibung für vorgenommene Änderungen einzugeben, es empfiehlt sich jedoch, Änderungen klar zu beschreiben.

Außerdem wird das Erstellen von Patchhinweisen und ähnlichen Dokumenten einfach, wenn Sie Präfixe für Ihre Änderungen verwenden, z. B.: 

  • !B: Eine Fehlerbehebung.
  • !V: Eine visuelle Änderung oder Verbesserung.
  • !G: Eine Änderung des Gameplays.
  • !X: Eine Änderung, die in den Patchhinweisen ignoriert werden sollte.

Wenn Sie Änderungen im VCS eingeben und diese mit Präfixen beschreiben, können Sie später ein Skript über die Einträge laufen lassen und so schöne, saubere Patchhinweise zusammenstellen.
Eine ordentliche Eingabe an das VCS würde so aussehen:

„!V Explosionspartikeleffekt vergrößert“

„!B Absturz beim Aufheben einer Waffe behoben“

„!G Gesundheitszugewinn durch Med-Kits erhöht“

Wenn Sie alle Eingaben sauber und gut kommentiert halten, können Sie Patchhinweise jederzeit ganz einfach zusammenstellen. Das ist wesentlich effizienter, als Ihre letzten Änderungen manuell nach den Punkten zu durchsuchen, die in Ihren Patchhinweisen aufgeführt werden sollten.

UI-Game-Code mit klar markierten Hacks und „To-Do“-Code

Halten Sie sich an die Hygieneregeln

Jeder in Ihrem Team sollte mit den Grundlagen einer guten „Build-Hygiene“ vertraut sein. Hier sind die fünf besten Methoden für einen sauberen Build.

  1. Kein „Build-breaking Code“
    Checken Sie nichts ein, von dem Sie wissen, dass es nicht funktioniert. Wenn Sie eine unfertige Funktion einchecken müssen, deaktivieren Sie sie entweder oder archivieren Sie Ihre Änderungen, damit keine Fehler auftreten. Der Rest des Teams sollte nicht durch einen fehlerhaften Build behindert werden, weil Sie nicht funktionierenden Code eingecheckt haben.
     
  2. Keine hartcodierten Tastaturkürzel
    Es ist praktisch, benutzerdefinierte Tastaturkürzel für bestimmte Cheat- oder Debugging-Funktionen einzubauen. „Mach einfach die F12-Taste zur Geld-Cheat-Taste, da drückt sowieso niemand drauf, stimmt's?“
    Ein solches hardcodiertes Tastaturkürzel ist jedoch gefährlich, da es leicht vergessen wird. Es kann passieren, dass Sie das fertige Spiel so veröffentlichen oder Ihre Testspieler es unbeabsichtigt aktivieren und Ihre Fehlerberichte damit füllen.
     
  3. Markieren Sie schlechten und fehlenden Code
    Manchmal geht es nicht ohne Hacks. Egal wie sehr Sie es vermeiden möchten, irgendwann werden Sie vorübergehende Hacks in Ihrem Code haben. Wenn Sie einen Hack oder eine Problemumgehung hinzufügen, müssen Sie das im Code mit leicht zu findenden Schlüsselwörtern markieren. Markieren Sie einen Hack mit //HACK oder fehlenden Code mit //TODO. Auf diese Weise können Sie später leicht den gesamten Code nach diesen Tags durchsuchen und sie finden und ersetzen.
     
  4. Protokollieren Sie Spam
    Das Protokollieren in Ihrem Code ist nützlich und kann helfen, Probleme aufzuspüren. Es ist jedoch wichtig, den Protokoll-Spam hin und wieder zu entfernen, damit wichtige Warnungen und Fehler nicht überlagert werden. Sofern Sie nicht aktiv an einer Funktion arbeiten, sollte Ihre Konsole so sauber und leer wie möglich sein, damit neue Meldungen sofort zu sehen sind.
     
  5. Dateinamen und Namenskonventionen
    Die Größe Ihres Builds wird irgendwann auf Hunderte oder möglicherweise Tausende von Dateien anwachsen. Daher ist es wichtig, eine saubere Namenskonvention einzuhalten.

Nehmen Sie sich beim Start eines neuen Projekts die Zeit, sinnvolle Namenskonventionen zu finden, und zwingen Sie sich dazu, diese einzuhalten. Sobald Sie Namen wie texturetestFinal01.png oder backup22.fbx in Ihrem Build haben, werden die Dinge schnell chaotisch.

Führen Sie Routineprüfungen durch und bereinigen Sie alle schlechten Dateinamen, die sich eingeschlichen haben.
Hier einige einfache Tipps:

  • Verwenden Sie aussagekräftige Namen
    AttackButtonBehavior.cs statt „atkBtn.cs“
  • Verwenden Sie Binnenmajuskel
    „notsocleanfilename.cs“ ist schlechter lesbar als MyCleanFilename.cs
  • Verwenden Sie zur besseren Übersichtlichkeit Unterstriche in Dateinamen.
    WoodenHouse_Blue, WoodenHouse_Green usw.
Das Cheat-Menü unseres derzeit entwickelten Spiels „Galactic Colonies“

Halten Sie die Cheat-Funktionen sauber

Sie müssen bei der Entwicklung Ihres Spiels ständig auf Debuggen und Cheats zurückgreifen. Vielleicht möchten Sie auf ein anderes Level springen, sich zusätzliches Geld geben, sich unverwundbar machen, zusätzliche Feinde hervorbringen usw.

Sie können diese Cheats bei Bedarf überall einfügen und nach Gebrauch wieder deaktivieren. Es ist aber sinnvoller, Cheat-Funktionen sauber zu aktivieren und zu deaktivieren.

Auch bei kleineren Projekten lohnt es sich, die zusätzliche Zeit in ein benutzerfreundliches Debug-/Cheat-Menü zu investieren. Etwas, das von Ihren Entwicklern einfach ein- und ausgeschaltet werden kann und Zugriff auf alle üblichen Cheat- und Debug-Optionen bietet.

So wird das Risiko minimiert, dass Cheats versehentlich mit dem fertigen Spiel ausgeliefert werden. Ein zentral organisierter „Cheat-Code“ sorgt außerdem dafür, dass alles funktioniert und einfach zu erweitern ist.

Ein weiterer Vorteil ist, dass die Cheats in der Entwicklung viel schneller gehen und Sie daher bei der täglichen Produktion Zeit sparen. Wenn sich auf Tastendruck ein schönes und komfortables Debug-Fenster öffnet, arbeitet es sich viel schneller als mit dem Hartcodieren von Werten in Ihren Skripten.

Für einfachere Fehlerfindung kann sogar ein Trello-Board verwendet werden.

Steuern und protokollieren Sie Fehler

Ihr Spiel wird Fehler haben. Jedes Spiel hat Fehler, und Ihres wird keine Ausnahme sein. Die Frage ist, wie Sie mit Fehlern umgehen.

Der Workflow für den effizienten Umgang mit Fehlern ist einfach: Ihre Qualitätssicherung findet einen Fehler und gibt ihn in das System zur Fehlernachverfolgung ein. Anschließend werden die Probleme Ihren Entwicklern zugewiesen, die sie beheben und als behoben markieren. Schließlich überprüft die Qualitätssicherung die Probleme und markiert den Fall als geschlossen. Ein einfacher dreistufiger Prozess, oder? 

Wie bitte? Sie haben keine Abteilung für Qualitätssicherung? Ihre Tester sind auch Ihre Entwickler?

Keine Sorge, Sie bekommen Ihre Fehler auch so ganz leicht in den Griff. 

Erstens: Protokollieren Sie alle Fehler. Das ist auch für Soloprogrammierer nicht schwer.

Wählen Sie eine Software zur Nachverfolgung von Fehlern aus der Vielzahl kostenloser und preiswerter Angebote aus, und richten Sie sie ein. Wenn Ihnen das übertrieben erscheint, verwenden Sie einfach Excel oder auch nur einen Notizblock auf Ihrem Schreibtisch. Das spielt keine Rolle. Wichtig ist, dass Sie einen zentralen Ort zum Sammeln und Protokollieren von Problemen haben. Sobald Sie ein System zur Nachverfolgung von Fehlern eingerichtet haben, kommt es nur noch auf Ihre Disziplin an. Ein Build voller Fehler verlangsamt die Produktionsgeschwindigkeit und kann sogar zu neuen Problemen führen.

Hier ein paar einfache Tipps, wie Sie die Fehler im Griff behalten:

Bug-Fix-Freitage

Bug-Fix-Freitage sind eine tolle Möglichkeit, Ihren Build fehlerfrei zu halten. Anstatt sich mit neuen Funktionen zu befassen, arbeiten Sie jeden Freitag nur an Punkten von der Fehlerliste. Auf diese Weise beginnen Sie die neue Woche stets mit einem fehlerfreien, stabilen Build.

Schieben Sie es nicht zu lange vor sich her

Wenn Sie sehen, dass die Fehler überhandnehmen, sollten Sie die Arbeit an neuen Funktionen einstellen und sich auf die Stabilisierung des Builds konzentrieren, bis Sie wieder auf Kurs sind. 

Gehen Sie an die Wurzel des Problems

Wenn viele Fehler immer wieder auftreten, untersuchen Sie die Grundursache. Ist es ein bestimmter Teil Ihrer Levelbuilding-Pipeline, der die Level immer wieder zerstört? Bricht das Parsen von Gameplay-Werten aus Ihren .xml-Dateien jeden zweiten Tag zusammen?

Wenn Sie ein System ermitteln, das ständig Probleme verursacht, lohnt sich vielleicht eine Neugestaltung, statt die verursachten Probleme immer wieder zu beheben.

 

Bei all diesen Best Practices und Tipps kommt es auf Disziplin an und darauf, den Zustand Ihres Builds ständig im Auge zu behalten. Sie können diese Vorschläge beliebig kombinieren und auf Ihre Indie-Produktion anwenden. Es lohnt sich immer, Zeit in einen sauberen und ordentlichen Build zu investieren.

Haben Ihnen diese Inhalte gefallen?

Wir verwenden Cookies, damit wir Ihnen die beste Erfahrung auf unserer Website bieten können. In unseren Cookie-Richtlinien erhalten Sie weitere Informationen.

Verstanden