创作数据应保持简洁2026年5月20日在动作角色扮演游戏ARPG里构建工艺Buildcraft乍看是内容问题随着组合增加情况不同。例子节选自用Zig编写的ARPG游戏引擎技能、辅助、物品和运行时规则需相互组合。起初各规则看似没问题如辅助增加伤害、让投射物穿透目标等但组合出现后问题就来了像不同效果的顺劈斩、投射物技能等。一种做法是增加特殊情况处理但游戏元素多了会棘手。更有效的思路是把构建工艺视为小型编译管道创作内容是源输入辅助等产生事实并整合到派生缓存战斗环节使用缓存。在这种设计下技能解析时问题转化为底层运行时数据。创作数据应保持简洁辅助定义是词汇范围较窄的数据并非可执行游戏玩法代码。一个辅助可产生属性修改和行为改变不直接访问投射物存储等。给出辅助定义示例可看作内容而非行为代码适用于标记为近战和区域的技能。未来技能可与现有辅助规则配合面向玩家的标签和运行时适用性标签不必相同。辅助编译成行技能插槽变化时需清除旧编译输出才能生成新输出。这一步将装备技能和激活辅助转化为属性修改行和行为产生行。active_support_mask很重要宝石等级决定辅助插槽解锁。删除步骤和生成步骤同样重要否则陈旧编译输出会影响结果。行需要来源信息编译管道保留源标识属性修改行显示数值来源更有用后续系统可利用此信息移除行、重建缓存并解释结果。没有来源信息系统无法回答更有价值的问题。实体范围和技能范围是不同的通道有些辅助影响整个实体有些只影响被支持技能这种区别编译到属性修改行中。编译管道明确保留范围信息体现了作用域、命名空间和重写。行为产生携带形状而非行为代码属性行相对简单行为改变更复杂。它们通过单独产生类型整合到技能缓存中缓存条目是技能插槽的运行时摘要分离很重要战斗环节使用摘要检查和清理用源行。脏域限制重建范围模拟过程不应每帧都重建所有派生事实变更标记脏域重建步骤处理受影响实体这是微型增量编译。部分为了性能和明确职责使用属性的系统无需询问数据更新情况。标签是适用性过滤器而非技能矩阵行为重建步骤将行整合到技能缓存缓存从行中重建适用性基于标签。内容可按标签描述避免庞大技能/辅助标识矩阵便于找到辅助应用错误的问题。标签粒度是棘手部分但问题范围相对较小。规则重写与属性计算分离有些构建效果改变其他事实解释方式如“法术伤害适用于近战”。行为重建有部分处理此问题源事实产生规则缓存重建解释规则这种规则来自创作物品效果等特殊情况限制在一层。解析过程使用编译后的事实技能解析时投射物路径从缓存开始投射物传递过程使用关心的字段此层面基本无辅助ID关键路径使用编译后的事实源归属信息用于清理等。限制特殊情况内容契约有限制行为缓存有固定设置。具体限制取决于游戏重要的是限制可见若内容超出限制内容模型和引擎契约需一起改变。设计现状目前编译管道各阶段有职责创作数据声明式存储保留源标识等。设计有前景添加辅助只需添加源事实。存在标签粒度等问题但比一次性战斗分支好处理。设计提供测试切入点和处理特殊情况位置目标是避免不良情况是带着剑的小型编译器。