Die ZFX-Action ist seit einigen Tagen vorbei und ich konnte nun etwas Abstand gewinnen. Hiermit gebe ich meine eigenen Erfahrungen wieder - einem absoluten Game Jam-Neuling!
Vorweg: Der gesamte Jam hat wahnsinnig viel Spaß gemacht! Sowohl das Entwickeln mit einer mir völlig neuen Technologie, das Beobachten der anderen Projekte als auch das Anspielen der finalen Versionen, war einfach ein tolles Erlebnis. Auf jeden Fall wird es nicht mein letzter Jam gewesen sein!
Themenauswahl und Ideenfindung
Als sehr positiv empfand ich die Themenvielfalt. Jeder Teilnehmer konnte mit seinem Nickname unter http://orteil.dashnet.org/gamegen ein Thema generieren lassen und posten. In meinem Fall war es “A role-playing game where you must obtain collectible bats with magic.”.
Ich stellte mir Szenarien zu den unterschiedlichen Themen vor, zeichnete Ideen auf, blieb allerdings bei meinem eigenen hängen. Mir fielen dazu einfach die sinnvollsten und vorallem machbarsten Ideen ein... somit war “Bat of Justice” geboren.
Das Gameplay war relativ einfach gestrickt: In einem Raum sind drei Teile eines Baseballschlägers aufbewahrt und die Aufgabe des Spielers ist es, sie aus ihrer magischen Barriere zu befreien. Die Gegner kann man außerdem betäuben und davon schleudern.
Sobald man alle Schlägerteile zusammen hat, kann man mit dem “Bat of Justice” auf die Gegnerhorden eindreschen.
Für all jene die es interessiert, hänge ich einmal meine Brainstormingergüsse an (es sind darunter mehrere Themen zu finden):




Eine Frage der Technik
Ursprünglich wollte ich mit C# und Unity3D an den Start gehen. Doch andererseits sehnte ich mich danach, etwas Neues auszuprobieren.
HaxeFlixel wurde mir von Laguna schmackhaft gemacht, weshalb ich das Framework etwa eine Woche vor Jam-Beginn ausprobierte. Das Tutorial war ziemlich gut beschrieben und auch Haxe als Sprache schien einen ordentlichen Eindruck zu machen. Ich war richtig angetan!
Somit stand also fest: Haxe mitsamt des HaxeFlixel-Frameworks werden mich bei diesem Game Jam begleiten.
Als Map Editor wählte ich den Ogmo Editor (http://ogmoeditor.com) aus (Gewohnheit und HaxeFlixel-Tutorial sei Dank
).
Es geht los!
Trotz kleinerer Anfangsschwierigkeiten (und ein wenig Aufregung), hatte ich Freitagnacht einen spielbaren Prototypen ausgearbeitet, der die Kernmechanik (Bewegung, Gegner-Spawn, Schläger einsammeln) bot:

Unterstützt wurde ich dabei von Kaffee:

Nach einem fertigen Gameplay-Prototypen, begann ich mich an die Optik herzumachen, um ein wenig vom Programmieren weg zu kommen.
Der Spieler sollte zumindest eine Gehanimation und ein Sprite für Aktionen spendiert bekommen. Nach gut einer halben Stunde hatte ich den Spieler fertig:

Da das Spiel auch etwas von Baseball hat (ehrlich gesagt, fiel mir nichts anderes/besseres ein), sollten die Gegner zumindest ein wenig in dieses Setting passen. Ein erster Entwurf sah so aus:

Gegen Ende hin entschied ich mich, Monsterflair einfließen zu lassen und machte die Gegner größer, gefährlicher und bedrohlicher... gleichzeitig revidierte die Baseballkappe sämtliche dieser Eigenschaften:

