2010-06-08 16 views
8

Ich habe schon ein paar einfache Spiele gemacht: einen Level eingeben, bis zum Ende gehen, weiter zum nächsten Level.
Aber ich frage mich immer noch, wie "echte" Spieleentwickler Spiele mit einer Geschichte erstellen.Spielentwicklung: Wie machst du ein Geschichtenspiel?

Hier sind ein paar Dinge, was für eine Geschichte Spiel hat (und wo ich frage mich, wie sie es machen):

  • Eine Folge von Orten der Spieler gibt, die besuchen und zu tun, dass und Das.
  • Das erste Mal, wenn Sie einen Typen sehen, sagt er nur hallo. Nach ein paar Stunden Spielfortschritt gibt er dir einen Tipp, zu einem bestimmten Ort zu gehen.
  • Das erste Mal, wenn Sie über eine Brücke gehen, passiert nichts, ein zweites Mal: ​​Die Brücke fällt und Sie betreten einen neuen Ort unter der Brücke.
  • Wenn Sie zum ersten Mal einen neuen Standort eingeben, erhalten Sie viele Informationen von z. Dorfbewohner usw. Das nächste Mal passiert nichts

Die letzten Punkte sind ein bisschen dreimal gleich.
Aber ich glaube nicht, dass sie wie eine Save-Datei mit vielen booleans und ganzen Zahlen zum Halten Dinge haben:

  • Spieler haben das erste Mal ....
  • Spieler betreten die zehntes Mal, dass Standort
  • Spieler für die ### th Zeit an dieser Person
  • sprachen etc

Wenn ich über Geschichte Spiele reden, ich denke an:

  • The Legend of Zelda (alle Spiele der Serie)
  • Okami

Und dies sind nur einige Beispiele von Level-in-Level-out-Spiele:

  • Mario
  • Braid
  • Crayon Physics

Dank

+4

"Aber ich glaube nicht, dass sie eine Speicherdatei mit vielen booleschen Werten und ganzen Zahlen haben, um Dinge zu halten". Was ist der Zweck einer Sicherungsdatei? Was würdest du in einer Sicherungsdatei speichern, wenn nicht der Status der Spielwelt? – JAB

+0

Die angegebene Liste deutet an, dass der Gedanke war, dass der sichere Zustand tatsächlich jede Aktion, die der Spieler jemals ausgeführt hat, sowie seine Bedeutung für einen bestimmten Kontext enthalten würde. Offensichtlich muss das System zumindest für die meisten Spiele einfacher sein. City of Heroes fühlte sich für eine Weile so, als würde es genau das tun, trotzdem würde man rückwirkende Erfolge für Dinge bekommen, an die man sich nicht einmal erinnern konnte. –

Antwort

5

Normalerweise verwenden diese Spiele eine Sammlung von Flags, um das Verhalten bestimmter Zeichen und bestimmter Teile zu steuern. Dies erweist sich als sehr ähnlich (oft direkt äquivalent) zu einer endlichen Zustandsmaschine, was ein etwas allgemeinerer und leistungsfähigerer Ansatz für das Problem ist.

  • A FSM verfolgt den "progress" einer bestimmten Quest - welche Schalter geworfen werden, was Gespräche stattfinden, etc
  • Jeder NPC hat eine FSM „Information Zustand dieser NPC zu verfolgen - jeden Zustand Korrelate im Spiel auf eine bestimmte Phase innerhalb des Bogens NPC, endet in der Regel in einem Random-Zitat Zustand.
  • ein gespeichertes Spiel könnte, als ein Beispiel, in dem Spiel-Universum den Zustand jedes Objekt verfolgen.

Der wichtige Teil besteht darin, nicht nur die Zustände, sondern auch die Übergänge so zu gestalten, dass sie Sie sind so einfach wie möglich anzubringen.

+0

An welchem ​​Punkt würde die Verwendung einer FSM zu unhandlich werden?Ich würde denken, dass, wenn Ihre Objekte eine Vielzahl von Eigenschaften haben, es einen Punkt geben könnte, an dem Sie zu viele Zustände hätten, mit denen Sie leicht umgehen könnten. – JAB

