Unterscheiden zwischen mehreren Objekten mit demselben Namen in einem textbasierten Abenteuerspiel / einer interaktiven Fiktion

7

Ich bin gerade dabei, meinen eigenen Parser in Python zu schreiben. Ich habe es geschafft, einige einfache Befehle mit einfachen Ausdrucken zu erstellen, um sicherzustellen, dass sie funktionieren. Da ich beabsichtige, dort zu kämpfen, musste ich einen Befehl schreiben, um etwas anzugreifen. Ich habe das gerade abgeschlossen.

Mein Problem ist: Was soll ich tun, damit der Spieler auswählen kann, welchen Feind er angreift? Es ist ziemlich einfach, wenn es sich um verschiedene Arten von Feinden handelt (z. B. ein Kobold und ein Höhlenbewohner), aber wie soll ich zwischen zwei gleichen Typs (z. B. zwei Höhlenbewohner) unterscheiden?

Vorschläge, die ich bisher hatte: Geben Sie jedem von ihnen ein signifikantes Merkmal (Farbe, Höhe, relative Richtung), aber das nur so weit; Nennen Sie jeden von ihnen (also greifen Sie "Bob" oder "Steve" an). oder die, die ich am meisten favorisiert habe, geben Sie ihnen jeweils eine Nummer (es würde also Höhlenbewohner1, Höhlenbewohner2 usw. geben) - dies könnte jedoch ein gewisses Eintauchen unterbrechen.

PixelArtDragon
quelle

Antworten:

5

Sie haben, wie ich finde, zwei unterschiedliche Probleme. Eines ist ein Designproblem: Wie geht man mit mehreren unterschiedlichen Objekten um, die keine unterschiedlichen sichtbaren Eigenschaften haben? Das zweite Problem ist ein technisches Problem, bei dem es einfach ist, einzelne Objekte aus einer Gruppe über Befehle zu identifizieren.

Technische Lösung

In meinen MUD-Programmiertagen habe ich gerade die Syntax für die Angabe von Ordnungszahlen hinzugefügt. Die meisten MUDs machen dasselbe, obwohl die meisten nur eine knappe Syntax unterstützen.

Beispielsweise können Sie die folgenden Wörter aus einem Feind- oder Gegenstandsargument zu einem Befehl analysieren: erstes, zweites, anderes, drittes, viertes, fünftes usw.

Sie können normalerweise zwischen "Drittel" und "Fünftel" anhalten, je nachdem, wie häufig diese Gruppengrößen in Ihrem Spiel sind. Ich habe "other" als Synonym für "second" verwendet.

Sie möchten auch eine Möglichkeit, die Ordnungszahl nur mit Ziffern einzugeben, damit Sie kein großes Wörterbuch benötigen (oder zumindest die ganze verrückte Logik, um mit englischen Ordnungszahlen umzugehen). Das Parsen von "1st", "2nd", "3rd" usw. ist ziemlich einfach. Es gibt nur wenige Sonderregeln für diese ("11.", "12." und "13.") und der Rest folgt einem einfachen Muster. Wenn Sie diesen Weg gehen, machen Sie die Suffixe optional.

Das Ergebnis ist, dass Sie Sätze eingeben können wie:

attack third goblin
pet other wolf
get 4th sword

Sie können sogar ein führendes "the" analysieren und wegwerfen, wenn Sie den 0,02% Ihrer Spieler gefallen möchten, die das Bedürfnis haben, vollständige englische Sätze auszutippen. (Es ist eine nette Funktion zur Demo, aber wirklich, niemand, der diese Spiele spielt, ist daran interessiert, so viel zu tippen, und heutzutage haben Sie Glück, wenn die Hälfte Ihrer Spieler "viertens" richtig buchstabieren kann, geschweige denn die richtige Grammatik verwenden.)

Typische MUDs und Textabenteuer verwenden eine engere Methode zur Angabe von Ordnungszahlen, normalerweise mit einer speziellen Interpunktion. Beispielsweise müssen Sie möglicherweise einen Punkt oder einen Doppelpunkt oder einen solchen einfügen, gefolgt von einer Zahl, z. B. ".5", und erhalten eine Syntax wie eine der folgenden:

