Der Teufel steckt im Detail
| Spiele und Spieleentwicklung |
Die Umstellung von Pospos auf GM8 war, wie berichtet, recht einfach. Was folgte war eine Kette von Bugs, die mit dem Speichern/Laden zusammen hingen. Plötzlich konnte das Spiel nach dem Laden viele Variable nicht mehr finden, was sich vor allem auf Glitzereffekte auswirkte. Im Prinzip nicht schlimm, bis plötzlich auch die Hauptfigur hängen blieb, der Spielstand somit unbrauchbar war.
Mein erster Lösungsansatz war die Umstellung auf immer mehr globale Variablen.Das klingt einfach, aber wenn plötzlich die Feinde auf die gleiche Variable zugreifen, rennen sie total wirr durch die Gegend, weil Feind A plötzlich den Laufbefehl von Feind B bekommt. Irgendwann wurde es ein Fass ohne Boden und plötzlich war mir klar, warum es seit der Version 8 von Game Maker diese Probleme gab.
Der GM8 wurde auch in seiner Leistung optimiert. Alle Prozesse laufen wesentlich schneller, vor allem das Laden und das Speichern. Der Autosave in Pospos ist von einem „fast nicht bemerkt“ einem „überhaupt nicht bemerkt“ gewichen. Um besser verstehen zu können, was sich im Hintergrund abspielt sollte man zuerst einmal wissen, wann das Spiel wie gespeichert wird. Sobald der Spieler in einem neuen Level ist, wird das Spiel sofort gespeichert und zwar mit dem internen Routinen von GM. Die oben erwähnten Variablen werden im sogenannten „Create Event“ von GM definiert, in jedem einzelnen Objekt. So auch der Autosave. Dies bedeutet, dass das Spiel bereits gespeichert wird, wenn noch nicht alle Objekte erstellt wurden. Game Maker arbeitet erst einmal alle Create Events aller Objekte ab, dann geht es weiter. Lösung: es wird mit einer Verzögerung von einer halben Sekunde gespeichert. Im entsprechenden Objekt „Autosave“ gebe ich also einen Alarm an, der eine halbe Sekunde später ausgelöst wird. Dieser Alarm speichert das Spiel ab. Nun könnte man Bedenken haben, dass diese halbe Sekunde nicht reicht, aber auch der Alarm wird erst ausgelöst, wenn alle Create Events abgearbeitet wurden. Somit spielt es auch keine Rolle mehr, ob der Rechner nun schneller oder langsamer ist. Problem gelöst.
Zwischenzeitig habe ich noch sehr viele Grafiken überarbeitet und ein weiteres Problem gelöst. Ein Spiel kommt schlicht nicht ohne Meldungen aus (zum Beispiel wenn man es verlassen will, einen Spielstand löschen will etc.) und dabei besteht die „Gefahr“, dass die Meldung vom Spieler nicht gelesen werden kann. Ich habe kurzerhand alle Meldungen im Spiel gesprochen. Das kam beim Tom unglaublich gut an, weil er plötzlich alles verstanden hat.
Nach der ganzen Überarbeitung und Verbesserung habe ich auch gleich die ersten 20 Level fertig gemacht, allerdings noch ohne den nötigen Feinschliff. Das machte nichts, Hauptsache war, dass Tom das Spiel endlich wieder testen konnte. Die entscheidenden Fragen waren hier:
- Macht es Spaß?
- Ist es zu schwer oder zu leicht?
- Wie lange braucht Tom für die ersten 20 Level?
- Soll ich weiter machen oder war das alles Bockmist?
Tom hatte seinen Spaß am Spiel, ich soll unbedingt weiter machen. Für die ersten 20 Level hat er eine gute Stunde gebraucht. So in etwa habe ich es auch kalkuliert. Nun aber zur Spannenden Frage „Schwierigkeitsgrad“.
Hier möchte ich erst ein wenig ausholen. Insgesamt habe ich bis jetzt fünf Spiele veröffentlicht. Die Genres könnten unterschiedlicher kaum sein, aber eines haben alle Spiele gemeinsam: bei jedem Spiel gab es Kritik, es sei zu schwer. Die Rätsel sind zu schwer, das Spiel zu schnell, der Feind überlegen, die Steuerung ist Mist, der Held stirbt zu schnell waren typische Aussagen. Die Ursache sehe ich in zwei Gründen. Auf der einen Seite wird man bei nahezu jedem Spiel Leute finden, die es zu schwer finden oder schlicht nicht damit klar kommen. Wenn dem nicht so ist, ist das Spiel für die meisten Leute zu leicht und macht auch keinen Spaß mehr. Auf der anderen Seite ist man als Entwickler so tief drin, dass einem schlicht alles leicht vorkommt, obwohl man sich vielleicht immer wieder sagt „Nichts ist zu leicht für einen, der es noch nicht kennt.“. Wie auch immer: bei Pospos habe ich mir so viel Mühe gegeben wie selten und siehe da, die ersten 10 Level waren sehr leicht, machten Tom aber auch großen Spaß. Ab Level 11 wurde es kniffliger. In zwei von 10 habe ich je einen Feind raus gelöscht, dann war es gut so. Zwei Rätsel waren schlicht zu schwierig, er fand keine Lösung.
Was macht man hier? Platziert man die Level später, scheitert der Spieler nur noch näher am Schluss. Löscht man die Rätsel, dann kann man weiter testen und löschen bis man nur noch ganz leichte Level hat, die keinem Spaß machen. Die einzig logische Konsequenz ist , dass man dem Spieler die Möglichkeit gibt so ein Level zu überspringen. Nun, jetzt klingt das Spiel noch einfacher. Ich überspringe alle Level bis ich am Ende bin. Richtig? Nein! Wer ein Level überspringt, muss Punkte bezahlen. In Pospos sind es derzeit 5000 Punkte. Wenn man alles einsammelt, hat man die bereits in Level 4, theoretisch könnte man dann Level 5 überspringen. Das Gute an so einem System ist, dass sich die Entscheidung unmittelbar auf die Highscore-Liste auswirkt. Spielerisch halte ich es für eine gute Lösung. Es wird sich zeigen, wie sich das bei den kommenden Tests von Tom und Carmen auswirkt.
Ein weiteres Problem ist schon etwas schwieriger. Viele Level, derzeit eigentlich alle, bestehen daraus dass man Steine richtig verschiebt. Dabei kann es vorkommen, dass man sich den Weg selber verbaut, Steine nicht mehr verschieben kann und so ein Level schlicht nicht zu schaffen ist. Im schlimmsten Fall macht der Spieler 2h herum und kann das Level bereits nach 10min nicht mehr lösen, weil ein Stein nicht richtig bzw. falsch positioniert wurde. Lösung: das Spiel muss in jedem Level erkennen können, dass der Spieler in eines aussichtslosen Situation steckt, den Spieler darauf aufmerksam machen und das Level neu starten. Das ist ein enormer Aufwand, aber er muss sein. Mal sehen wie sich die Dinge weiter entwickeln.
Neueste Nachrichten |
