Steamclash
Post Mortem
Steamclash ist unser dritter und letzter Prototyp der im Verlaufe des Kurses entstanden ist. Der zweite Prototyp bestand aus vielen kleinen Versuchen, die sich leider nicht richtig entwickelt haben. Aber das war Sinn und Zweck der ganzen Sache, mal Fehler im Verlaufe eines Kursprojektes zu erlauben.
Einer der Prototypen sollte ja weiter verfolgt werden, das haben wir mit Steamclash gemacht. Das ging so weit, das wir das Spiel App Store reif gebracht haben. In den nächsten Tagen sollte es erhältlich sein.
Die Website http://steamclash.com erklärt das Spiel in Videos und Bildern besser als ich es hier mit Worten machen kann.
Gameplay
Anders als bei Protoyp1 hat sich im laufe der Entwicklung nichts an der Grundidee geändert. Einzig an den Details mussten wir feilen.
Mit Grundidee mein ich, das es ein zwei Spielerspiel mit zwei iPhones ist, sich das Geschehen auf beide iPhones abspielt, jeder einen Hafen hat und mit Schiffen den anderen Hafen zerstören muss. Schiffstypen, Upgrades, alle Werte usw. waren dann die Details. Immer noch ne ganze Menge.
Grafik
Die Richtung hatte Malte relativ früh raus, wie das aber so ist, im laufe der Zeit entwickelt sich auch das weiter. Die Schiffe mussten mehrmals neu gezeichnet werden, da wir einmal von der Retina Auflösung weg mussten und dann die Anzahl der Bahnen verringert haben, wodurch sich die Grösse der Schiffe nochmals geändert hat.
Das Interface hat sich auch ständig verändert, bis wir dann die momentane und auch beste Lösung erreicht haben. Auch der Part geht auf Maltes Kappe, hat er sehr gut gemacht.
Technik
Beim ersten Prototypen hatte ich es ja schon angesprochen, das wir in die ein oder anderen technischen Schwierigkeiten gekommen sind, da wir 0 Plan von der Spiele-Entwicklung hatten. Das hat sich zwar mit dem verbessert, dennoch haben wir uns dazu entschieden impact.js zu kaufen und zu verwenden. Vor allem die Option den iOS Shim zu nutzten kam uns recht. Es hat sich gelohnt die 99$ zu investieren. Auch wenn im fertigen Spiel recht wenig von impact über blieb (kein Leveleditor, keine Kollision etc) hat es uns immens beim entwickeln geholfen.
Da das Endprodukt ja ein iOS App ist, mussten wir uns aus den warmen gefieden des Browser bewegen und mal ne „richtige“ Programmiersprache benutzten. Ich hab ja schon ein wenig Erfahrung mit Objective-C gesammelt, daher gab es da weniger Probleme. Impact hat da einiges vorbereitet. Interessant war mal mit zu bekommen, wie viel cooler es ist, im Browser zu entwickeln. Die Kontrolle die man während der Laufzeit über den Code hat ist einfach mega praktisch.
Ich mag Objective-C übrigens immer noch nicht. Der Syntax ist einfach hässlich. Brrr…
Netzwerk
Auf zwei Geräten das selbe Kampfgeschehen zu zeigen hat sich als schwerer herausgestellt als gedacht. Über den Daumen geschätzt würde ich sagen das die Hälfte meiner Entwicklungszeit dafür drauf ging. Und es ist leider immer noch nicht perfekt. Aber es funktioniert ausreichend, das Spiel leidet darunter keineswegs. Eine besondere Herausforderung war, wie ich zumindest dachte, den Netzwerkcode so zu gestalten, dass es im Browser und auf iOS Geräten funktioniert. Angefangen haben wir im Browser mit node.js und socket.io. Damit is zu so wenig Problemen wie möglich kommt, liegt im Serverpart keinerlei Logik, es werden blos Nachrichten weiter gereicht. Eines der Geräte übernimmt die Funktion des Servers, beim verbinden beider Geräte wird dieser per Zufall bestimmt.
Nun funktionierte das Netzwerk im Browser, Zeit das Ganze unter iOS zum laufen zu bringen. Mit wirklich 0 Erfahrung was das Thema angeht, hab ich blos einen Tag gebraucht um die aktuelle Version auch auf dem iPhone laufen zu lassen. Gamekit ist wirklich ziemlich einfach, zumindest wenn man sich mit einer einfachen Bluetooth Verbindung zufrieden geben kann.
Finale
Unserer erste grosse Termin war erstmal natürlich die finale Präsentation vom Kurs. Danach kam die IGF Students Entry Deadline und letztendlich der Appstore.
Gerade für den Appstore musste alles funktionieren und so hat ein recht langwieriger Prozess von Testen begonnen. Zweimals hatten wir das Spiel sogar schon hochgeladen, nur um es am nächsten Tag gleich wieder zurück zu ziehen, da wir unverzeihliche Fehler gefunden hatten. Die Phase hätten wir etwas gelassener angehen sollen, aber ich glaub wir beide waren zu aufgeregt und wollten das Projekt zumindest vorerst abschliessen. Dann kam endlich der selige Tag an dem es veröffentlicht war. Und es startete nicht. Yay. Natürlich haben wir die Release Version nie getestet, die Debug Version lief ja, also warum testen. So lernt man schmerzhaft.
Aber auch gut, das Spiel ist wieder eingereicht. Den nächsten Release Termin werden wir selber bestimmen und auch besser vorbereiten. So kann man sich mal in die fiese Welt des Marketings bewegen.