Markus und ich haben uns an Yo Frankie! zu schaffen gemacht, einem OpenSource-Spiel der Blender Foundation mit deren Tool Blender das Spiel auch umgesetzt wurde. Wie bei allen Blender-Projekten (vorher mehrere Filme) hat das Projekt dazu beigetragen, das Programm Blender an sich weiterzuentwickeln (z.B. kam dadurch einst einfache Haarsimulation dazu). In diesem Fall ist die Blender Game Engine entstanden.
Man kann sich an diesem Spiel an mehreren Ecken zu schaffen machen:
1. Texturen
Diese Änderungen sind sehr einfach. Mit GIMP lassen sich die png-Dateien in den Ordnern “textures” und “chars/textures” ohne Probleme bemalen. Die Daten werden nach einem Neustart des Spieles sofort geladen. Zu beachten ist, dass die Texturen auf unebene Flächen gemappt werden, sodass das einfache Reinkopieren von Logos oder Gesichtern nicht automatisch passt.
Ein Beispiel für eine solche Modifikation des Startvogels haben wir in das Archiv gelegt (Datei “char_bird_col.png” in “chars/textures”).
2. Blender-Modelle
Beim Ändern der Blendermodelle im Ordner “chars” hatten wir keinen Erfolg. Selbst kleine Modifikationen ohne das Lösen von Knochen führten zu einem reproduzierbaren Absturz des Spieles bevor das Modell sichtbar wurde (ging also offenbar beim Laden kaputt). Schade, denn das wäre wohl die lustigste Modifkationsmöglichkeit…
3. Spiellogik (Fliegen)
Man kann Frankie und Momo (der Affe von Spieler 2) fliegen zu lassen. Dazu öffnet man die Datei “chars/frankie.blend” mit Blender und wählt im Action-Editor die Action “frank_glide”. Dort sind folgende Änderungen zu machen:
new_x = (own_y[0]/own_y_length) * orig_xy_speed
new_y = (own_y[1]/own_y_length) * orig_xy_speed
wird zu
new_x = (own_y[0]/own_y_length) * orig_xy_speed
new_y = (own_y[1]/own_y_length) * orig_xy_speed
old_x = new_x
old_y = new_y
und
glide.setLinearVelocity(new_x, new_y, new_z, 0)
wird zu
glide.setLinearVelocity(old_x, old_y, 1.0, 0)
Mit den beien neuen Variablen in der oberen Änderung wird die aktuelle Geschwindigkeit beim Gleiten eingefroren, d.h. Frankie wird nicht langsamer und bleibt nicht in der Luft stehen.
Unten werden die alten Geschwindigkeiten dann auch verwendet (viel Code dazwischen wäre jetzt überflüssig, weil er nie verwendet wird, aber das macht nichts). Außerdem wird mit 1.0 ein fester Wert für das Steigungsverhalten angelegt. Dadurch steigt Frankie langsam an, wenn man seine Schnauze nicht nach unten drückt. Diesen Wert kannst du wie es dir beliebt anpassen.
Und schwupps, hat man mit drei (!) Zeilen Code einem Flughörchen das Fliegen beigebracht
.
(English: This is how you make Frankie fly: You have to change the lines mentioned above. Or you can download the file attached at the end of this post and unzip it to your Yo Frankie! directory.)
Fazit
Es macht richtig Spaß, ein OpenSource-Spiel anzupassen und selbst dabei wird klar wie angenehm die Freiheit ist, die OpenSource dem Nutzer lässt. Viel Spaß mit unserer Modifkation!
Markus und Johannes
- Angepasster Startvogel in Yo Frankie! (Holztextur und gelbe Augen)
- Fliegendes Flughörnchen I
- Fliegendes Flughörnchen II


