So entsteht ein Indie-Game: Making-of Cold Crash
Fangen wir mit einem Geständnis an: Von wegen, ein Indie-Game ist einfach zu entwickeln…
Wir, das sind Joachim Mertens, der Gründer und Programmierer von Tiny Tap Gems, und ich, Tim Müßle, freier Journalist und der Autor der Story von Cold Crash.
Und jetzt das Geständnis: Am Anfang, Ende 2015, machten wir den selben Fehler wie viele motivierte Menschen, die eine App oder ein Indie-Game bauen wollen oder ein vergleichbares Projekt anpacken: Wir dachten, wir würden schnell fertig. Wir dachten, das Projekt ließe sich in einem halben Jahr realisieren. Parallel zu unseren Vollzeitjobs.
Pustekuchen. Ich schreibe diesen Text am Freitag, 27. Oktober 2017. Cold Crash ist fertig, aber noch nicht im App Store publiziert, da uns noch Teile der begleitenden Marketing- und PR-Aktionen fehlen. Wie dieser Text.
Textception.
Wie programmiere ich ein Indie-Game?
Alles fing an mit der Idee: Eine interaktive Story, ähnlich den Pen-and-Paper-Rollenspielen. Der Leser / Spieler hat Einfluss auf den Ausgang der Geschichte. Je nachdem, wie der Spieler sich entscheidet, kann er eins von acht verschiedenen Enden erreichen – ob Tragödie oder Happy End, liegt beim Leser selbst. Ein kleines, überschaubares Projekt, ein Indie-Game halt.
„Natürlich denkt man als Programmierer sofort in technischen Dimensionen“, sagt Joachim Mertens, „und ich habe sofort daran gedacht, dass der Text austauschbar sein sollte und in mehreren Sprachen funktionieren können muss. Alles Anforderungen an den Programmierer.“
Joachim und ich haben uns nur selten persönlich getroffen, um Cold Crash zu realisieren. Wir kennen uns zwar schon seit der Schulzeit, wohnen inzwischen aber in verschiedenen Städten. Und das Internet macht so vieles leichter, auch die berufsübergreifende Zusammenarbeit.
Diese Punkte waren bei der Entwicklung von Cold Crash wichtig:
- Eine eigene, kleine Skriptsprache, mit der der Autor festlegt, wann sich z.B. welche Frage an den Spieler richtet (und mit welchen Antwortmöglichkeiten).
- Der Autor kann über die Skriptsprache festlegen, wann der Bildschirm „wackelt“, wann es Übertragungsstörungen gibt und wann der Spieler ein Zeitlimit für seine Entscheidung hat.
- Cold Crash hat knapp 300 Positionen – also Text-Abschnitte, die der Spieler anspringen kann – oder auch nicht. Das ist ein Entscheidungsbaum, den ich nicht im Gedächtnis halten kann, also musste ein Tool her, mit dem ich parallel den Baum festgehalten habe: Mindomo.
Cold Crash – Entscheidungsbaum
Cold Crash – Entscheidungsbaum (Detail)
Uns wurde schnell klar, dass der Cold Crash-Spieler ein „Inventory“ braucht – also im Spiel Gegenstände sammeln oder eben auch übersehen kann. Diese Liste von Gegenständen, das „Inventory“, speichert Cold Crash abhängig von jeder Position: Springt der Spieler in der Story zurück, ändern sich je nachdem auch die Gegenstände, die der Spieler bei sich hat.
Joachim hat für viele Details im Programm selbst auf die Seite Stack Overflow zurückgegriffen: „Cold Crash ist vom Aufbau her eher eine App als ein Spiel, da konnte ich viele Details bei Stack Overflow bekommen. Auf der Seite tauschen sich Programmierer aus, ich kann gar nicht genug betonen, wie wertvoll Stack Overflow ist.“
Die Grafik von Cold Crash
Der Designer und Zeichner Grobi hat die Grafiken für Cold Crash gemacht. Tiny Tap Gems hat ihn damit beauftragt. Die Zusammenarbeit mit Grafikern ist für Projektentwickler immer aufregend, auch in einem Indie-Game, weil es ein natürliches Spannungsverhältnis ist: Der Grafiker ist ja selbst Fachmann und hat dementsprechendes Fachwissen, soll also seine Expertise mit einbringen. Auf der anderen Seite darf er nicht „am Projekt vorbei“ arbeiten, er muss schon die Vorgaben des Gamedesigners treffen. Will der Gamedesigner etwa einen bestimmten Eindruck beim Spieler vermitteln muss die Vermittlung über die Grafiken auch funktionieren.
Glücklicherweise haben wir mit Grobi einen sehr kompetenten, talentierten und offenen Grafikdesigner bekommen, mit dem die Zusammenarbeit einfach sehr leicht und vorbildlich war.
Grafiker für ein Indie-Game gesucht…
Natürlich haben wir uns mehrere Angebote kommen lassen von verschiedenen Freelancern, die als Grafiker arbeiten. Da waren einige gute Sachen dabei und einige nicht so gute. Die Arbeiten von Grobi haben uns einfach überzeugt.
Wir hatten die Idee, eine Szene zu zeigen: Eis und Schnee, Gletscher, Landschaft, ein brennendes Flugzeugwrack und eine Überlebende, die in der dünnen Uniform einer Stewardess friert. Grobi hatte dann eine bessere Idee: Die Überlebende, Anna, als Porträt zu zeigen – damit der Spieler an ihren Emotionen die Lage erkennen konnte. Das war eine sehr gut Idee, wie sich herausgestellt hat, auch für das App-Icon. Und es war genau das, was wir wollten, der Grafiker sollte sich selbst und sein eigenes Fachwissen mit einbringen.
„Japanischer Comic für Erwachsene“?
Die ersten Entwürfe von Grobi sahen sehr gut aus, die nächsten Entwicklungsstufen waren eher nicht unser Ding. Daher baten wir ihn, das Ganze in eine etwas andere Richtung zu entwickeln. Als das Titelbild fertig war, bauten wir es ein – und kassierten prompt Kritik von den Testern, denen das Titelbild in die falsche Richtung ging. Die Tester waren der Meinung, das Bild gehe zu sehr in die Richtung „japanischer Comic für Erwachsene“ und sei generell zu düster.
Es war eine Herausforderung, das an Grobi zu kommunizieren. Nicht, weil der Künstler für Kritik nicht empfänglich gewesen wäre, sondern weil wir die Nachricht so einfühlsam wie möglich verpacken wollten. Hinterher stellte sich heraus: Grobi ist so pflegeleicht, der hätte uns auch eine direktere Ansprache verziehen.
Was wir daraus gelernt haben: Kritisiere das Verhalten, und nicht die Person, wenn es was zu kritisieren gibt. Bleib‘ dabei so sachlich wie möglich. Und melde dich so früh wie möglich, habe keine Hemmungen, deine eigene Sichtweise zu kommunizieren. Es war unser Projekt, unser Indie-Game, also sollte die Grafik auch uns zufriedenstellen.
Die Musik von Cold Crash
Uns war schnell klar, dass wir keine Hintergrundmusik und auch keine Geräusche wollten. Vom Inhalt her ähnelt Cold Crash ja eher einem Buch, oder einer Messenger-App, und die haben ja auch selten Hintergrundmusiken.
Allerdings brauchten wir ein Musikstück für den Trailer. Und da kamen mehrere Anforderungen zusammen:
- Bezahlbar – Cold Crash war von Anfang an ein Liebhaber-Projekt, wir erwarten nicht, dass es die Produktionskosten inklusive Honorar für den Programmierer und den Autor jemals wieder einspielt. Was weniger an der Qualität der App und der Story liegt, sondern eher an unseren bescheidenen Marketing-Möglichkeiten.
- Aktivierend – die Musik sollte dem Hörer suggerieren, dass er die Story in der Hand hat.
- Dramatisch – ein Eindruck von Dringlichkeit sollte entstehen, denn der Sturm kommt näher, und Anna hat nicht mehr viel Zeit, bevor sie erfriert.
- Nicht generisch – der Clip sollte einen gewissen eigenen Charakter haben und nicht austauschbar klingen, wie viele Hollywood-Soundtrack-Stücke heutzutage.
- Wiedererkennbar – wir wollten, dass das Stück einen wiedererkennbaren Charakter hat. Kein Disco-Ohrwurm, aber dennoch etwas, an das man sich erinnert.
Es gibt viele Anbieter, bei denen man Musikclips für Apps oder Games kaufen kann, wir sind dann bei Audiojungle gelandet – und haben etwa vier Stunden lang nach dem Track gesucht, den wir dann letztendlich genommen haben. Es dauert halt, ein so riesengroßes Archiv zu durchsuchen, wenn man so genaue Vorstellungen hat.
Die Tester von Cold Crash: Die geheime Zutat fürs Indie-Game!
Um unser Budget nicht noch weiter zu belasten, haben wir unter Freunden und Bekannten nach Testern gesucht und glücklicherweise auch einige gefunden. Hey, danke an alle, die mitgemacht haben! Ihr wart die geheime Zutat, die es uns ermöglicht hat, das Ding erst so richtig auf Hochglanz zu polieren!
Natürlich sind dabei einige unangenehme Erkenntnisse auf uns niedergeprasselt: Der Text war an vielen Stellen öde. Die Bedienung war zu kompliziert. Das Design hat genervt. Und, absoluter Motivationskiller: Die App stürzt ab – und der Programmierer hat nicht den blassesten Schimmer, woran es liegen könnte. Alle Tester haben uns geholfen, die Bugs und Fehler im Gamedesign und der App selber zu entdecken.
Testen, testen, testen…
Testen ist eine der wichtigsten Projektphasen überhaupt, und wir empfehlen allen, die ein ähnliches Vorhaben planen, die Tester so früh wie möglich einzubinden. Eine stabile Grundfunktionalität war uns wichtiger als eine Fülle von hochspezialisierten Features, die vor allem die Entwickler zufrieden stellt und mit denen der Spieler vielleicht gar nicht so viel anfangen kann.
Der Text von Cold Crash
Als Autor muss ich sagen: Ich dachte, der Text würde nur so lang werden wie eine Kurzgeschichte.
Junge, lag ich daneben…
Das liegt an der Idee, dass sich die Geschichte in verschiedene Richtungen entwickeln kann, je nach Antwort und Auswahl des Spielers. Erste Entscheidung: zwei Verzweigungen. Zweite Entscheidung: Vier Verzweigungen. Dritte Entscheidung: Acht… und immer so weiter.
Natürlich muss man da als Autor auch den einen oder anderen Zweig einfach mal abschneiden und alles wieder zusammenführen. Ich muss gestehen, dass ich das nicht konsequent genug gemacht habe. Und so hat es über ein Jahr gedauert, den Text von Cold Crash in einer ersten Fassung fertig zu schreiben (parallel zum Vollzeitjob). Dabei hatte ich eigentlich nur drei Monate eingeplant – höchstens.
Inklusive mehrerer Revisionen, Korrektur lesen, massiver Kürzungen und einer Konzeptänderung mitten im Text hat es etwa eineinhalb Jahre gedauert, den Text zu schreiben. Mir persönlich ist das viel zu lang, wenn ich so ein Projekt nochmal angehe, muss das schneller gehen. Andere Autoren schaffen auch mehr Seiten pro Tag, das sollte sich noch weiter professionalisieren lassen.
Hier lest Ihr noch mehr über die Entstehung des Textes…
Der Code fürs Indie-Game Cold Crash
Joachim Mertens hat Cold Crash mit der Entwicklungsumgebung „XCode“ von Apple geschrieben. Das ist ein sogenanntes IDE, ein Integrated Development Environment. Die Umgebung ist gratis und laut Joachim ein „extrem mächtiges Tool“ um damit Apps und Games für iOS, tvOS und MacOS zu schreiben. XCode vereint viele einzelne Werkzeuge, die ein Programmierer braucht: Compiler, Texteditor, GUI-Editor, Bibliotheken-Verwaltung und vieles mehr.
Cold Crash – Das Skript
Xcode
Cold Crash nutzt rund 1% des CPU
Das versteckte Entwicklermenü von Cold Crash. „Mountain of Madness“ war der Arbeitstitel der Story.
Mit XCode hat Apple auf eine eigene Weiterentwicklung der Programmiersprache „C“ gesetzt. „C“ galt als eine der ersten Sprachen, die sich übergreifend durchgesetzt hat und die vor allem auf fast allen Computersystemen zur Verfügung stand. C wurde maßgeblich 1969 bis 1973 von Dennis Ritchie entwickelt, ein US-amerikanischer Informatiker, der zusammen mit Ken Thompson die ersten Versionen von Unix entwickelt hatte – so weit reichen die Wurzeln von XCode schon zurück!
Entwicklungsumgebung für das Programmieren eines Indie-Game
XCode arbeitet mit „Objective C“, die „alte Haus-Programmiersprache von Apple“. Mertens: „Inzwischen gilt Objective C als überholt und Apple setzt auf SWIFT, die 2014 vorgestellt wurde.“ Warum bleibt Tiny Tap Gems bei Objective C und steigt nicht auf die neue Sprache um? „SWIFT habe ich übersprungen“, sagt der leidenschaftliche Entwickler von Indie-Games, „und ich bin gleich von Objective C auf Unity umgestiegen. Das ist wieder eine andere Entwicklungsumgebung, die mit ,C Sharp‘ arbeitet, eine andere Variante von C.“
Der Vorteil von Unity: Damit kann ein Entwickler Software für viele verschiedene Plattformen ausgeben, also etwa iOS, Android, Microsofts Xbox, Nintendo oder die Playstation. Der Nachteil: Die Programme sind sehr groß, brauchen viel Speicherplatz. Das ist der Hauptgrund, warum Cold Crash und auch andere Tiny Tap Gems-Games und -Apps mit XCode entwickelt wurden. „Unity ist eher was für Entwickler, die eine 3D-Umgebung für ihr Spiel bauen wollen“, sag Mertens, „als wir mit Cold Crash angefangen haben, waren Unity-Apps noch sehr groß, inzwischen hat sich das etwas relativiert. Ich wollte eine kleine, schlanke App, denn die werden eher heruntergeladen.“