我开始说这个是一个副业项目,仅仅为了好玩。完全不是严肃的“然而”。收集反馈和想法。

我正在构建一个遵循规则的引擎,用于人工智能辅助的叙事世界。

基本想法是:

我不想再建一个开放式的RPG系统,系统可以说任何事情,忘记发生了什么,自相矛盾,或者编造规则来绕过它。

我试图构建一个小型世界引擎,动态叙事被视为软件。

这意味着:

  • 故事是结构化的数据
  • 选择有定义的后果
  • 玩家决策更新一个正式的世界/会话日志
  • 创造性生成可以建议调子,风味,NPC对话,或者下一个节拍
  • 确定性的规则决定什么实际上变得真实
  • 无效或无法到达的故事路径在玩家看不到它们之前就会失败

愿景不是“AI替代游戏设计”。

更接近:

游戏设计师和创作者定义世界的骨架:规则,分支,奖励,角色约束,安全模式,结局,和进展逻辑。

然后生成可以在这些边界内运作,而不是在它们周围进行即兴演奏。

我最关心的是信任。

  • 这个世界能记住玩家而不重写历史吗?
  • 两个故事路径是否会不小心自相矛盾?
  • 玩家是否能到达一个没有被测试的死胡同?
  • 生成的内容是否能破坏世界状态?
  • 我们是否能复制动态叙事系统中的错误?
  • 我们是否能在发布前测试数百个可能的分支?

当前状态

阶段0已经完成。

这个阶段主要是基础工作,而不是游戏.polish。

我目前有:

  • beat,选择,后果,会话和安全模式的模式
  • 一次性文件验证器,检查故事路径是否可到达
  • 类型的结果合同,使坏输出无法悄悄通过
  • 自动化测试,围绕核心世界规则
  • 运行167个检查

阶段0的目标简单:

在使世界看起来像活着之前,确保基础不虚假。

下一个阶段

阶段1是玩家可以玩的阶段。

目标是在浏览器中加载一个世界,作为文本体验玩它,做选择,观看正式日志更新,世界对玩家反应。

非常简单,故意如此。

没有精美的图形。

我想让世界逻辑坚实在添加呈现层之前。

更长期的目标

如果这成功了,我想相同的世界文件最终可以用来驱动不同的表面:

  • 文本首先
  • 2D之后
  • 可能是更视觉或空间的之后

我也对:

  • playtest机器人,走故事分支,提供有用的错误报告
  • fork和remix世界,如代码
  • 比较世界结构,而不是仅仅是感觉
  • 多个玩家驱动的世界通过门户连接
  • 可选的身份,名声,或者历史,可以在受控的方式下在世界之间携带

更大的想法是“多个世界,一个结构化的生态系统”。

不是一个虚拟现实pitch。

不是一个有幻想文本的聊天机器人。

更像的是叙事世界,表现出像可测试软件一样的行为。

我在思考的困难问题

这是我希望得到反馈的地方:

  1. 玩家在保持一致性之前能给予多少自由?
  2. 内存如何工作,使其看起来有意义而不变得混乱?
  3. 生成应该允许控制什么,什么应该始终是确定性的?
  4. 如何测试分支故事世界而不使用强制?
  5. 什么是好的“世界差异”看起来像,当创作者fork或remix内容?
  6. 如何阻止生成的对话或风味创建假定的承诺,规则无法支持?

技术方向

目前该项目的重点是引擎层:

  • 结构化的世界定义
  • 类型的合同
  • 验证
  • 确定性的状态更新
  • 会话日志
  • 自动化测试
  • 浏览器中基于文本的play loop下一个阶段

我故意没有从图形开始,因为我认为这会掩盖更难的问题。

更难的是不仅仅是让某个场景听起来很酷。

更难的是让世界在许多选择,分支,修订,和生成的时刻保持一致。

我还在早期阶段,但阶段0已经完成,阶段1是它开始变得可玩的阶段。

我很想得到任何人的反馈。