kill .5 goblin
kill :5 goblin
kill 5:goblin

Beachten Sie, dass diese Lösung auch dann funktioniert, wenn Sie unterschiedliche Namen haben. Vielleicht haben Sie einen "großen Ornery-Goblin" und einen "kleinen schüchternen Goblin". Der Spieler möchte das alles nicht eingeben. Der Spieler ist am glücklichsten, wenn Sie Teilspiele unterstützen. Der Spieler möchte dennoch beide Goblins beim Tippen leicht identifizieren können. Ordnungszahlen sind eine Möglichkeit, wie der Spieler dies tun kann, vorausgesetzt, die Goblins haben eine klare Reihenfolge.

Designlösung

Haben Sie keine nicht unterschiedlichen Gegenstände und Kreaturen oder lassen Sie sie, wenn Sie dies tun, implizit als Ganzes handeln. Sie haben dies als Option zur Lösung des Problems aufgeführt. Es ist wirklich gut, aber nur, wenn Sie es vollständig können.

Stellen Sie sich den Fall vor, in dem Sie fünf Goblins in einer typischen MUD-ähnlichen Umgebung haben (miteinander verbundene "Räume"). Der Spieler betritt den Raum und sieht:

[Cavern Entrance]
There are five goblins (hostile) here.
Exits to the north and south.

Der Spieler möchte zuerst angreifen, also tippt er:

attack goblin

