这是一项副业项目,纯粹出于兴趣。
我正在构建一个基于规则的引擎,用于辅助人工智能的叙事世界。
基本想法是这样的:
我不想再次建立一个开放式的角色扮演游戏(RPG),其中系统可以说任何话,忘记发生的事情,自相矛盾,或者通过规则来发明新的东西。
我正在尝试构建一个小型世界引擎,动态叙事像软件一样被处理。
这意味着:
- 故事是结构化的数据
- 选择有定义的后果
- 玩家决策更新一个正式的世界/会话日志
- 创造性生成可以建议调子、风味、NPC对话或下一幕
- 确定性的规则决定什么实际上变成了真实
- 无效或无法到达的故事路径在玩家看到它们之前就会失败
愿景不是“AI替代游戏设计”。
它更接近:
游戏设计师和创作者定义一个世界的骨架:规则、分支、奖励、角色约束、安全模式、结局和进度逻辑。
然后生成可以在这些边界内运作,而不是在它们周围进行即兴演奏。
我最关心的是信任。
- 这个世界是否可以记住玩家而不重写历史?
- 两个故事路径是否会意外地相互矛盾?
- 玩家是否可以到达一个没有测试的死胡同?
- 生成的内容是否会打破世界状态?
- 我们是否可以在动态叙事系统中重现 bug?
- 我们是否可以在发布之前测试数百个可能的分支?
当前状态
阶段 0 已完成。
这主要是基础工作,而不是游戏美化。
我目前有以下内容:
- beat、选择、后果、会话和安全模式的模式
- 一项横跨文件的验证器,检查故事路径是否可达
- 类型的结果合同,坏输出无法悄悄地通过
- 在核心世界规则周围的自动化测试
- 运行 167 个检查
阶段 0 的目标简单:
在使世界看起来活跃之前,确保基础不虚假。
下一阶段
阶段 1 是它变得可玩的地方。
目标是加载一个世界到浏览器中,作为文本体验玩它,做出选择,观察正式日志更新为世界反应。
非常简单的目的。
还没有精美的图形。
我想在添加呈现层之前确保世界逻辑是坚实的。
长期目标
如果这成功了,我想相同的世界文件最终可以用不同的表面来运行:
- 文本首先
- 2D之后
- 可能有更视觉或空间的东西之后
我还感兴趣:
- 行走故事分支并提交有用 bug 报告的玩测验机器人
- 将世界分叉和混搭像代码一样
- 比较世界结构,而不是仅仅是感觉
- 多个玩家驱动的世界通过门户连接起来
- 可选的身份、声誉或历史可以在受控的方式下在多个世界之间传递
更大的想法是“多个世界,一种结构化的生态系统”。
这不是一个元宇宙的pitch。
这不是一个幻想的文本聊天机器人。
更像是一个行为像可测试软件的叙事世界。
困难问题
这是我希望得到反馈的地方:
- 你能给玩家多少自由,才能保持一致性?
- 记忆如何工作,才能感觉到意义,但不变得混乱?
- 生成应该允许控制什么,什么应该始终保持确定性?
- 如何测试分叉的故事世界,而不用brute forcing?
- fork 或 remix 内容时,创作者的“世界 diff”看起来像什么?
- 如何防止生成的对话或风味创建假的承诺,规则无法支持?
技术方向
目前该项目的重点是引擎层:
- 结构化的世界定义
- 类型的合同
- 验证
- 确定性的状态更新
- 会话日志
- 自动化测试
- 下一阶段将在浏览器中实现文本玩法循环
我故意没有从图形开始,因为我认为这会隐藏更难的问题。
更难的问题不是为一个场景做出听起来酷的东西。
更难的问题是使一个世界在许多选择、分支、修订和生成的时刻保持一致。
我仍然很早,但阶段 0 已完成,阶段 1 是它开始变得可玩的地方。
我很想从任何人那里得到反馈。
评论 (0)