Nach einer längeren Jam-Abwesenheit nahm ich an der 11. ZFX-Action teil - damit erhöhten sich meine Jam-Teilnahmen auf insgesamt dreimal!
Themenwahl und Ideenfindung
Anders als bei meinen bisherigen ZFX-Actions, wurde diesmal kein zufällig generiertes Thema gewählt, sondern zwei, völlig frei interpretierbare Themen vorgegeben: "Strategie" und "Gravitation".
Die ersten Ideen kamen zwar rasch, waren aber allesamt zu komplex, um sie innerhalb der kurzen Zeit umzusetzen. Mein GameDev-Kollege und guter Freund Malthus hatte allerdings eine Idee parat: Einen Würfel durch Anziehung und Abstoßung von A nach B bewegen.
Tatsächlich klang es nach einer guten Idee, die rasch umsetzbar schien.
Namensfindung leicht gemacht
Der Arbeitstitel "Power Push Pull" entstand unspektakulär und ohne viel nachzudenken: Als Unity bei Projektanlage einen Namen erwartete, schrieb ich aus dem Bauch heraus "PowerPushPull". Somit ist wohl mein persönlicher Arbeitstitelfindungsrekord für alle Zeit gebrochen 
Prototyping
Prototyp #1 (Grundmechanik)
Der erste Prototyp entstand innerhalb weniger Stunden und gestaltete sich mithilfe der Unity-Engine nahezu unkompliziert. Im ersten Schritt galt es, die Strahlen zur Anziehung und Abstoßung umzusetzen und die Kernmechanik zu testen. Zu diesem Zeitpunkt war noch nicht ganz klar, in welche Richtung (Perspektive, Leveldesign, ...) das Projekt sich entwickeln sollte.

Prototyp #2
Etwas Leveldesign von Malthus und das freie Setzen mitsamt Rotieren der Strahlenblöcke war in der zweiten Iteration des Prototypen möglich.
(Bild anklicken für animiertes GIF)

Prototyp #3
Dasselbe Leveldesign allerdings mit vordefinierten Stellen zum Setzen der Blöcke. Ebenfalls sieht man im animierten GIF den kurzzeitigen Einfall, dass der Spielerwürfel sich ebenfalls drehen kann. Diese Version kam näher ans Endergebnis heran, war aber keinesfalls optimiert.
(Bild anklicken für animiertes GIF)

