Yhoko/devYhokos Entwicklertagebuch

Feinheiten des Scriptings

18. Juli 2013 von Yhoko
Wie viele Details braucht ein Spiel? Wie viele Details verträgt ein Spiel? Irgendwo dazwischen liegt das Optimum und es ist nicht leicht zu finden. Mit "Details" meine ich freilich nicht die Grafik sondern die Spielmechanik, also auf der einen Seite wie abstrakt das Spiel funktioniert (muss man Fleisch nur anklicken um es zu essen oder es vorher noch kochen) und auf der anderen wie viele Faktoren es berücksichtigt (zieht man es einfach in den Herd und wartet oder muss man zunächst eine Pfanne benutzen, auf die Zeit achten, es gelegentlich wenden, auch noch Öl dazugeben, etc.?).

Ein aktuelles Beispiel: Von Hühnern kriegt man natürlich Federn, aber wie? Bei Dungeon Keeper gibt es keine Federn, weil die Küken nur als Nahrung dienen. Bei Minecraft greift man die Hühner an, woraufhin sie für kurze Zeit fliehen. Beim Tod hinterlassen sie Fleisch und die gesuchten Federn. Auf Elantharil muss man das Huhn zunächst töten, entweder wie gehabt im Kampf oder, wenn es gezähmt ist, durch Schlachtung mit einem Beil. Allerdings fliehen die Tiere hier nicht sondern greifen an, wenn man den ersten Treffer landet. Auf die Leiche wendet man schliesslich ein Messer an, um ans Fleisch und die gesuchten Federn zu kommen. Und bei Endyr?

Der Grundmechanismus ist klar: erst das Huhn töten, dann rupfen (lebenden Hühnern die Federn zu stehlen ist nicht nur unmoralisch sondern auch viel schwieriger). Interessanter ist daher die Frage, wie man ein Huhn denn eigentlich tötet. Dass Hühner lieber fliehen als sich dem Kampf zu stellen scheint mir intuitiv, dass sie sich einfach abschlachten lassen hingegen weniger. Daher habe ich folgende Mechanismen geskriptet, die bei einem Huhn-Angriff zur Geltung kommen:
1) Alle Hühner im näheren Umkreis fliehen vor dem Angreifer
2) Ist ein Hahn in der Nähe, stürzt er sich auf den Angreifer
Oh, ein Hahn, das gabs in den anderen Spielen ja gar nicht – ausser bei Elantharil, aber auch da verteidigt er seine Hühner nicht. Bei Endyr hingegen war er schon vorher da, nämlich um die Hühner zu befruchten, und wenn sie kreischen eilt er nun zur Stelle. Aber macht er das auch, wenn er selbst schon im Kampf ist? Was, wenn er dazu über ein Stück Lava laufen muss? Bei jeder dieser Fragen muss entschieden werden, ob die Mechanik überhaupt umgesetzt werden soll, und wenn ja, wie sie umgesetzt werden soll und dann noch welche konkreten Werte die Funktionen erhalten sollen. Der Hahn könnte beispielsweise über die Lava hinwegspringen – oh hoppla, Springen gibts ja noch gar nicht. Und wenn man das nun für den Hahn implementiert, muss man es auch für alle anderen Gegner und Tiere konfigurieren. Und natürlich stellt sich die Frage, ob ein Lavatropfen schon ausreicht, um den Hahn einzuschüchtern, oder erst ein faustgrosser Klumpen, ein einzelnes Feld, mehrere Felder, ein ganzer Lavasee..? Gut, ein Hahn ist vielleicht eher schüchtern gegenüber Feuer, aber dieselbe Situation ergibt sich beim Skripten eines Erdelementars.

Das einzige, was dem durch diese Details exponentiell wachsenden Haufen an Skripten entgegenwirkt, ist eine ausgeklügelte, modulare Organisation der Skriptfunktionen, damit alles aufeinander aufbauen kann, dabei aber flexibel austauschbar bleibt und am besten auch noch irgendwie übersichtlich zu entwickeln ist. Knifflig – und wir werden sehen, wie das bei Endyr herauskommt. Letztendlich darf man nämlich eines nie vergessen: Das Spiel soll Spass machen. Und ein einfaches Steak geniessbar zu braten sollte vielleicht nicht die grösste Herausforderung für den Spieler sein.
Thema: Endyr


Kommentar schreiben

Name:
E-Mail:
Beitragstext: