Wie wird Scripting in Spielen wie Zelda durchgeführt?

7

Wie implementieren Spiele ihre Auslöser und Ereignisse, die die Handlung der Geschichte ausmachen? Um konkret zu sein, wie würde man die Geschichte eines Spiels wie The Legend of Zelda: Eine Verbindung zur Vergangenheit umsetzen. Ich gehe davon aus, dass es eine Art Skript gibt, das sich irgendwie in den Zustand der Spielwelt einfügt. Ich weiß absolut nichts über Scripting und Spieleentwicklung. Und haben keine Ahnung, wie der zugrunde liegende Code in Bezug auf Klassen, Datenstrukturen, Entwurfsmuster usw. aufgebaut sein würde.

user782220
quelle
Basierend auf dem, was ahnungslos erscheint, schlage ich vor, dass Sie etwas wie RPG Maker herunterladen und sehen, wie sie es tun. Das gibt Ihnen eine Vorstellung (in einem Genre), wie sie Skripte und Ereignisse verwenden.
Asche999

Antworten:

6

Im einfachsten Sinne kann ich es sagen.

  • In den meisten Fällen wird es eine Art "Trigger" -Volumen geben. Wenn der Spieler diese Lautstärke betritt, wird das "Ereignis" ausgelöst.
  • Volumes sind ein Würfel, eine Kugel oder ein anderes 3D-Grundelement.
  • Das Skript ist entweder eine voranimierte Zwischensequenz. In diesem Fall wird eine Animation abgespielt, oder das Gameplay-Skript ist eine Art Finite-State-Machine (FSM).
  • Bei Spielereignissen werden verschiedene "Zustände" ausgelöst, z. B. das Abrufen eines Gegenstands oder das Schlagen eines Bosses.
  • Die Mission ist "beendet", wenn der Endzustand ausgeführt wird. Dadurch wird normalerweise das Spielerprofil aktualisiert, um anzuzeigen, dass eine bestimmte Mission abgeschlossen wurde. Und höchstwahrscheinlich wird das nächste FSM geladen.

Das FSM kann wie folgt definiert werden

  1. Objekt A abrufen
  2. Objekt B abrufen
  3. Objekt C abrufen
  4. Spielen Sie die Zwischensequenz, in der Sie die Triforce zusammenstellen
  5. Boss besiegt
  6. Zwischensequenz spielen
  7. Laden Sie die nächste "Mission".

Jeder "Zustand" innerhalb eines FSM kann seinen eigenen FSM enthalten. All dies kann mit Daten definiert werden und erfordert nicht unbedingt eine eigene Skriptsprache.

Matt D.
quelle
1
Gibt es vielleicht ausführliche Tutorials oder Artikel zu diesem Thema?
user782220
In Verbindung mit der Vergangenheit gibt es jedoch nicht viele Weltstaaten. Es ist meistens ziemlich einfach. Schnapp dir das Masterschwert> Habe alle 3 Anhänger> Lass das Masterschwert frei. Trefferbarriere> Ist Schwertmeisterschwert oder höher> Barriere entfernen. Die meisten dieser "Trigger" haben eine einfache Überprüfung. Sie benötigen bestimmte Gegenstände, um vom Ort zum anderen zu gelangen. Die Art und Weise, wie sie ausgelöst werden, hängt jedoch nicht so sehr von einem Ereignis ab, sondern nur von der Verwendung des Gegenstands, den Sie normalerweise verwenden würden.
Sidar
0

Ich möchte dem, was Matt bereits erwähnt hat, weitere Informationen hinzufügen, indem ich erkläre, wie der RPG Maker bestimmte Story-Fortschritte und -Zustände ausführt. Obwohl man ein komplexeres System auf vereinfachte Weise implementieren kann, wie es der RPG Maker tut, sollte es ein guter Anfang sein.

In Karten finden wir bestimmte Trigger oder Entitäten. Dies kann ein unsichtbares Plättchen sein, das Code ausführt, wenn der Spieler darauf tritt, oder nur ein NPC, mit dem Sie sprechen können. Jedes hat unterschiedliche Eigenschaften und bietet unterschiedliche Interaktionsmöglichkeiten. Angenommen, wir haben einen NPC, der Ihnen eine Quest sendet. Wenn Sie zum ersten Mal mit ihm sprechen, sagt er etwas anderes als später. Wenn man Seiten für Entitäten verwendet, kann man Code für verschiedene Situationen schreiben, der nur unter bestimmten Bedingungen ausgeführt wird. Der RPG Maker verwendet sogenannte Schalter - nur boolesche Variablen, die entweder ein- oder ausgeschaltet sind. Zu Beginn des Spiels HasAcquiredQuestXkönnte ein Schalter sein offund die NPCs Seite 1 (dem Spieler die Quest geben und einschaltenHasAcquiredQuestX) ausgeführt würde. Wenn Sie jetzt mit ihm sprechen, wird Seite 2 möglicherweise mit einem Text wie "Oh, haben Sie Ihre Suche schon beendet?" Ausgeführt. Sobald Sie die Quest beendet haben, kann ein anderer Auslöser einen Schalter einschalten, mit HasFinishedQuestXdem unser oben genannter NPC Seite 3 ausführen kann, der Sie mit Ruhm, Gold und Gegenständen belohnt.

Dies ist eine sehr einfache Möglichkeit, mit dem Fortschreiten der Story zu arbeiten. Je mehr Inhalte das Spiel enthält, desto mehr Schalter stehen Ihnen zur Verfügung. Ab einem bestimmten Punkt ist es definitiv besser, die Verwendung von Finite-State-Maschinen in Betracht zu ziehen!

Christian Ivicevic
quelle