Endergebnis
Die finale Version wurde optisch wie auch spieltechnisch stark optimiert.
(Bild anklicken für animiertes GIF)
Technische Basis
Ursprünglich entwickelte ich 2D-Spiele und setzte bei den bisherigen Jams auf das HaxeFlixel-Framework. Diesmal sollte es ein waschechtes 3D-Projekt werden, und da ich mich bereits längere Zeit mit Unity befasste, fiel meine Wahl auf diese Engine. Ich entwickelte bis dahin zwar schon kleine Unity-Projekte, doch schaffte es kein einziges an die Öffentlichkeit. Tatsächlich sollte "Power Push Pull" mein erstes, öffentliches Unity-Projekt werden.
Ich war mit der Wahl durchweg zufrieden, da ich mich (fast) ausschließlich auf das Gameplay konzentrieren konnte. Die Spiellogik wurde mit meiner Berufssprache C# entwickelt, wodurch die Einarbeitungszeit darin völlig weg fiel.
Hier und da stieß ich zwar auf einige Unklarheiten mit dem UI-System sowie einigen Eigenheiten der Engine, allerdings konnten diese mittels Google-Suchen rasch ausgemerzt werden. Ein wichtiger Faktor war wohl auch die Tatsache, dass ich in vielen Teilen bereits mit der Engine vertraut war.
Der Release-Prozess gestaltete sich als völlig unkompliziert. Mit nur wenigen Klicks standen Versionen für Windows, Linux und Mac parat, wovon ich allerdings nur erstgenannte ausführlich testen konnte. Und ich muss gestehen: Es war ein tolles Gefühl, einmal die Build-Funktion auszuprobieren! 
Assets
Mein Anspruch bei 2D-Spielen war immer, so viel wie möglich selbst zu machen. Bei einem 3D-Projekt sind die Rahmenbedingungen allerdings völlig andere.
Etwas fürs Auge ...
Grafisch verließ ich mich auf die Unity-internen 3D-Modelle, die sich in meinem Fall auf Cubes und Planes beschränkten.
"Bei einem 3D-Spiel sollte es zumindest Texturen geben...", war einer meiner zahlreichen Gedanken. Doch schlussendlich blieb dafür keine Zeit mehr, und die verzweifelten Google-Suchen nach passenden Texturen waren mit mäßigem Erfolg gekrönt. Ich ließ die Modelle also einfärbig in der virtuellen Welt stehen, damit sie zumindest anders als nur trist weiß aussahen. Erst war ich von dem Grafikstil nicht angetan - doch nach mehreren Spielsitzungen, gefiel er mir doch immer mehr.
... und für die Ohren
Nachdem meine musikalischen Fertigkeiten weiterhin nicht vorhanden sind, suchte ich mir auf OpenGameArt einige Musikstücke heraus. Schlussendlich entschied ich mich für einen einzelnen Sidescrolling / Plattformer-Soundtrack, der sich wunderbar in das Spielkonzept einfügte, ohne aufdringlich zu wirken (meiner Ansicht nach). Als einziger Soundeffekt ertönt ein kleiner Explosionssound, sobald der Spielerwürfel mit etwas anderem als dem Zielfeld kollidierte - auch diesen fand ich zügig auf OpenGameArt.
Die letzten Stunden
... gestalteten sich am Sonntag, dem Abgabetag, doch ein wenig nervenaufreibend.
Bislang hatte das Spiel erst einen Level, es fehlte ein Menü mitsamt Game Over-Screen, der Forenbeitrag wartete auf seine Formulierung... und das mit einem kleinen Schlafdefizit.
Innerhalb kürzester Zeit las ich mich rudimentär in das UI-System der Engine ein, schustere ein notdürftiges Startmenü mitsamt Game Over-Screen zusammen und schrieb für das Startmenü einen kleinen Text, worum es denn eigentlich geht. Zumindest konnte ich nun behaupten, das Spiel habe so etwas wie Hand und Fuß.
Als nächste spannende Aufgabe galt es, neue Level zu gestalten. Um mich nicht zu verzetteln, plante ich insgesamt mit drei neuen. Binnen kürzester Zeit hatte das Spiel vier Level, in denen sich das Spielkonzept entfalten konnte.
Die anfängliche Beschränkung auf drei neue Level stellte sich übrigens als positive Entscheidung heraus: Natürlich tauchte ein mittelschwerer Bug im letzten Level auf, bei dem bei gewissen Strahlrichtungen der Spielerwürfel einfach abgestoßen wurde. Möglicherweise habe ich dieses Verhalten in meiner Night Coding Session mit eingebaut. Da ich ihn nicht auf die Schnelle beheben konnte, wurde das letzte Level kurzerhand so umgebaut, wodurch die betroffene Richtung nicht mehr gesetzt werden musste.
Nach einer kleinen Müslipause, schickte ich das Ergebnis erstmalig an meine beiden treuen Tester Sam Schattenhammer und Rauramina. Prompt wurde ich mit einem weiteren, seltsamen Bug bei Rauramina konfrontiert: Diesmal blieb der Spielerwürfel manchmal in den Strahlen hängen... WTF?! Dieses Verhalten trat noch nie auf und weigerte sich strikt, reproduziert zu werden. Da es zeitlich doch langsam eng wurde, reduzierte ich die Analyse auf ein Minimum ließ den Bug weiterleben, in der Hoffnung, dass er nicht mehr auftreten würde.
Auch hierbei sollte sich meine Entscheidung als richtig erweisen, denn das Schicksal meinte es erneut nicht gut mit mir: Upload-Geschwindigkeit war offenbar Mangelware an diesem Tag und natürlich vergaß ich mitten im Hochladevorgang einige essentielle Punkte im Release-Build. Somit lud ich das Projekt insgesamt zweimal á 20 Minuten hoch.
Ein wichtiger Aspekt fiel mir allerdings erst nach der finalen Abgabe auf, als mich der User Max Gooroo aus dem ZFX-Forum darauf aufmerksam machte: Das Spiel benötigte alle drei Maustasten - Notebooks ohne mittlerer Maustaste konnten es somit gar nicht spielen!
Ärgerlich, doch auf diese Details vergisst man sehr schnell...
Fazit
Heureka! So eine abenteuerliche ZFX-Action hatte ich noch nicht erlebt. Obwohl der Zeitrahmen von gut einer Woche vorgegeben war, musste ich mich aus Zeitgründen mit insgesamt dreieinhalb Tagen zufrieden geben, vorwiegend am Abgabewochenende.
Wie bei den bisherigen Game Jams, lernte ich auch diesmal wieder viel dazu, vor allem ist mir das Handling der Unity-Engine noch ein ganzes Stück vertrauter geworden. Und tatsächlich ist mir die Engine, aufgrund der raschen Prototyping-Möglichkeiten, ein ganzes Stück sympathischer geworden! 
Für das Spiel waren ursprünglich mehrere Arten von Strahlen geplant mitsamt ausgefeilteren Level und optischen Verbesserungen... doch ich musste an die wichtigste Lektion eines Game Jams denken: Kürzen, kürzen, kürzen!
Das Kernkonzept wurde umgesetzt und funktionierte, auch gab es keine folgenschweren Hürden bei der Ausarbeitung. Auf diesen Stand konnte man nun immer noch aufbauen, und tatsächlich sehe ich ein gewisses Zukunftspotential bei diesem Spielkonzept.
Insgesamt war es wieder eine verdammt positive, motivierende Erfahrung! Vorallem freut es mich immer wieder, die anderen Projekte mit teils verrückten Ideen anzutesten.
Ich danke euch für das Lesen und hoffe, ihr hattet auch diesmal wieder viel Spaß! 