+0

Es gibt Möglichkeiten, einzelne Verhaltensweisen aufzubrechen, so dass das weniger ein Problem ist. Zum Beispiel können Sie in einem Konversationsmodell, in dem Sie mehrere Untersuchungsreihen haben, mehrere Zustandsautomaten haben, die größtenteils unabhängig jede einzelne Zeile verfolgen. Offensichtlich müssen Sie die Komplexität des Modells (die Fähigkeit zum Zusammenspiel zwischen Plotlines, zum Beispiel erfordert komplexere State Machines) mit der Komplexität der technischen Lösung ausgleichen. FSMs sind jedoch besser für die Steuerung von High-Level-Verhalten. Sie sind gut für Geschichten, Aufgaben, Gespräche, aber keine KI im Allgemeinen. –

1

Ich glaube, Sie finden es von Genre variiert je nach Genre, aber während sie spielt wahrscheinlich ist nur in einer Datenstruktur im Speicher gehalten und wenn gespeichert wird es in die Datei speichern beharrt (schau dir einfach die Größe einiger Speicherdateien für verschiedene Spiele an, ich habe mehrere MB Speicherdateien gesehen).

1

Ich habe noch nie an so etwas gearbeitet, aber ich würde annehmen, dass der allgemeine Ansatz das Laden/Speichern/Abfragen einer "GameState" -Struktur ist, die alle notwendigen Informationen für das Spiel enthält, um die entsprechenden Aktionen auszuführen.

z.B.

if(GameState.Player.Karma < 0 && GameState.NPCs.BillyTheInnocentLamb.KilledByPlayer) 
{ 
    GameState.NPCs.FredTheShephard.HatesPlayer == true; 
} 

Jetzt tun Sie es millionenfach und Sie haben sich ein RPG.

+1

'GameState.NPCs.BillyTheInnocentLamb.Killer.equals (GameState.Player)' würde mehr Sinn für mich machen, es sei denn, du willst keine Beziehungen zwischen NPCs haben und es ist mir egal, wer das Lamm getötet hat, wenn es nicht war. ' t der Spieler. – JAB

+0

@JAB: Jemand kann nur einmal getötet werden. Und es wäre der Spieler in diesem Beispiel. Also ich sehe nicht, was das Problem ist. –

0

Wenn Sie verwalten können Sie einen Blick auf Oblivion haben (fantastisches Spiel!) Sie können ihre Construction Set versuchen und verwenden, die Sie vollständig erlaubt, das Spiel zu personalisieren, indem zusätzliche Karten Aufbau von Aufgaben usw.

Durch es Sie mit Wir werden sehen, dass der Mechanismus im Wesentlichen das ist, was die anderen gesagt haben: Zum Beispiel hast du mehrere Sätze, die ein NPC sagen kann, und er wird das eine oder andere sagen, abhängig von bestimmten Bedingungen. Zum Beispiel, ob du gut oder böse bist, wie gut du bist, ihn von etwas zu überzeugen oder wie gut du ihn bestochen hast, bestimmte Dinge, die du nicht hast, aber auch Dinge wie die Tageszeit!

Wie Sie eine dieser Sache sehen kann leicht mit einem Wert ausgedrückt werden (zB gut/schlecht kann einen Wert zwischen 0 und 100 sein, das gleiche für Ihre bribing Geschick usw.) und dann ist es nur eine Frage der mit viele ifs :)

0

„Aber ich glaube nicht, sie haben eine speichern-Datei mit vielen booleans und ganzen Zahlen für Dinge halten“

ich denke, sie tun. :)

Manchmal kann es eine formale Struktur sein: zum Beispiel kann es eine Liste von benannten Zählern und Flags sein, die aus der Skriptsprache des Spiels abgefragt werden können und die direkt mit Einträgen im Designdokument übereinstimmen. Das Spiel kann die Zähler erhöhen und die Flags als Reaktion auf In-Game-Ereignisse umdrehen und diese Flags und Zähler abfragen, wenn entschieden wird, welche Aktionen ausgeführt werden sollen, und die ganze Menge kann leicht in einem kompakten Format gespeichert werden.

Verwandte Themen