EDIT (2): Da es zwei Antworten gibt und ich keine davon akzeptiert habe, dachte ich, ich würde motivieren, was ich hier als Antwort betrachten würde: Entweder wäre etwas, das stark auf einen solchen Ansatz hindeutet, unmöglich / überhaupt nicht nützlich oder alternativ ein Verweis auf eine Forschung (Feld) oder Beispiele eines zumindest etwas allgemeinen solchen Systems jenseits von Text-Abenteuerspielen / interaktiver Fiktion.
Obwohl ich nicht so tun werde, als hätte ich eine eingehendere Untersuchung durchgeführt, habe ich festgestellt, dass alle Spiel-Engines / Frameworks, die ich untersucht habe, so etwas wie eine verherrlichte Grafik-Engine zu sein schienen, in dem Sinne, dass sie von Formen / Entitäten in zwei sprechen oder dreidimensionaler euklidischer Raum mit möglicherweise einer Form von Parallelitätsmodell, das "versteckt" ist und es einem ermöglicht, eine Form von Logik anzugeben, die an diese "Entitäten" gebunden ist.
Die "Spielregeln" und die Erzählung werden dann etwas ad-hoc (in Bezug auf die Engine) über diese Grundelemente geschrieben.
Offensichtlich ist die obige Beschreibung ziemlich vereinfacht (nehmen Sie spezialisiertere Engines wie die Infinity-Engine, die irgendeine Form von Quest- / Erzählsystem enthält), und mir ist klar, dass dieses Modell recht gut funktionieren kann (viele Leute scheinen es verwendet zu haben). .
Ich frage mich jedoch, welche Versuche unternommen wurden, um Engines / Frameworks zu erstellen, bei denen Begriffe wie die (hochrangige) Beschreibung von Spielregeln / -logik oder -erzählung (oder zumindest ein nicht-räumlicher Aspekt des Spiels) im Vordergrund stehen Basis?
BEARBEITEN (4): Dies bedeutet nicht, dass das Spiel keine räumlichen / grafischen Aspekte enthält, sondern nur, dass Sie keine räumlichen Einheiten haben, denen Sie Logik zuordnen, sondern eine Vorstellung von Handlung (oder Gameplay oder "Brettspielregeln") haben. ), die Sie dann eine grafische Schnittstelle zu / Realisierung von beschreiben.
Insbesondere würde mich jeder deklarative Ansatz interessieren, der versucht, eine Art (halb-) formale Semantik einer einigermaßen großen Klasse von Spielen auf eine Weise zu erfassen, die für die tatsächliche Implementierung nützlich ist (im Gegensatz beispielsweise zu einem Framework ausschließlich für qualitative Analyse von Spielen / Erzählungen).
Was ich gesehen habe, sind einige Untersuchungen zur Modellierung / Analyse von Erzählungen mit einem Petri-Netz-basierten Modell und einige interessante Ansätze in Sprachen zum Schreiben interaktiver Fiktion .
EDIT (1): Ich dachte, ich würde ein Spielzeugbeispiel hinzufügen, um es zu veranschaulichen.
Angenommen, wir waren daran interessiert, Abenteuer im Point & Click-Stil zu erstellen (denken Sie an SCUMM-Spiele). Man könnte diese so analysieren, dass sie auf dem Gedanken eines mehr oder weniger linearen und diskreten Fortschreitens von einer Ausgangssituation bis zu einem Ende beruhen .
Wenn man sich auf den Begriff des diskreten Fortschreitens konzentriert und eine gewisse Nichtlinearität zulässt, könnte man die Theorie der (begrenzten) DAGs als eine grundlegende Theorie wählen . Die Angabe eines Spiels dieses Typs in seiner (relativ zu dieser Theorie) abstraktesten Form entspricht somit dem Hinzufügen zusätzlicher Axiome zu dieser Theorie (entweder so, dass die Theorie einen bestimmten Graphen spezifiziert oder einfach genug, um alles zu erfassen, was man für erforderlich hält, um eines zu erfassen "Handlung").
Das Verwandeln in ein tatsächliches Spiel wird nun zum HCI / Interface-Design-Problem, diese Theorie in etwas Spielbares einzubetten (dh ein Modell der Theorie zu erstellen / einen Homo (iso?) - Morphismus von Graphen aus der Sammlung von Benutzeroberflächenzuständen mit Übergängen zu finden in die DAG "Angabe des Spiels").
Im obigen hypothetischen Szenario sehe ich mindestens drei Dinge, die in Bibliotheken erfasst werden sollten. Erstens benötigt man Werkzeuge zum Transformieren / Überlegen von DAGs oder Graphen im Allgemeinen. Zweitens eine Benutzeroberflächenbibliothek, die klug genug ist, um zu überprüfen, ob unsere Darstellung unseres Diagramms als spielbares Spiel das Diagramm tatsächlich modelliert (also zum Beispiel zumindest teilweise / informell, um zu beweisen, dass das Spiel aufgrund der Beschränkungsbedingung keine festgefahrenen Zustände aufweist). . Schließlich könnte eine Sammlung übergeordneter Bibliotheken zur Angabe des Diagramms angegeben werden. B. eine Bibliothek zum Ausdrücken von Zeichen und ihrer Interaktion und zum Erzeugen von (Teilen von) Graphen in Bezug auf solche.
Warum sollte man die "mittlere" Theorie der DAGs beibehalten, anstatt nur die Implementierung auf niedriger Ebene mit einigen Hilfebibliotheken an der Spitze zu haben? Die Antwort sind alle üblichen Gründe für eine formale Semantik. Da wir uns für eine formale Grundlage entschieden haben, können wir bestimmte Eigenschaften des Spiels überprüfen, sodass wir über Optimierungen in der Low-Level-Schnittstellenbibliothek nachdenken können (solange sie die DAG modellieren, können wir tun, was wir wollen), ohne dies tun zu müssen Sorgen Sie sich um die Unvergleichbarkeit mit der Beschreibung auf hoher Ebene (von Zeichen / Dialogen usw.), da diese Beschreibungen selbst solche Strukturen beschreiben müssen.
Ich impliziere in keiner Weise, dass der obige Ansatz im Einzelnen funktionieren würde, und die Idee ist nicht, dass eine DAG das sein muss, was tatsächlich im Gedächtnis bleibt (vielmehr bildet sie etwas, das einem Computerformalismus wie einem Lambda-Kalkül ähnelt). aber ich hoffe, dass dies die Art von Ansatz veranschaulicht, auf die ich neugierig bin.
Kurz gesagt, ich denke, ein alternativer Titel zu dieser Frage könnte gewesen sein: Wie hätte Dijkstra Computerspiele geschrieben?
quelle
Antworten:
Ein kurzer Hinweis zu Erzähl- und Spielregeln: In der interaktiven Fiktion kann argumentiert werden, dass das Spiel das Durchqueren eines Diagramms verzweigter Erzählungen ist, aber letztendlich lebt die Erzählung außerhalb der Spielmechanik - Sie könnten alle Wörter durch etwas Unlesbares ersetzen und Die Schritte zum Beenden des Spiels (oder zum Verlieren beim Spielen) wären jedoch genau die gleichen. Dies impliziert wiederum, dass die Erzählung für das Gameplay irrelevant ist, es sei denn, ein Entwickler entscheidet sich dafür, eine an die andere anzupassen. In Spielen ist die Erzählung im Wesentlichen eine Fassade über der Mechanik, die die Mechanik für einen Spieler, der diese Erzählung mag, überzeugender machen kann, aber das ist alles. Es gibt einige Spiele (obwohl manche sie nicht als Spiele bezeichnen), bei denen die Erzählung die Hauptform der Unterhaltung ist und die Spielmechanik größtenteils oberflächlich ist.Liebe Esther , aber Entwickler brauchen keine formale Methode zum Erzählen von Geschichten mehr als Fiktionsautoren, deshalb werde ich nicht weiter auf die Erzählung eingehen. Im Allgemeinen ist jedes Spiel, das wie eine "spielbare Erzählung" aussieht, ein Baum oder eine Grafik von Spielereignissen, die existieren und ohne die Erzählung überhaupt sinnvoll diskutiert werden können.
Ja, die meisten "Game Engines" sind offensichtlich "Videospiel-Engines", und ihre Hauptverantwortung im Laufe der Zeit bestand darin, die Software-Engineering-Seite eines Videospiels zu vereinfachen, nicht die Game-Seite. Dies ist wohl sinnvoll, da das Software-Engineering der neueste und teuerste und damit riskanteste Aspekt ist. Im Vergleich dazu wird Spieldesign im abstrakten Sinne seit Tausenden von Jahren von Hand ohne die Hilfe von Werkzeugen durchgeführt, was bis zu einem gewissen Grad erklären kann, warum dies weiterhin der Fall ist.
Soweit ich weiß, gab es nur wenige ernsthafte Versuche, von denen keiner erfolgreich war.
Storytron ist einer. "Im Gegensatz zu traditioneller interaktiver Fiktion geht es in einer Storyworld mehr darum, die Handlungen und Reaktionen der Schauspieler und ihre Emotionen und Neigungen zu modellieren, als um die Geographie der Spielwelt oder die weltlichen Objekte, die sie bevölkern." Es folgt eine frühere Anstrengung namens Erasmatron, die nicht wirklich erfolgreich war, und Storytron sieht auch nicht wirklich nach Erfolg aus. Der folgende Artikel ist eine gute Lektüre dazu: Chasing the Dragon
Auf einer weniger ehrgeizigen Ebene gibt es viele Leute, die sich einfache Möglichkeiten ausgedacht haben, einfache Spiele darzustellen. Ein Artikel von vielen ist der folgende: Multigame - Eine sehr hohe Sprache für die Beschreibung von Brettspielen (Link befindet sich hinter einem Login, aber Sie können möglicherweise danach suchen), aber alles, was Sie am Ende haben, ist ein computerlesbarer Satz möglicher Elemente Zustände, Zustandsübergänge und Siegbedingungen oder Funktionen zum Halten von Punkten - gut für diskrete Brettspiele wie Schach oder Kartenspiele wie Poker, aber sie verallgemeinern sich nicht auf Spiele mit großen Mengen an kontinuierlichem Zustand oder solche mit mehr Semantik wie Simulationen (z. B. Shooter-Spiele) oder Sport (z. B. Rennspiele). Solche Spiele können nicht angemessen über einen einfachen Baum von Spielzuständen dargestellt werden.
Eine Möglichkeit, sich dem Verständnis dieser komplexeren Systeme anzunähern, besteht darin, zu versuchen, jede vorhandene Mechanik in eine von mehreren Grundformen zu kategorisieren und dann herauszufinden, wie die Grundformen kombiniert werden können, um ein komplexeres Gameplay zu bilden, unter der Annahme, dass das gesamte Gameplay dies kann aus diesen Grundeinheiten oder Kombinationen davon bestehen. Dan Cook hat einen Artikel namens " Was sind Spielmechaniken ?" und ein Follow-up " Die Chemie des Spieldesigns"die versuchen, diesen kompositorischen Ansatz für das Spieldesign zu dokumentieren. Theoretisch könnte es möglich sein, darüber ein deklaratives System aufzubauen, aber in der Praxis bilden die Mechaniken nur einen kleinen Teil des Spiels, so dass die resultierende Ausgabe vermutlich eingeschränkt wäre innerhalb eines Präsentationsrahmens, der nicht flexibel genug wäre, um die Aufmerksamkeit der meisten Spieler auf sich zu ziehen.
Andere Versuche, Spieldesignkonzepte zu formalisieren, werden oft als "Spielgrammatik" bezeichnet - ein solcher Artikel heißt " Multiplayer-Spielatome ", bezieht sich jedoch auf verschiedene frühere Arbeiten.
Das Problem hierbei ist, dass der Computer dem Prozess nicht viel hinzufügt. Entwickler solcher Spiele erstellen häufig genau dies, eine Grafik in digitaler oder physischer Form, die den Fluss durch das Spiel zeigt. Es ist trivial zu sehen, ob das Spiel theoretisch abgeschlossen werden kann oder nicht. Selbst das Codieren der verschiedenen Regeln für das Durchlaufen eines Point-and-Click-Abenteuers ist trivial. Der schwierige Teil besteht darin, es einer interessanten Erzählung zu folgen, es in eine faszinierend aussehende Welt zu versetzen, die Kunst- und Sound-Assets zu erstellen, um das Spiel und die Benutzeroberfläche richtig darzustellen, sowie die verschiedenen Software-Engineering-Aufgaben, die alles zusammenhalten. Der gerichtete Graph signifikanter Zustände durch das Spiel ist normalerweise relativ trivial; Es ist das ganze Zeug, das das Problem ist. Und deshalb gibt es nicht viel Interesse daran,
Ich persönlich arbeite derzeit mit einem Team an einem Produkt namens StorybricksDies versucht, die Konstruktion eines interessanten Gameplays durch Angabe verschiedener Regeln zu ermöglichen. Diese Regeln können den Ausgangszustand einer Person, ihre Bedürfnisse usw. angeben. Es ist einfach, diese Regeln zu übernehmen und zu überprüfen, ob und wie die Bedürfnisse einer Person erfüllt werden können, und daher deklarativ Aufgaben zu erstellen, die im Spiel erledigt werden müssen. Dies selbst schafft jedoch nicht von Natur aus ein interessantes Gameplay, da die Spieler das Muster erkennen und aufhören, es zu genießen, sobald Sie die Dinge auf das Niveau von "X braucht Y - holen Sie es für sie" abstrahieren. (Zum Beispiel: Menschen, die die automatisch generierten Quests in Skyrim schnell satt haben, weil sie sehen konnten, dass eine prozedural generierte Mission im Vergleich zu den von Designern erstellten keine inhärente Bedeutung hat. ) Unsere Aufgabe wird es also sein, KI-Methoden zu verwenden, um diese Situationen interessanter zu machen, und daran arbeiten wir noch. (Storybricks befindet sich noch in einem sehr frühen Alpha-Stadium). Unsere Forschung zeigt jedoch, dass nur wenige Menschen so etwas versuchen und dass es ein sehr schwieriges Problem ist.
Ein weiteres Problem des deklarativen Ansatzes besteht darin, dass er nicht sehr brauchbar ist. Wissenschaftler mögen es, weil es einfach zu verarbeiten ist, zum Beispiel um zu beweisen, dass eine Situation lösbar ist oder dass eine Reihe von Logikregeln konsistent sind. In der realen Welt sind jedoch weder Computerspielprogrammierer noch Endbenutzer mit einer deklarativen Darstellung, die sich auf die Ergebnisse konzentriert, so vertraut wie mit einer zwingenden Darstellung, die ihnen sagt, wie sie handeln sollen, damit die Ergebnisse erzielt werden. Die aktuellen Top-10-Programmiersprachen sind alle unerlässlich , und Anweisungen für die reale Welt sind im Allgemeinen auch zwingend erforderlich, unabhängig davon, wie man einen Kuchen backt oder Möbel baut. Dieser Mangel an Begeisterung an beiden Enden des Spektrums bedeutet, dass es keinen kommerziellen Anreiz gibt, formale Spezifikationen für moderne Spiele zu erstellen, und dies dürfte sich in naher Zukunft nicht ändern.
quelle
Ich habe eine Weile darüber nachgedacht, wie ich antworten soll, und ich bin mir nicht ganz sicher, wie ich das ausdrücken soll.
Das ist eine gute Frage. Leider läuft die Antwort darauf hinaus, dass es entweder keinen Sinn macht, irgendetwas zu programmieren, geschweige denn eine Spiel-Engine auf diese Weise, oder dass die Dinge bereits so sind.
Diese Betonung scheint auf Grafiken zu liegen, da es eine Möglichkeit geben muss, die physische Existenz von Objekten zu definieren. Hier beginnen die Dinge existenziell zu werden, denn wir sprechen wirklich von einer Darstellung der Dimension, aber lassen Sie uns dies vorerst einfach ignorieren. Der Hauptpunkt ist, dass dies etwas ist, das wirklich ziemlich involviert ist. Die Darstellung des Raums zuzulassen, wird etwas sein, das von Natur aus einen Großteil der Programmierung einer Spiel-Engine in Anspruch nimmt. Und wenn Designer schöne Szenen machen wollen, brauchen sie viel Kontrolle darüber, wie die Dinge platziert werden. Sie werden also eine Menge Dinge über Grafiken sehen.
Das ist also die niedrige Seite der Dinge. Jemand muss viel über all diese kleinen technischen Probleme nachdenken.
Was Erzähl- und Spielregeln angeht? Das liegt außerhalb des Rahmens, den eine Spiel-Engine leisten soll. Dies ist der Teil, in den die Entwicklungsgruppe kommt.
Darüber hinaus wurde nicht viel darüber nachgedacht, wie Ideen durch Programmierung dargestellt werden können. Das ist wirklich das, was die Geschichte der Informatik ist . Aus diesem Grund verfügen Game Engines häufig über Schnittstellen zu Hochsprachen. Es ist einfacher, Gedanken durch sie darzustellen.
Könnte in diesem Sinne eine Sprache speziell für Spiele mit narrativem Schwerpunkt entwickelt werden? Ich würde wahrscheinlich nicht sagen. Auch hier kommt es auf die Repräsentation an. Die Sprache muss in der Lage sein, Details so zu beschreiben, dass der Computer weiß, was damit zu tun ist. Wenn der Zweck darin besteht, eine Sprache zu erstellen, die für die Erstellung von Spielen spezifisch ist, sollten alle Entwurfsentscheidungen darauf ausgerichtet sein.
Und wieder gibt es eine große Auswahl an Sprachen. Und mehr Menschen als nur die in der Spielebranche haben sie entwickelt. Es ist im Allgemeinen sinnvoll, eine davon zu verwenden.
Zusammenfassend haben Sie eine interessante, aber sehr schwierige Frage gestellt. Und ich bin mir nicht ganz sicher, was es ist oder ob ich es tatsächlich beantwortet habe.
* edit: Im Nachhinein stelle ich fest, dass ich nur 3D-Game-Engines in Betracht gezogen habe, als ob sie die einzigen wären, die existieren. Bei einigen Spielen handelt es sich überhaupt nicht um eine Person, die in einem physischen Raum agiert. Obwohl ich in solchen Fällen nicht sicher bin, ob eine Spiel-Engine viel beitragen würde.
quelle
Zu Beginn der Geschichte des Hobby-Computing (dh der 80er Jahre) gab es einige kommerzielle Spieleentwicklungskits für Text- und Sprite-basierte Spiele. Die Sprite-basierten waren den aktuellen "Grafik-Engines" sehr ähnlich.
Der andere Typ umfasste Dinge wie Parser in natürlicher Sprache. Dieser Typ scheint in den modernen "Level-Editoren" weiterzuleben. Die meisten davon scheinen Unterstützung für etwas wie Lua- oder Python-Skripte zu enthalten. Ich würde auch bemerken, dass ich bei der Bearbeitung auf Open Source-Ebene nicht viel Aktivität sehe, aber das liegt daran, dass diese Dinge normalerweise sehr eng mit den Besonderheiten des betreffenden Spiels verbunden sind. Ich denke hier an so etwas wie die Elder Scrolls-Baukästen.
Der Kinect kann den Parser zurückbringen. Als Fan des alten textbasierten Abenteuerspiels freue ich mich auch hier über Bethesdas Regie. Es ist mit Sicherheit proprietär, aber vielleicht ein junges Genie ...
quelle