Skip to content

指导原则

AI 的目标是求胜

在一个理想的世界里,AI 能通过游戏性的"图灵测试"——你分辨不出自己是在和人类还是 AI 对战。

例如:

  • 不会问"你要拿什么换这个"
  • 如果你的军事力量薄弱,AI 会主动进攻你(你落难时它真的会踩你一脚)

在交易方面,"可被利用"与"没意思"之间有一条微妙的线——普通玩家可能出于原则拒绝你的任何交易。 我们不希望 AI 也这样,这让我们稍微容易被利用,但这是我们清醒认识到的权衡。

模组哲学——最少对象,最大交互

作为新模组制作者,很容易迷失在数量庞大的 unique 中。

我们的目标是把 unique 的数量降到最低,但通过允许组合来促成"涌现式模组"。

例如:

  • unique 中的参数 > 多个 unique
  • 条件应该是 Conditionals(条件修饰符),这样它们可以应用到所有 unique 上
  • 触发型 unique 与 unique 触发器——所有组合
  • 单位行动修饰符,而不是为特定单位行动设置特殊属性

尽早崩溃,经常崩溃

崩溃堆栈离解决方案已经走了一半——一个能稳定复现它的存档则完成了 90%。

每当意外情况发生——游戏到达了非法状态——我们就应该崩溃,让问题尽早被修复。坚持错误的运行状态会让最终的问题离根因更远,并使调试复杂化。

然而,我们绝不应因为糟糕的用户输入而崩溃。糟糕的输入——例如定义不当的模组——预期内的,应该妥善处理。

这类似于 http 4XX 和 5XX 的区别——坏输入在与外部世界的接口处是预期的,坏内部状态则是意外的。

两种情况的共同目标是尽量减少崩溃,只是方法不同。