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.
7
Antworten:
Im einfachsten Sinne kann ich es sagen.
Das FSM kann wie folgt definiert werden
Jeder "Zustand" innerhalb eines FSM kann seinen eigenen FSM enthalten. All dies kann mit Daten definiert werden und erfordert nicht unbedingt eine eigene Skriptsprache.
quelle
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
HasAcquiredQuestX
könnte ein Schalter seinoff
und 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, mitHasFinishedQuestX
dem 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!
quelle