Apropos Gegner: Zu diesem Zeitpunkt waren sie strohdumm. Sie bewegten sich immer genau auf den Spieler zu ohne jegliche Pfaderkennung, somit hingen sie auch bei den Schlägerteilen fest.
Leider ging einiges an Zeit drauf, die HaxeFlixel-integrierte Pfaderkennung zu aktivieren und für meine Bedürfnisse umzusetzen. Der Grund war weniger das Framework, sondern eher meine eigene Unfähigkeit und Müdigkeit. Das ganze noch zu koppeln mit dem geplanten Betäubungszauber, war eine weitere Herausforderung.
Die Bilanz: Aus geplanten zwei Verteidgungszaubern, wurde schließlich nur einer, dafür hängen die Gegner nirgends mehr fest!
Die letzten Stunden
Ich befasste mich am Sonntag großteils damit, das Spiel stabiler und ansprechender zu gestalten.
Mit bfxr ließ ich mir ein paar Retrosounds generieren und baute noch die ein oder andere Nebenanimation ein: Den Gegner-Spawn und Zerstörungszauber bei der Barriere.
Da ich wusste, dass ich musikalisch viel zu lange brauchen würde, verzichtete ich komplett auf etwas eigenes. Die Suche nach passender Musik verschob ich auf später, sofern noch genug Zeit blieb (war leider nicht der Fall).
Da ich kein unnötiges Zeitrisiko eingehen wollte, schmiss ich kurzerhand das Feature raus, bei dem man am Ende mit dem Baseballschläger die Gegner verprügeln konnte.
Ursprünglich sollte es auch mehr Level geben... Ein Levelsystem einzubinden und testen hätte ebenso zu lange gedauert. Daher entschied ich mich, das Spiel lieber als Ein-Level-Projekt abzugeben, das einigermaßen stabil lief.
Auf den letzten Drücker baute ich noch eine Manabegrenzung ein, um das Spiel nicht ganz so einfach zu machen.
Kurz vor Game Jam-Ende gab ich das Projekt ab. Endlich war es geschafft und gerade noch rechtzeitig!
Ein Fazit
Mein erster Game Jam lief gar nicht so schlecht. Ich hatte ein kleines Spiel mit einer mir völlig unbekannten Technologie gebastelt, war durchgehend motiviert und im großen und ganzen richtig stolz auf mich. Klar, es lief nicht alles rund, doch die Routine wird bei Game Jams einkehren.
Im Nachhinein betrachtet, war die Technik Fluch und Segen gleichzeitig. Einerseits hätte ich mir mehr Zeit im Vorfeld für die Grundmechaniken von HaxeFlixel nehmen sollen, andererseits fühlte ich mich trotz kleinerer Hürden schneller bei der Entwicklung, als es bei Unity der Fall gewesen wäre.
Ärgerlich ist es auf jeden Fall, dass ich keine Zeit mehr hatte, die Kollsion noch weiter zu optimieren und die gestrichenen Features einzubauen.
Ursprünglich wollte ich das Projekt samt Source Code rausgeben, doch ich glaube, der Code im jetzigen Zustand (zusammengehackt und unschön) ist keinesfalls für jemanden außenstehendes brauchbar.
Grafisch bin ich gut vorangekommen und hier merkte ich den geringsten Widerstand. Zwar hätte ich noch etwas mehr Juice einfließen lassen sollen (z.B. ein paar Partikeleffekte hier und da), doch auch hier nagte die Zeit. Die Erstellung der Sounds war mithilfe von bfxr gewohnt kein Problem und damit fast im Vorbeigehen erledigt.
Was ich diesmal versäumt habe: Der IRC-Chat! Beim nächsten Mal werde ich mich auf jeden Fall dort blicken lassen und aktiv teilnehmen.
Auch ein Timelapse sollte beim nächsten Jam im Rahmen des Möglichen sein.
Ich danke euch für das Lesen dieses Blogposts und hoffe, ihr hattet beim Lesen genauso viel Vergnügen, wie ich beim Schreiben! 