Wie kann ich NPCs und Szenen erstellen?

7

Wie würde ich vorgehen, um NPC-Events / Szenen zu erstellen? Zum Beispiel hat jedes Rollenspiel eine Menge verschiedener Zwischensequenzen im Spiel, in denen Sie eine Story ausdrücken können.

Was ich bisher gedacht habe, sind verschiedene Auslöser und eine Zahl, die den Status der Geschichte angibt, in der sich der Spieler befindet. Wenn der Spieler einen dieser Auslöser trifft, überprüfe ich den Status und gehe von dort aus weiter. Bin ich irgendwie auf der richtigen Seite?

Wie animiere ich danach die Szenen? Muss ich sie nur hart ins Spiel codieren? Ich dachte, hier könnte eine Skriptsprache nützlich sein? ich bin mir nicht wirklich sicher

Mir ist klar, dass dies wahrscheinlich eine große Frage ist, aber wenn jemand in die richtige Richtung weisen könnte, wäre das großartig.

Ich benutze c # und XNA, wenn das überhaupt wichtig ist.

Milchboot
quelle

Antworten:

2

C # / XNA spielt keine große Rolle. Ich gehe davon aus, dass Sie ein (2D?) RPG mit Ereignissen und einem Karten- / Ereigniseditor erstellen möchten.

In diesem Fall müssen Sie eine Ereignis-API und Tools zum Erstellen / Konsumieren erstellen.

Zum Beispiel werden Sie wahrscheinlich eine "show message" -Methode erstellen (es wird eine Zeichenfolge angezeigt, wenn Sie mit jemandem sprechen). Mit Ihrem Karteneditor können Sie dieses Ereignis irgendwo platzieren und den Text angeben. und die Spiel-Engine zeigt es an, wenn Sie diesen Ort betreten.

Skriptsprachen sind gut (Sie erstellen möglicherweise Ihre eigene Minisprache), aber das hindert Sie nicht daran, Ihre eigene "Ereignis-API" schreiben zu müssen.

So mache ich es und so macht es auch RPG Maker XP.

Asche999
quelle
+1 für eine hervorragende Antwort, obwohl ich gespannt bin, wie Sie festgestellt haben, dass Sean einen Karteneditor verwendet, mit dem Ereignisse irgendwo platziert werden können. Gibt es einen Standard für Karteneditoren?
Randolf Richardson
Okay, ich habe definitiv in diese Richtung gedacht. Ich bin froh zu sehen, dass ich in die richtige Richtung gehe. Danke :)
Milchboot
Oh, das tut mir leid. Ich habe die vorherige Antwort verpasst. Ich habe einen Karteneditor erstellt, daher sollte es nicht zu schwierig sein, diese Funktionalität hinzuzufügen
Milkboat
@ RandolfRichardson Ich habe es nicht bestimmt; Ich fordere ihn auf, einen Karteneditor zu erstellen (falls erforderlich) und ihn zu verwenden. Es gibt keinen Standard, den ich kenne.
Asche999
1

So wie ich meine Systeme derzeit eingerichtet habe, lösen Ereignisse, die von Objekten ausgelöst werden, Szenen aus. Wie Sie angegeben haben, können Spielerauslöser Szenenänderungen verursachen, und Sie können sicherlich eine Zustandsmaschine verwenden. Sie können Ihr eigenes Animationsszenenprotokoll erstellen, damit es nicht fest codiert werden muss. Sie haben auch die Möglichkeit, aktuelle Filmdateien abzuspielen, wenn Sie dies wünschen, aber im Allgemeinen sind sie ziemlich groß.

Ich denke, Sie sind definitiv auf der richtigen Seite, da dies Ihr Programm ist - Sie können es so machen, wie Sie es wünschen. Das Erstellen von Funktionen für solche Dinge ist faszinierend und erfüllend.

Ich habe noch nie eine echte Dokumentation zu diesem Thema gesehen, daher wäre ich interessiert, die Meinung anderer zu sehen.

Ultifinitus
quelle
Ich bin mir nicht sicher, was Sie unter Animationsszenenprotokoll verstehen. Können Sie mir ein Beispiel geben?
Milchboot
+1 für den Vorschlag, Filme abzuspielen (ich wollte dies vorschlagen, aber du hast mich geschlagen).
Randolf Richardson
0

Ich bin mir nicht sicher, ob Sie mehr von einem Codebeispiel als von der Theorie wollten, aber schauen Sie sich diese Frage an

Skeith
quelle
0

Sie haben die richtige Idee, Trigger in Ihrem Spiel und in den Spielkarten festzulegen, um Ereignisse auszulösen (beachten Sie, ich meine nicht unbedingt die Ereignisse in der C # -Sprache). Skripte sind optional, aber sie können eine flexiblere Möglichkeit sein, diese Trigger zu Ihrem Spiel hinzuzufügen und neue auszuladen, wenn eine Änderung in der Storyline dies erfordert.

Unabhängig davon, ob Sie Skripte verwenden oder nicht, ist es im Allgemeinen gut, einen "Event Loader" zu haben, der eine neue Gruppe von Ereignissen oder Triggern an die Spielkarten übergeben kann, wann immer dies erforderlich ist. Bei Skripten wird es als Skriptlader betrachtet, der dafür verantwortlich ist, die Spielwelt an bestimmten Orten mit neuen Ereignissen zu füllen, einschließlich Ereignissen, die ein anderes Skript laden können.

Zum Beispiel wird zu Beginn des Spiels das erste Skript (oder Event Loader-Objekt) automatisch aufgerufen und das Spiel mit Event-Triggern gefüllt. Eines dieser Ereignisse kann ausgelöst werden, nachdem der erste Boss besiegt wurde, und dieses Ereignis lädt wiederum ein anderes Skript, das einige oder alle Ereignisauslöser im Spiel ersetzt. Jetzt haben Sie eine Reihe neuer Interaktionen oder Ziele, die Sie erkunden können. Dies erhöht die Flexibilität beim Verzweigen von Pfaden in Quests und Storys. Denken Sie jedoch auch daran, die Verzweigungspfade Ihrer Storyline gut zu planen, damit Sie wissen, dass alle Ihre Ereignisse in der Story sinnvoll sind.

ChrisC
quelle