РЕДАКТИРОВАТЬ (2): Поскольку есть два ответа, и я не принял ни одного из них, я решил, что мотивирую то, что я считаю здесь ответом: либо что-то, настоятельно рекомендующее любой такой подход, было бы невозможно / вовсе не полезно, либо альтернативно, ссылка на исследование (область) или примеры, по меньшей мере, несколько общей такой системы, помимо текстовых приключенческих игр / интерактивной фантастики.
Хотя я не буду притворяться, что провел более глубокое исследование, я заметил, что все игровые движки / фреймворки, на которые я смотрел, казались чем-то вроде прославленного графического движка в том смысле, что они говорят о формах / сущностях в двух направлениях. или трехмерное евклидово пространство с, возможно, некоторой формой модели параллелизма, «заправленной», позволяющей определить некоторую форму логики, прикрепленной к этим «сущностям».
Игровые «правила» и повествование затем пишутся в некотором роде (в отношении движка) поверх этих примитивов.
Очевидно, что приведенное выше описание является довольно упрощенным (возьмите более специализированные механизмы, такие как механизм бесконечности, который включает в себя некоторую форму системы квестов / повествований), и я понимаю, что эта модель может работать довольно хорошо (многие люди использовали ее) ,
Мне, однако, интересно, какие попытки были предприняты для создания движков / фреймворков, которые принимают такие понятия, как (высокий уровень) описание правил игры / логики или повествования (или, по крайней мере, непространственного аспекта игры) в качестве основного основа?
РЕДАКТИРОВАТЬ (4): Это не означает, что игра не будет включать в себя какие-либо пространственные / графические аспекты, просто вместо того, чтобы иметь пространственные объекты, с которыми вы связываете логику, у вас есть представление о сюжете (или игровом процессе, или «правилах настольной игры»). ), который вы затем описываете графический интерфейс / реализацию.
Особенно меня заинтересуют любые декларативные подходы, которые пытаются охватить какую-то (полу) формальную семантику некоторых достаточно больших классов игр таким образом, чтобы это было полезно для реальной реализации (в отличие, например, от фреймворка, предназначенного исключительно для качественный анализ игр / повествование).
То, что я видел, - это некоторые исследования по моделированию / анализу повествования с использованием модели на основе сети Петри и некоторые интересные подходы в языках для написания интерактивной художественной литературы .
РЕДАКТИРОВАТЬ (1): Я решил добавить игрушечный пример для иллюстрации.
Скажем, мы были заинтересованы в создании приключений в стиле point & click (вспомним игры SCUMM). Можно проанализировать их как основанные на понятии более или менее линейного и дискретного перехода от начальной ситуации к концу.
Сосредоточив внимание на понятии дискретной прогрессии и учитывая некоторую нелинейность, можно выбрать теорию (ограниченных) DAG как основную теорию. Таким образом, определение игры такого типа в ее (относительно этой теории) наиболее абстрактной форме соответствует добавлению дополнительных аксиом к этой теории (либо для того, чтобы теория задала конкретный граф, либо достаточно просто для того, чтобы захватить все, что, по вашему мнению, требуется для захвата игр). "сюжет").
Превращение этого в реальную игру теперь превращается в проблему проектирования интерфейса HCI / интерфейса, заключающуюся в том, чтобы внедрить эту теорию в нечто играбельное (то есть построить модель теории / найти гомо (изо?) Морфизм графов из набора состояний пользовательского интерфейса с переходами в DAG "указав игру").
В приведенном выше гипотетическом сценарии я вижу, по крайней мере, три вещи, которые должны быть доступны в библиотеках. Во-первых, нужны инструменты для преобразования / рассуждения о DAG или графах в целом. Во-вторых, библиотека пользовательского интерфейса, достаточно умная, чтобы помочь в проверке того, что наше представление нашего графа как играбельной игры фактически моделирует граф (таким образом, например, по крайней мере, частично / неформально, доказательство того, что игра не имеет застрявших состояний из-за условия ограниченности) , Наконец, коллекция библиотек более высокого уровня для определения графа может быть предоставлена; такие как библиотека для выражения символов и их взаимодействия и создания (части) графов в терминах таковых.
Зачем сохранять «среднюю» теорию DAG, а не просто низкоуровневую реализацию с некоторыми справочными библиотеками? Ответ - все обычные причины формальной семантики. Учитывая, что мы определились с формальной основой, мы можем проверить некоторые свойства игры, что позволяет рассуждать о таких вещах, как оптимизация в низкоуровневой интерфейсной библиотеке (пока она моделирует DAG, мы можем делать то, что хотим), без необходимости беспокоиться о несопоставимости с описанием высокого уровня (персонажей / диалогов и т. д.), так как эти описания сами должны описывать такие структуры.
Я никоим образом не намекаю на то, что вышеприведенный подход в конкретном случае сработает, и идея не в том, что DAG должен быть тем, что на самом деле хранится в памяти (скорее он образует нечто похожее на вычислительный формализм, такой как лямбда-исчисление), но я надеюсь, что это иллюстрирует тот подход, который мне интересен.
Короче говоря, я думаю, что альтернативный заголовок к этому вопросу мог бы звучать так: как Дейкстра написал бы компьютерные игры?