2010-12-04 11 views
3

Ich versuche, ein Old-School Text Adventure Game zu erstellen. Ich bin ein bisschen auf der Erstellung der Weltkarte und Zimmer stecken.Game Design und Architektur Beratung für Text Adventures

Sollten die Raumbeschreibungen Teil des Quellcodes sein oder sollten sie getrennt sein? Ich dachte daran, all diese Beschreibungen und Raumeigenschaften in einer MySQL-Datenbank zu speichern und dann Code zu haben, um die Logik jedes Raums zu organisieren; Jede Zimmerbeschreibung mit dem eigentlichen Quellcode zu versehen, wirkt ein bisschen unordentlich.

Ist dies die bevorzugte Methode zum Organisieren von Beschreibungen in einem Abenteuerspiel? Ich dachte auch, dass dies vorzuziehen wäre, da ich dann die Datenbank abfragen könnte, um gemeinsame Eigenschaften der Daten zu finden.

Alle Kommentare wären willkommen.

Antwort

6

Nein, keine Level-/Raumbeschreibung innerhalb des Codes angeben, es ist auf diese Weise nicht dynamisch.

Viele Entwicklungs-Frameworks neigen dazu, Code aus Daten zu trennen. Für gewöhnliche Fälle legen wir Spielraumdaten in Dateien und lesen diese, um den Level zu erstellen und vielleicht dem Benutzer zu ermöglichen, selbst eine neue Ebene zu erstellen und schließlich eine neue Datei zu erstellen, um die Raumdaten zu übertragen.

4

Ich arbeite in einer Firma, wo sie Spiele bauen, und sie haben die Räume getrennt von dem Code, sie haben es in mysql. Eigentlich sind auch die Gegenstände, die in jedem Raum sind, in einem Tisch, und es gibt auch einen Tisch, der sagt, welcher Gegenstand in welchem ​​Raum in welchem ​​Moment ist. Außerdem, wenn Sie Ihr Spiel erweitern möchten oder Statistiken über es ist viel besser, es mit einer Datenbank zu tun.

0

Ich würde ein solches Spiel als einen Interpreter konstruieren, der Raumdaten einliest und basierend auf den Raumdaten einen Satz gültiger Befehle (Bewegen, Nehmen, Fallenlassen, Ändern ...) ermöglicht. Für die Bewegung hätten Sie einen vordefinierten Graphen mit Knoten, die Räume und Kanten sind, die Bewegungen erlauben.

3

Ich werde hier zwei Probleme ansprechen. Erstens haben Sie Recht, die Daten, die das Spiel definieren, von der Engine fernzuhalten, die es verwenden wird. Dies macht es so, dass Sie nicht alles neu kompilieren müssen, um einen Tippfehler oder ähnliches im Falle eines textbasierten Spiels zu beheben.

Zweitens, würde ich nur die Verwendung von MySQL in Frage stellen. Wenn du ein DOS-Spiel machst, das auf den Systemen der Leute installiert werden soll, brauchst du kein "MySQL installieren", hehe. Es gibt ein kleines Programm, das in C geschrieben ist. Es ist kostenlos für alle, das SQLite zu verwenden, das viel besser zu Ihren Bedürfnissen passt. Wenn auf der anderen Seite der Bahn ist das Medium für die Veröffentlichung dieses Textes Spiel ist, dann haben es :)

1

Sollten die Zimmerbeschreibungen Teil des Quellcodes sein oder sollte es getrennt werden?

Getrennt.

Versuchen Prolog Sprache.

  • Es hat ähnliche Datenbank auf SQL (eigentlich logische Prädikate)
  • Mit etwas Geschick Sie der Lage sein, zu prüfen, ob nach einiger Änderung Ihr Abenteuer konfektionierbar ist.
  • Sie können diese Beschreibung leicht durch einige logische Prädikate erstellen, wenn es Ihnen nichts ausmacht, dass sie sehr "computerähnlich" sind.

Sie können examples of Prolog text adventures in simple Google search sehen.

0

Ich würde die Beschreibungen aus dem Code trennen, mit einem Objekt Raum, der ein Objekt besitzt Beschreibung, die eine "Datenbank" durch einige Fassade aufruft, so dass Sie eine Datei oder eine Datenbank oder alles, was Sie möchten, verwenden können. Es würde Ihnen auch erlauben, dem Raum selbst einige Skripte hinzuzufügen, so als hätten Sie Objekte in Ihrer Beschreibung, die Verhalten haben.

2

Sie könnten einfach ein System wie ADRIFT verwenden, dann müssen Sie sich nur um die Beschreibungen und die Logik kümmern.

1

Ich empfehle die Verwendung von Motoren, die bereits eine lebendige Gemeinschaft um sie herum haben. Auf diese Weise ist dein Quellcode nur das; der Quellcode des Spiels. Ich würde entweder mit TADS 3 oder Inform 7

gehen
Verwandte Themen