What
观看 Masahiro Sakurai on Creating Games 的视频,了解针对特定角色的游戏微调(Fine Tuning)!
内容
K03 - Put Parameters in Brackets
\\视频开始之前, [[樱井政博]] 再次强调了一个该系列视频之前已经提过的点——游戏的代码和其参数是两回事
- 代码 code
- 控制的是逻辑
- 是游戏中不同命令的指令手册
- 参数 parameters
- 控制的是逻辑的表现
- 是让游戏中的命令鲜活起来的数字
- 代码 code
上次提到了一些被所有角色共用的参数
- General attack power
这期视频中会关注更加具体的话题,比如与特定角色有关的移动和特殊动作等参数,即基于每个角色的特性的那些独特参数
下面会先介绍樱井他们自己的团队在制作游戏时的工作流
- 游戏导演(Director)/设计师(Designer)的想法会由策划(Planner)转化为参数表(可以将其想象成蓝图)
- 之后由程序员(Programmer)将参数进行功能实现,使得角色能够运行
- 之后会交还给策划对参数进行微调(fine-tuning)
- 如果没有 bug,那么程序的工作就到此结束了
- 但策划会出于平衡性的需要一直调整参数直到游戏完成
虽然可以直接将参数(如下方的例子)写进程序中,游戏依然能够顺利运行,但这就意味着每一次调整都需要经由程序完成,这样不利于开发效率,所以最好还是将其暴露为参数
- 步行速度
- 跑步速度
- 特殊招式的移动速度
也就是说,从程序中建立了一个引用表,让策划能在任何时间方便地调整
那么,接下来讨论参数表
- 为了能够不出错,需要明确列出程序中的哪些部分需要被列为参数,并且确保程序团队对此知情
- 此外,每个参数的命名和意义应该无歧义,无论谁看到这个参数都不该感到疑惑并且能够理解其含义
- 毕竟,通常情况下会有很多人来进行调整
- 根据项目的不同,有不同的办法来处理这样的情况,下面是樱井自己归纳出的三条规则
- 用直白的语言命名
- 将参数用括号括起来
- 用“O”来标记数值型变量
- 例子
- 初始移动的参数 [X 轴方向的出发速度为 O]
- 与此同时,以下列参数减速 [X 轴方向的负加速度为 O/frame]
- 除了参数表,也会制作一个包含了所有参数的文件
- 其中同时列出了参数和其对应的值
- [[fine-tuning]] 的时候只需要调整这些值就可以了
如果你从未使用过参数,你可能会不知道这样做的意义在哪里
- 很多人可能只会写“X-velocity”或者是“X-deceleration”,然后这样的命名这就是对参数的全部说明了, [[樱井政博]] 原来也是这样哈哈
- 然而,通过使用直白的语言对参数进行描述,能够在 [[fine-tuning]] 的时候清晰地知道到底在更改的是什么值
- 最终可能可以实现 通过看到参数列表就知道对应的 spec 是什么
- 值得一提的是,这样的标注方式最有效率的场景是你需要写 unique specs 的时候
- 如果是整个游戏通用的参数可能不太需要这样的标注方式
小结
- [[樱井政博]] 不太确定其他项目是如何处理类似场景的,但他认为这样的办法可以在没有歧义的情况下对参数进行调整
- 正如 spec sheet 一样,如果没有办法清晰地解释其中的内容,那你也没有办法很好地进行 [[fine-tuning]]
- 也许还有甚至更好的办法呢