Kastle Studio:数值所在的工作台

只有一款游戏时,数值留在代码里也没什么问题。有四款游戏,每款都有数百个单位、能力和武器,改动一个数值就变成了一场寻宝:是哪个文件,谁在用它,游戏里会发生什么变化,而同样的错误会在每款游戏里等着你。Kastle Studio 于 10 月 24 日诞生,就是为了成为这件事的唯一场所:它既展示引擎附带的一切,也是查看、调整和测量各款游戏数值的工作台。它运行在独立窗口中,支持英语和葡萄牙语,并且在其中做出的任何操作,都不会在没有明确按钮的情况下写入代码。
标签页
角色标签展示资料库中的每个生物,按资源包与分组排列,附带头像、按真实尺寸呈现的模型(旁边是一把士兵身高标尺),以及文件中的每个动画片段,并标注引擎用它来做什么。跑步机会让地面以世界速度滑动,同时播放行走动画:脚滑动,就说明步幅不对。身高、步幅、抬脚与色调都可以实时调整。命中标签会在每个攻击动画上标出刀刃落下的瞬间,并通过自动测量读取最快关节打击的终点。竞技场是引擎的真实舞台:岛屿主题、天气、时辰、站立、列队或交战的单位、各种外观的射击,以及渲染器的数值。它配有布局编辑器,可以手动放置单位、防御塔和道具。特效标签把全部 235 种特效各放在一个独立舞台上,可单次播放,也可以循环播放,速度从四分之一到两倍,参数可实时调整,并显示每种特效的粒子、绘制调用和帧耗时。环境展示 1115 个场景模型,每个资源包家族对应一个演示地图。战斗是魔兽争霸III的攻击-护甲对照表,以及英雄面板。音频与设置收尾。
各款游戏的标签页
每款游戏都有自己的标签页:Castle Survivors 最先加入,随后是 Castle Arena、Line Tower 和 Custom Hero Survival。游戏导出一个带有其数据的资源包,Studio 会以 3D 展示单位、游戏图标,并让阵营并列对比,展示按护甲类型划分的 DPS,以及每个战斗单位对其他所有单位的击杀时间矩阵。10 月 25 日起,它不再是只读的:每条记录都有一个编辑框,可以修改名称、文本、数值,并从头像网格中选择 3D 模型;保存到游戏则会把改动写回游戏源代码的正确位置,并重新导出资源包。游戏还可以在一个文件中声明自己的资源包,说明每个部分来自哪里、哪些内容可以编辑,这样就不再需要导出器或导入器。字段可以是推导出的、只读的,或者以游戏中的单位显示(秒而不是 tick)。
先测量,再改动
变更对比标签会把今天的资源包与上一次导出的资源包,或与某个文件进行比较:新增了什么、移除了什么,以及每个数值改前改后的情况。影响预览则回答了最关键的问题:这项改动对对局有什么影响。改动前后的数字会通过 Studio 内置的模拟器运行(在 Castle Arena 中,每个阵营对其他所有阵营,以及每个部队在决斗中的表现,共十个种子;在 Line Tower 中,一座防御塔对抗一波小兵),受改动影响的对阵会按变化幅度排序显示。同一套引擎还能在命令行中化为一道平衡门禁:使用固定种子测试每一组对阵,大约 25 秒完成,如果某组对阵的变化超过 10 个点就判定失败。
与游戏相连
Studio 会与正在开发中运行的游戏通信。在角色标签中调好的内容可以立即发送到游戏,如果你愿意,也可以自动发送;特效可以根据玩家的选择在游戏中播放。反过来,游戏也会报告它的画面:场景、帧率、对局时钟以及玩家当前选中的内容,Studio 会打开对应的记录。录像标签可以打开一份录像或一份不同步报告,展示回合时间轴、每个回合的指令,并且在同一对局的两份报告中,逐项检查两者分歧的位置。
其他功能
每次编辑都可以撤销和重做,按 Ctrl+K 可搜索一切,导弹外观以数据文件的形式存在,模组可以携带这些文件;竞技场布局可以作为模组发布;视觉回归会在固定时刻绘制 Studio 的场景,并与参考图像比对;还有一个 doctor 命令,用于检查刚刚克隆仓库的人的机器环境。对团队来说,Studio 是每款游戏数据的归宿。对游戏来说,在有人按下保存之前,什么都不会改变。
— 团队





