写这篇博客的初衷,主要是想对自己这几年的数值设计工作进行一个记录、总结和提炼,以后能够温故知新,不断提升自己的设计水平。这里,我将一款端游的数值设计划分为以下几个主要的模块:战斗体系、经济体系(宏观层面)、消耗模块(成长线、日常消耗、其他消耗)、产出模块(任务、活动、玩法)、数值调优、数值配置。
- 战斗体系:关乎玩家在游戏内的战斗体验(PVP、PVE),涉及到评判一个角色的战斗能力(属性)。
- 经济体系(宏观层面):涉及到游戏内资源种类的产出、资源种类的回收、资源种类的转化流通,宏观层面上维持游戏经济循环的稳定运转。
- 消耗模块(成长线、日常消耗、其他消耗):关乎具体资源的回收,涉及到玩家在游戏中的道具消费。
- 产出模块(任务、活动、玩法):关乎具体资源的产出,同样涉及到玩家在游戏中的道具消费。
- 数值调优:数值架构搭建完成后的数值优化调整工作,涉及战斗体系、经济体系(产出、消耗)的数值优化。
- 数值配置:数值调优后的数值代入工作,设计前期和程序的规划以及后续的刷表工作。
接下来,分别对这六个模块进行数值设计。
战斗体系
- 确定角色可能拥有的各种属性
- 属性的名称(种类)
- 上层属性
- 属性的名称(种类)
- 影响底层属性数值,不直接进入战斗计算
- 直接进入战斗计算
- 属性与属性之间独立不相关
- 数值型
- 百分比型
- 属性在什么时候进行计算
- 属性在进行战斗计算时的位置
- 伤害判定规则
- 命中、闪避、暴击、格挡判定
- 值转率计算公式:涉及命中、闪避、暴击、格挡值转率
- 伤害计算公式:涉及生命、攻击、防御及相关属性的计算
- 稳定期
- 成长线、任务活动玩法绝大部分均已开放
- 相同标准角色的PK时间预期
- 标准角色在稳定期(比如65级)的属性数值预期
- 优化调整战斗公式中的参数
- 优化调整标准角色的属性数值
- 曲线拟合
- 以标准职业为基准,数值差异化的程度为一比例关系,假定为k
- 某职业的标准属性数值=标准职业的标准属性数值×k
- 这一步也可以放到数值调优部分来做,因为这里只是理论数据,而且也没有把技能BUFF考虑进来
- 玩家杀怪时间/刀数预期
- 怪砍玩家伤害预期(结合玩家标准生命值)
- 以标准怪物为基准,数值差异化的程度为一比例关系,假定为s
- 某怪物的标准属性数值=标准怪物的标准属性数值×s
- 这一步需要在数值调优时不断优化标准怪物数值
经济体系
- 确定消耗模块的物品(材料、货币、经验)
- 确定产出模块的物品(材料、货币、经验)
- 确定不同物品之间的转化流通关系
- 结合设定的一些规则(比如绑定规则),对上面三者进行优化调整,保证经济循环的健康、游戏的稳定
消耗模块(成长体系)
- 开放等级设定
- 不同成长线在什么等级下进行开放
- 规划不同成长线的性价比顺序
- 设定完性价比顺序后,需要选取一条成长线作为基准消耗模块,其他消耗模块都会参照基准消耗模块进行数值设定工作,以及后续的数值优化调整工作
- 设定标准角色在每条成长线中所处的状态(比如:强化等级处于哪一阶段)
- 规划不同成长线拥有的属性种类
- 设定不同成长线中各属性数值在标准属性数值内的占比
- 设定每条成长线下能够获取到的属性最大值
- 通过设定比例k来求取,属性最大值=属性标准值*k
- 对每一条成长线,单独进行建模处理(VBA)
- 计算标准玩家的物品消耗、极限玩家的物品消耗
- 优化、调整数值
- 这里,可以同时获得其他层次玩家的性价比(需要对层次状态进行设定)
- 对比之前设定的性价比,进行数值优化调整,直到满足设定的预期
产出模块(任务、活动、玩法)
- 开放等级设定
- 不同任务、活动、玩法在什么等级下进行开放
- 规划不同任务、活动、玩法的性价比顺序
- 设定完性价比顺序后,需要选取其中一个作为基准产出模块,其他产出模块都会参照基准产出模块进行数值设定工作,以及后续的数值优化调整工作
- 设定标准角色在每个产出模块中所处的状态(奖励的多少)
- 对每个产出模块,单独进行建模处理(VBA)
- 计算标准玩家能够获得的奖励数量、各产出模块最高奖励数量
- 优化、调整数值
- 对比之前设定的性价比,进行数值优化调整,满足设定的预期
数值调优
- 战斗体系数值调优
- 基于消耗模块,得出标准角色在各个等级下的实际标准属性数值
- 结合技能、BUFF,优化调整技能或BUFF参数、战斗公式参数,使之满足设定的标准角色数值预期
- 结合不同职业间平衡性的需求,优化调整其他职业在各个等级下的实际标准属性数值
- 基于1中得出的实际标准属性数值,优化调整标准怪物的属性数值,同时也就获得了其他种类怪物的优化属性数值
- 经济体系数值调优
- 结合物品的每日产出以及标准玩家对物品的需求量,得出物品需求的时间长度
- 标准玩家的消费将物品需求的时间长度压缩为0
- 由此,物品的定价=标准玩家的消费/物品需求量
- 对比计算得到的物品定价以及设定的物品定价,不断进行产出模块、消耗模块两者的数值优化(基本上是对之前设定的数值进行反复调整,找出最优值的过程)
数值配置
- 代码完成前
- 在程序进行数值方面的代码实现时参与其中
- 规划需要用到的数值字段、表结构
- 代码完成后
- 数值设计表中的数值转移到数值配置表
- 刷表生成配置文件,代入游戏进行体验验证
- 在进行数值设计的过程中,不管是战斗数值的设计,还是经济数值的设计,最好应该建立一个标准的参照物,相同类型的数值以建立的参照物为基准进行设定,以及后续的数值优化调整。比如:设定某一职业(战士)为标准职业,设定某个副本的普通难度为标准副本,设定某个任务的奖励为标准产出模型等等。
- 搭建数值框架时,一定会遇到数值设定问题(我们常说的拍脑袋)。数值设定的过程,是一个把握游戏内数值感受的过程,应该从玩家最直接的数值感受为出发点,进行数值设定。比如:我们确定攻防血的比例应该是什么样的,这时需要进行数值设定,玩家最直接的数值感受就是PK时的战斗时长是多久,站桩输出需要攻击多少次才结束战斗。
- 数值设计离不开数学建模,通过建立数学模型,能够更加清楚模型内部的数据流,对后续的数值优化调整提供了极大的便利。数学建模需要对战斗规则、系统规则、玩法规则、BUFF规则等等各种规则非常熟悉,所以好的数值设计建立在深度熟悉规则的前提下。在平时所做的游戏项目中,应该要多多关注设计出的系统。
- 整个游戏的数值框架建立完成后,后续要做的事情主要有两部分:不断地对建立的框架进行数值检错、规则检错,确保框架的正确性;不断地对建立的框架进行数值优化调整,从Excel表、游戏这两方面确保设计的数值满足给定的各种预期。
- 关于数值配置工作,前期需要和程序沟通好表结构的设计,为配表的便利性打好基础;后续的配表是一个将数值设计表中的数值转移到数值配置表中的过程,这部分以及刷表部分最好实现工具化操作,提高数值配置的工作效率以及准确性。