Der Spieler greift den ersten Goblin an (zuerst, indem er impliziert, dass kein anderer angegeben wird. Dies ist nur der Goblin, der willkürlich an erster Stelle in der Liste der feindlichen Spielobjekte steht. Der Spieler fügt dem Goblin Schaden zu. Dann sieht der Spieler:

A goblin flees north.

Der Spieler sieht sich noch einmal um und sieht:

[Cavern Entrance]
There are four goblins (hostile) here.
Exits to the north and south.

Ein Kobold floh. Das Problem ist, welcher Kobold war es? Der, den der Spieler verletzt hat? Einer der anderen Kobolde? Der Spieler weiß es nicht. Nehmen wir an, es war der verletzte Kobold für dieses Beispiel.

Der Spieler kämpft weiter:

attack goblin

Der Spieler greift den Goblin an, der jetzt der erste Goblin ist (aber zuvor der zweite Goblin war). Ein paar Momente später sieht der Spieler:

A goblin enters from the north.

Der geflohene Kobold bekam seinen Mut zurück und kehrte zurück. Wahrscheinlich wird es am Ende einer Liste im Spielcode hinzugefügt, also ist es jetzt der fünfte Kobold. Wenn der Spieler noch einmal hinschaut, sieht er:

[Cavern Entrance]
There are five goblins (hostile) here.
Exits to the north and south.

Wieder greift der Spieler an. Nur hat der Spieler keine Ahnung, welchen Kobold er angreift. Ist es der Verletzte? Ein anderer? Wie sagt er, dass einer der Kobolde verletzt ist? Wie kann er diesen Kobold ins Visier nehmen? Wir wissen, dass der Verletzte der fünfte Kobold ist, aber ohne dies zu visualisieren, kann der Spieler es nicht sicher wissen. Und Sie möchten wahrscheinlich eine übermäßig ausführliche Ausgabe vermeiden wie:

[Cavern Entrance]
There are five goblins (hostile) here.
The second goblin is injured.
The third goblin is injured.
The fourth goblin has a nasty rash.
The fifth goblin looks longingly at the second
  goblin, but the second goblin is out of his league.
Exits to the north and south.

Hier kommt die Designentscheidung ins Spiel.

Eine Möglichkeit besteht darin, alle Spielobjekte desselben Typs als eine Einheit zu gruppieren. Daher haben Sie nicht fünf einzelne Goblins mit individuellen Gesundheitswerten. Sie haben eine Gruppe von fünf Goblins mit einem einzigen gemeinsamen Gesundheitswert. Immer wenn dieser Gesundheitswert unter Null gesenkt wird, wird die Anzahl der Goblins um eins verringert und die Gesundheit um den Gesundheitswert pro Goblin erhöht.

Beispiel: Angenommen, Goblins haben 12 Gesundheit und es gibt 5 Goblins. Sie haben ein einzelnes Goblin-Objekt mit einer Anzahl von 5 und einer Gesundheit von 12. Der Spieler fügt der Gruppe 20 Schadenspunkte zu. Gesundheit ist jetzt -8. Ein Goblin wird von der Anzahl abgezogen (es gibt jetzt 4 Goblins) und die Gesundheit wird um 12 erhöht (Gesundheit ist jetzt 4). Wenn der Spieler 4 weitere Schadenspunkte verursacht, wird ein weiterer Goblin getötet.

Das Kombinieren und Aufteilen von Gruppen ist in diesem Fall ein wenig wackelig, kann aber verfälscht werden. Wenn eine zweite Gruppe von Goblins auftaucht, nehmen Sie die Summe ihrer Zählungen und das Minimum ihrer Gesundheit. Wenn eine bestimmte Anzahl von Goblins fliehen sollte, wird ihre Anzahl von der Anzahl abhängig gemacht, die nicht flieht, und ein neues Gruppenobjekt mit dieser Anzahl wird mit voller Gesundheit erstellt (die ursprüngliche Gruppe sollte im Rahmen dieser Operation auch den Raum verlassen, damit Sie werden nicht automatisch wieder zusammengeführt.

Dies verändert natürlich die Dynamik des Spiels ein wenig. Der Spieler kann sich nicht mehr entscheiden, alle Goblins zu schwächen und sie dann alle in einem Flächenangriff zu beenden. Er greift implizit immer den schwächsten Kobold an. Dieser kleine Kompromiss bei der Flexibilität bietet Ihnen jedoch eine viel offensichtlichere, sauberere, verständlichere und zugänglichere Benutzeroberfläche für ein Textspiel. Es liegt an Ihren Designbeschränkungen, zu entscheiden, ob der Kompromiss angemessen ist.

Es gibt andere Variationen dieses Ansatzes, die Sie ebenfalls verwenden können. Alles, was sich einer Gruppe von Personen mit einigen breiten Gruppennummern statistisch annähert, funktioniert einwandfrei. Strategiespiele wie Heroes of Might & Magic oder Warlords machen so etwas. Anstatt sich mit einzelnen Einheiten zu befassen, verfügt der Spieler über "Stapel" von Einheiten, die als eine Einheit behandelt werden.

Sean Middleditch
quelle
1
Ich bin überrascht, nicht #in der Ordnungsnotation zu sehen , z attack goblin #5. Das scheint die natürlichste Sprache auf Englisch zu sein.
Nathan Reed
@ NathanReed Das scheint genauso einfach zu analysieren zu sein wie die anderen. Ich bin mir nicht sicher, ob mir die Idee der "Gruppierung von Einheiten" gefällt, einfach weil ich möchte, dass der Spieler das Gefühl hat, eine bestimmte Kreatur anzugreifen, anstatt nur gegen eine Kraft zu kämpfen, die zufällig aus so vielen Kreaturen besteht. Dies auch, weil ich die generischen Gegenstände einer Kreatur wirklich nicht mag. Warum halten alle Kobolde Speere? Warum nicht Clubs? Ich hatte gehofft, es gäbe eine Möglichkeit zu sagen, dass Sie "den ersten Goblin mit dem Schläger angreifen" wollen und nicht als "Nahkampfangriff mit dem Schläger beim ersten Goblin" interpretieren lassen wollen.
PixelArtDragon
@Garan: Natürlich gibt es einen Weg. Analysieren Sie das einfach. Sobald Sie eine bestimmte Syntax im Auge haben, ist das Schreiben eines Parsers im Allgemeinen recht einfach. Wenn Sie nett genug fragen, könnte ich überzeugt sein, aufzuschreiben, wie ich meinen generischen Phrasenparser gemacht habe. Die Kurzversion ist, dass es sich nur um einen einfachen Back-Tracking-Grammatik-Parser handelte, wie eine sehr vereinfachte Sprache vom Typ regulärer Ausdrücke, die Wörter anstelle von Zeichen mit teilweise Übereinstimmungsunterstützung betrachtete. Sie könnten wahrscheinlich eine viel bessere Version als DFA implementieren.
Sean Middleditch
1
"Und Sie möchten wahrscheinlich eine übermäßig ausführliche Ausgabe vermeiden wie:" ... The fifth goblin looks longingly at the second goblin, but the second goblin is out of his league.- eigentlich klingt das lustig und FANTASTISCH. Wollen.
wjl
3

Anstatt sie durch verschiedene Namen oder Farben zu unterscheiden, können Sie dem Spieler eine Vielzahl von Befehlen mit der Fähigkeit zur Unterscheidung geben.

Wenn beispielsweise "fünf Goblins dich angreifen" , könnten Sie entweder nummerierte oder benannte Befehle erfinden, wie "" ersten Goblin angreifen "oder" Goblin 1 anhängen ".

Dieser Ansatz ist fast so, wie Sie es bereits vorgeschlagen haben, aber anstatt eine langweilige Liste von Feinden zu benennen oder zu präsentieren, teilen Sie dem Spieler einfach den Betrag mit und der Spieler entscheidet, wie er gerne interagiert / tippt.

Sie können auch eine Datenbank mit zufälligen Namen zur Auswahl haben, wenn Sie wirklich eindeutig zwischen Feinden unterscheiden möchten.

cppanda
quelle
Hmm ... ich hatte darüber nachgedacht, war mir aber immer noch nicht sicher, ob es besser sein würde. Ich fand es der dritten Option zu ähnlich. Aber das sagt mir, dass es nicht zu klobig wäre und dass es immer noch intuitiv sein könnte. Vielen Dank!
PixelArtDragon
Natürlich werden Sie auf einige lustige Randfälle stoßen, in denen Sie den ersten Goblin getötet haben, und jetzt müssen Sie entscheiden, was mit den zweiten bis fünften Goblins geschehen soll. Behalten sie ihre Nummern? Oder mischen sie erneut, um die früheren Zahlen zu übernehmen? Wenn ja, woher weiß der Spieler, welches welches ist, damit er weiß, welches er bereits verletzt hat? Und wenn nicht, was passiert, wenn ein anderer Goblin den Raum betritt, wenn die Goblins 2-5 am Leben sind? Wird er die neue Nummer 1 oder ist er jetzt die Nummer 6? Zahlen sind hier wirklich problematisch.
Trevor Powell
1

Die Art und Weise, wie klassische Text-Abenteuerspiele im Infocom- Stil dieses Problem lösten, bestand in der Tat darin, sicherzustellen, dass jedes einzelne Objekt tatsächlich einen Namen hatte, der es ermöglichte, es eindeutig zu identifizieren.

Ein zu beachtendes Detail ist, dass man in Parsern im Infocom-Stil durch eine beliebige Kombination von Wörtern in seinem Namen auf ein Objekt verweisen kann. Wenn der Spieler also auf a red chrysanthemum, a red circular amuletund a stieß green triangular amulet, tippte er entweder:

> get red amulet

oder nur:

> get circular

würde dem Spieler erlauben, das rote kreisförmige Amulett zu nehmen, während er tippt:

> get red

würde (wenn beide Objekte tatsächlich vorhanden wären) eine Klärungsanfrage erzeugen wie:

Which do you mean: the red chrysanthemum or the red circular amulet?

Objekte können auch Synonyme haben, die nicht Teil ihres Anzeigenamens waren. Geben Sie beispielsweise Folgendes ein:

> get red flower

würde sehr wahrscheinlich auch zum Aufnehmen der roten Chrysantheme funktionieren. In der Tat würden die Spieler sehr erwarten (und dies auch immer noch tun), dass jedes gut geschriebene Spiel solche natürlichen Synonyme versteht. In ähnlicher Weise könnte ein Amulett auch mit dem Wort übereinstimmen pendant, insbesondere wenn es irgendwo im Spiel als eines beschrieben oder ähnlich beschrieben wurde, und das kreisförmige Amulett könnte auch als beschrieben werden round.

Tatsächlich wird dieser Analysestil in der modernen interaktiven Fiktion immer noch sehr häufig verwendet. Sie möchten beispielsweise einen Blick darauf werfen, wie der Parser Objekte in Inform 7 erkennt , einer speziellen Sprache, die zum Schreiben dieser Art von Spielen entwickelt wurde.


Ps. Roguelike- Spiele, die normalerweise viel mehr Objekte enthalten, lösen das gleiche Problem im Allgemeinen auf andere Weise: Sie können das gewünschte Objekt aus einem Menü auswählen. Einige von ihnen erlauben es dem Spieler, einzelne Objekte oder sogar ganze Klassen von Objekten zu benennen, um das potenzielle Problem scheinbar identischer Objekte zu lösen, die sich dennoch irgendwie unterscheiden, so dass man z

What do you want to light [p-r]? 
 p - a lamp 
 q - a lamp called "magic"
 r - a lamp called "magic" named "this one's probably cursed"
Ilmari Karonen
quelle
Das wäre also eher so, als würde man "Angriff" sagen und dann mit "Welchen Feind wollen Sie angreifen?" gefolgt von einem Menü der anwesenden Feinde?
PixelArtDragon
Ja, oder zumindest "Angriffsgoblin" eingeben und gefragt werden "Was meinst du: der haarige Kobold, der fette Kobold, der faltige Kobold oder der Koboldchef?" (Beachten Sie, dass der Parser normalerweise nur "haarig" als Antwort akzeptiert, um anzuzeigen, dass Sie den haarigen Kobold angreifen wollten.) Wenn Sie in einem solchen Spiel tatsächlich beispielsweise 3.872 nicht unterscheidbaren Orks gegenüberstehen würden , würden sie dies tun würde wahrscheinlich durch ein einzelnes tatsächliches Monster dargestellt werden (genau wie in dem Link, den ich gegeben habe).
Ilmari Karonen
1

Es sieht so aus, als ob der größte Teil des Territoriums für wichtige Methoden abgedeckt wurde, aber ich dachte, es wäre eine gute Gedankenübung, durchzugehen, wie Sie diese Entscheidung sowieso konzipieren möchten, und mich zu strecken, um einige Methoden abzudecken, die ich nicht gesehen habe.

Perspektiven- und Quantifizierungsmethoden

Einige der Lösungen beinhalten das Umgehen dieser Frage, indem Namen oder Merkmale verwendet werden, um die Monster zu identifizieren. Um die reinste Version dieser Frage zu beantworten, gehen wir davon aus, dass Sie mit N identischen Goblins konfrontiert sind.

Sie sind unweigerlich in einer räumlichen Anordnung angeordnet, und Sie werden am Ende einige Möglichkeiten haben, ihre Anordnung in Bezug auf Sie zu beschreiben:

Top-Down-Perspektive

  1. Sie können mit sich selbst als Totpunkt auf einem Kompass beschrieben werden. Dies ermöglicht die reichste räumliche Anordnung, aber stellen wir uns vor, alle 5 Goblins befinden sich in einer Linie genau nördlich von Ihnen - "Norden" allein reicht nicht aus, um ihre Anordnung zu unterscheiden.

Ich-Perspektive

  1. Sie können in einer informellen Version des Obigen beschrieben werden (links, vorne, rechts, hinten). Dies hat ähnliche Einschränkungen, ist jedoch relativ zu Ihrer Orientierung zu einem bestimmten Zeitpunkt. Dies kann auch auf das beschränkt sein, was Sie "sehen" können (Sie benötigen eine magische Vision, um etwas hinter sich zu zielen.)

Quantifizierung

In beiden Fällen kann die räumliche Anordnung angezeigt werden, es wird jedoch nichts zur Klärung zwischen Vielfachen im selben relativen Raum unternommen. Wir können ein Konzept der Nähe hinzufügen, das entweder allein angewendet werden kann oder um eines der oben genannten Konzepte zu erweitern.

  1. Sie können werden beschrieben in verbaler Form basierend auf ihrer Nähe zu Ihnen. Nah zu fern. Dies hat offensichtliche Quantifizierungsbeschränkungen, aber angesichts einer räumlichen Anordnung erkennen wir, dass die Relevanz von Goblins jenseits des "nächsten" nur relevant ist, wenn Sie eine Art Fernkampfmethode haben, um sie zu treffen (oder eine Methode, um an einer beliebigen Anzahl von dazwischenliegenden Goblins vorbei zu laufen greife den letzten an.) Diese Unterscheidungsmethode ist am besten mit der von anderen vorgeschlagenen "Stapel" -Methode kompatibel.
  2. Sie können anhand ihrer Nähe zu Ihnen quantifiziert werden . Der erste Kobold ist der nächste und der N-te Kobold am weitesten. Dies allein ist wahrscheinlich die gebräuchlichste Methode zur Unterscheidung.

Andere

  1. Möglicherweise können Sie einen neuen Client oder eine neue Technologie verwenden, damit der Spieler auf den Namen klicken muss, um anzugreifen.

Benennungs- und Beschreibungsmethoden

Hier gibt es eine Reihe von Ansätzen, bei denen alle die Notwendigkeit umgangen werden müssen, die Schwäche des Textmediums bei diesen Referenzformen zu beheben:

  1. Stellen Sie sicher, dass die Monster in der Entwurfsphase einzigartig sind und nicht unterschieden werden müssen
  2. Generieren Sie zufällige, lokal eindeutige Eigenschaften, um sie zu unterscheiden
  3. halbzufällige Namen generieren (wahrscheinlich mit Algorithmen, die auf Rasse / Klasse zugeschnitten sind)
  4. Generieren Sie eindeutige Zufallsindikatoren als Metadaten für das Targeting (ein oder zwei Alpha-Zeichen).

Radikalere Lösungen

Alle bisherigen Lösungen basieren auf der Annahme, dass die Aufgabe, andere Objekte mit Aktionen anzuvisieren, die des Spielers ist. Wenn wir dieser Annahme misstrauisch sind, eröffnen sich uns einige neue Möglichkeiten:

  1. Es könnte stattdessen der Fall sein, dass Ihr Spiel in einem Bereich spielt, in dem Kreaturen Aktionen diktieren. Handys entscheiden, ob sie den Spieler angreifen oder mit ihm interagieren, und der Spieler übernimmt eine rein reaktionäre Rolle innerhalb der Welt.
  2. Handys in Ihrer Welt können aufgrund von Maßnahmen, die Sie ergreifen, mit Ihnen in Kontakt treten. Zum Beispiel kann sich ein Wachmann weigern, mit Ihnen Feindseligkeiten zu führen, bis Sie versuchen, sich an ihm vorbei zu schleichen oder an ihm vorbeizuschieben, an welchem ​​Punkt er Sie in einen Kampf verwickelt. Anstatt etwas wie "Spion nach Dorf fragen" zu versuchen, könnten Sie stattdessen "nach Dorf fragen" und allen anwesenden Handys die Möglichkeit geben, zu antworten.
  3. Wir könnten ein langsames, überlegtes Spiel entwerfen, in dem dem Spieler ALLE Optionen in einer Art alphanumerischem Auswahlmodus präsentiert werden. (dh wählen Sie Option 1, um nach Westen zu gehen; Sie gehen nach Westen; was möchten Sie tun: 1 - nach Westen gehen, 2 - nach Osten gehen, 3 - den hässlichen Kobold angreifen, 4 - mit dem hässlichen Kobold sprechen ...)
  4. Wir könnten eine noch bewusstere Version desselben Konzepts entwerfen, bei der der Spieler verzweigte Entscheidungen in einem Stil trifft, in dem er sein eigenes Abenteuer wählen kann. Der Spieler könnte mit der Wahl zwischen einer von zwei Fertigkeiten konfrontiert sein, und anstatt Punkte und Entscheidungsfreiheit zu haben, um die andere später zu trainieren, wird die Fertigkeit, die er nicht gewählt hat, möglicherweise nie wieder präsentiert.

Entscheidung: Mechanik, Langeweile und Eintauchen

Eine nützliche Diskussion mit Ihnen ist wahrscheinlich: Welche Art von Tempo und Umfang möchten wir für unser Spiel haben? Sie könnten Fragen zu Ausführlichkeit und sprachlicher Reinheit stellen, aber ich denke, dies sind Werte, die letztendlich im Einklang mit Ihrer primären Entscheidung darüber stehen müssen, wie Ihr Spiel spielen wird. Wenn Ihr Spiel gelegentliche Kämpfe mit einer spärlichen Sammlung von NPCs beinhaltet, ist es meines Erachtens sehr sinnvoll, ein beschreibendes Auswahlsystem zu haben. Wenn es sich bei Ihrem Spiel um einen Hack-and-Slash handelt, bei dem Spieler Hunderte von Handys pro Stunde töten, ist es entweder mühsam, die Eigenschaften häufig zu lesen und neu einzugeben, oder sie werden auf Auslöser verschoben.

Ein Teil der Diskussion um diese Entscheidung scheint auf der Idee zu beruhen, dass "Get Amulet 2" oder "Get 2nd Amulet" das Eintauchen in die Intrusionsmetadaten irgendwie unterbricht. Ich würde im Gegenteil argumentieren, dass die Frage des Spielparsers, ob ich das rote oder das grüne Amulett gemeint habe, ein weitaus ungeheuerlicherer Angriff auf meine Aufhebung des Unglaubens ist als der erstere - er untergräbt meine Entscheidungsfreiheit und erinnert mich an das allgegenwärtige Rolle des Parsers und spricht mit körperloser Stimme. Wir leben in einer Welt, in der räumliche Entscheidungen sinnvoll sind. Du stehst nicht vor einer Polizeiaufstellung und wählst den Kerl mit verprügelten Levi's, schwarzen Haaren und Pornostache aus;

Fazit

Nur zwei der vorgeschlagenen Antworten lösen tatsächlich die Grundfrage: Wie unterscheidet das Spiel zwischen Verweisen auf ähnliche Objekte, wenn / wann sie auftreten? Eine davon besteht darin, vom Spieler nach der Anfrage eine Klärung zu verlangen, und die andere darin, eine logische räumliche Anordnung anzunehmen und anzunehmen, dass der Spieler die Mehrdeutigkeit nicht klären muss. Es gibt eine Zeit und einen Ort für beide, aber es gibt einen großen Unterschied zwischen den beiden - und ich denke, es liegt wahrscheinlich an den meisten Textspielen, diese Frage im Parser zu beantworten, anstatt zu versuchen, ein Spiel zu erfinden, in dem zwei identische Elemente verwendet werden niemals anwesend sein und sich darauf beziehen müssen.

Ich bin natürlich ein Fan einer numerischen Referenz, aber ich denke, Sie können auch eine Vielzahl der verschiedenen Ideen kombinieren, die aufgetaucht sind, um das Gefühl Ihres Spiels zu formen. Sie können diese Entscheidungen auch dem Spieler überlassen und ihm die Möglichkeit geben, zwischen einem Parser, der auf mehrdeutige Anforderungen mit einer Frage reagiert, und einem Parser, der mehrdeutige Anforderungen mit einer Annahme ausführt, zu wählen. Sie können den Spielern außerdem die Möglichkeit geben, für jedes Element einen Metadatenindikator zu generieren, mit dem sie darauf verweisen können.

abathur
quelle