20240102 - Put Parameters in Brackets


What

观看 Masahiro Sakurai on Creating Games 的视频,了解针对特定角色的游戏微调(Fine Tuning)!

内容

K03 - Put Parameters in Brackets

\\
  • 视频开始之前, [[樱井政博]] 再次强调了一个该系列视频之前已经提过的点——游戏的代码和其参数是两回事

    • 代码 code
      • 控制的是逻辑
      • 是游戏中不同命令的指令手册
    • 参数 parameters
      • 控制的是逻辑的表现
      • 是让游戏中的命令鲜活起来的数字
  • 上次提到了一些被所有角色共用的参数

    • 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]]
  • 也许还有甚至更好的办法呢

Author:
Reprint policy: All articles in this blog are used except for special statements CC BY 4.0 reprint policy. If reproduced, please indicate source !
  TOC