编辑(2):由于有两个答案,但我没有接受任何答案,所以我想激发我在这里考虑的答案:强烈暗示任何这种方法都是不可能的/根本没有用的,或者替代地,除了文本冒险游戏/互动小说之外,还涉及研究(领域)或至少某种程度通用的此类系统的示例。
虽然我不假装自己进行了更深入的研究,但我注意到,我研究过的所有游戏引擎/框架似乎都像是一个荣耀的图形引擎,从某种意义上说,它们将形状/实体分为两个部分或三维欧几里德空间,可能带有某种“并入”并发模型,允许人们指定某种形式的逻辑附加到这些“实体”上。
然后,在这些原语之上以某种即席(相对于引擎)的方式编写游戏“规则”和叙述。
显然,上面的描述相当简化(采用更专业的引擎,例如infinity引擎,其中确实包含某种形式的任务/叙事系统),我意识到该模型可以很好地工作(很多人似乎都在使用它) 。
不过,我想知道是如何尝试创建引擎/框架,将诸如(高级)游戏规则/逻辑或叙述(或至少是游戏的非空间方面)的描述等概念作为主要内容基础?
编辑(4):这并不意味着游戏将不包含任何空间/图形方面,仅是您具有情节(或游戏玩法或“棋盘游戏规则”),而不是拥有与逻辑关联的空间实体),然后您将描述/实现的图形界面。
尤其是我对任何声明性方法都感兴趣,这些方法试图以一种对实际实现有用的方式(相对于专门用于游戏的框架)来捕获相当大类游戏的某种(半)形式语义。游戏/叙事的定性分析)。
我所看到的是使用基于Petri网的模型对叙事进行建模/分析的一些研究,以及一些用于编写交互式小说的语言中有趣的方法。
编辑(1):我想我会添加一个玩具示例来说明。
假设我们对创建指向和点击风格的冒险游戏感兴趣(想想SCUMM游戏)。人们可能会根据从开始情况到结束情况或多或少线性和离散的进展这一概念来分析这些情况。
着眼于离散级联的概念,并考虑到一些非线性,可以选择(有界)DAG的理论作为基础理论。因此,以(相对于该理论)最抽象的形式来指定这种类型的游戏,就相当于向该理论添加了其他公理(以使该理论指定一个特定的图,或者足以捕获一个人认为需要的图形)。 “情节”)。
现在,将其变成实际的游戏会变成HCI /接口设计问题,即将该理论嵌入到可玩的事物中(即,建立理论模型/从具有过渡的用户界面状态集合中找到图的同构(等值)同构)进入DAG“指定游戏”)。
在以上假设的场景中,我可以看到至少三件事应该可以在库中捕获。首先,通常需要一种工具来对DAG或图形进行转换/推理。其次,一个足够聪明的用户界面库可帮助验证我们作为可玩游戏的图形表示形式是否为图形建模(例如,至少有一部分/非正式地,由于有界条件,证明游戏没有卡死状态) 。最后,可以给出用于指定图形的高级库的集合;例如一个用于表达字符及其相互作用并以此生成(部分)图形的库。
为什么要保留DAG的“中间”理论,而不是仅在底层实现上添加一些帮助库呢?答案是形式语义的所有常见原因。鉴于我们已经决定了正式的基础,我们可以验证游戏的某些属性,从而使人们能够对低级接口库中的优化之类的东西进行推理(只要它对DAG进行建模,我们就可以做我们想做的事情),而无需担心与(字符/对话等)高级描述不具有可比性,因为这些描述本身必须描述这种结构。
我绝不暗示上述方法在特定情况下会起作用,并且并不是不是DAG必须是实际存储在内存中的东西(而是它类似于lambda演算之类的计算形式主义),但我希望这能说明我好奇的那种方法。
简而言之,我想这个问题的替代标题可能是:Dijkstra将如何编写计算机游戏?