游戏平衡的五个规则:Rocket Jump的案例分析
如何正确地接近游戏平衡,—— 这是游戏开发公司 Rocket Jump 的游戏部门主任康斯坦丁·萨赫诺夫(Константин Сахнов)所分享的。他以《魔兽世界》和《部落冲突》等游戏为例,结合自己的经验。
康斯坦丁·萨赫诺夫
在这篇文章中,我想分享我们在日常工作中应用的游戏平衡设计方法。
“游戏平衡”这个术语有许多定义。在实践中,平衡可以被视为一套旨在创造引人入胜的游戏玩法的规则和限制系统。这个定义提示了平衡的关键要素。那么我们该如何在实践中进行开发呢?
我为自己界定了一系列步骤和问题,以创建内部游戏平衡。后来,这些步骤成为了简单规则的基础。
规则 № 1:游戏平衡是限制系统
当我们设计游戏经济时,平衡角色或其能力时,第一步并不是计算或测试,而是确定概念、逻辑和规则,这些将构成游戏的基础。任何规则都只是一个限制系统,是玩家无法违反的边界条件。
例如,在创建《星际争霸》类型的策略游戏时,几乎不可能检查玩家可能遇到的所有案例和发展选项。但可以设定一些限制——发展速度、最高等级等。
在《魔兽世界》中,有一个非常明显且简单的限制例子,但却效果极佳。开发者的任务是让玩家能够在他们认为合适的时间掌握团队副本的内容。这个时间受多种因素的影响,其中之一是新内容的引入速度。为了解决这个问题,开发者引入了限制系统:
玩家的目标——在团队副本中收集为其职业所需的所有装备,包括独特的套装(tier),完成这个套装可以为能力和属性提供额外的加成。已知物品的数量。它们在击杀首领时掉落。同时我们知道副本中的首领数量和可用的有效副本数量。
第一个限制——物品只有在星期中的首个击杀中才能掉落(几年前,团队内容分为“常规”和简化版本,其中团队由寻找组的“随机”组合而成,但我们以经典规则为基础)。换句话说——玩家每周从一位首领身上最多只能获得一件物品。
第二个限制——所需物品的掉落几率不等于100%。玩家可能会得到重复物品或别的职业的物品,甚至可能什么都得不到。
结果:通过使用概率理论的基础,我们可以计算出玩家收集到所需装备的最短时间以及完整套装的平均收集时间。
在考虑完限制后,通常会进行计算。让我们来估算在《魔兽世界》中收集到所有必要物品的概率。
假设完整的装备需要装备10件物品。为简化起见,假设每件物品从10个首领中的一个掉落。记住限制——每周从一个首领那里只能获得一件物品。如果物品的掉落概率为10%,那么在击杀首领时未获得物品的概率为:
未获得10件物品的概率根据独立事件的概率和公式计算,即每个事件概率的乘积:
因此,我们在第一周与10个首领中获得至少一个所需物品的概率为:
即65%,这还是不少的!如果我们想在10周内收集到所有10件物品呢?这种事件的概率将是:
仅为1%。
实际上,情况要复杂一些。需要考虑的是,如果在第一周获得了一件物品,那么在第二周就只需9件所需物品,而之前掉落的物品已经无法再算作正面结果。如果不同的首领掉落数量不一,模型的复杂性会更高。
在所示模型中,玩家在一周内获得全套物品的概率为0.00000001%。并且有非零的概率,玩家可能永远无法收集到它。为了避免这种情况,随机性通常会被控制。例如,在《英雄无敌V》中,30%闪避攻击的幽灵在两次躲避后会保证受到伤害。
另一个明显的使用严苛限制的例子是卡牌游戏。在《炉石传说》中,我们遇到固定数量的每日任务,限制了每日黄金的最大流入。我们看到战斗中传说卡牌的数量限制,这使得可以赋予他们更复杂的机制,双重组合不会破坏游戏。我们找到关于卡组的职业组成的限制,这样可以做出酷炫的卡牌,这些卡牌可能与其他职业的卡牌组合后形成强大的效果。
规则 № 2:平衡的基础是精确计算
我们常常凭感觉来平衡元素。这种方法在大多数情况下会导致一个严重问题——缺乏控制和变化的可预测性。是的,确实有用脑平衡的实践案例,但在这些情况下,游戏逻辑的基础往往不稳固。对于五个元素的游戏,可以通过测试和“开发者视角”来平衡。但当游戏设计师的任务是开发系统并撰写MMO中的所有物品内容或4X策略中的研究时,采用如此乏乏无味的方法是极其危险的。
好的平衡应有坚实的基础,以逻辑和数学支撑。这将允许:
- 系统性地引入新内容;
- 预测玩家对其的消费;
- 制定实体的引入和退出规则;
- 在客户服务写信给你之前,提前预见某些问题;
- 降低错误的概率。
以开发热门战役类游戏装备物品的平衡为例,首先确定未来物品的原型:手枪、霰弹枪、突击步枪、步枪、近战武器等。接下来,需要列出所有物品的属性。在此情况下,数学部分的平衡任务是使用基础特性的方法。
我们引入一个参数:威力、物品等级——可以使用任意名称。这个值的本质在于仅用一个数字就能比较两种武器。其威力更大者便更优秀。所有武器的参数都会加入计算其威力的公式。如果武器在玩家面前的范围内发射,则参与计算威力的参数之一将是该范围的面积(或其他特征)。
将考虑射速、武器耐久、弹夹弹药数量、单次射击伤害等等。在屏幕截图中显示的是计算武器威力的武器平衡计算器。其目的并不是为游戏生成大量物品,而是使有限数量的武器之间达到平衡。设定了边界条件:最强武器的DPS不得超过最弱武器DPS的两倍。
在此示例中,将根据健康点数与击杀对手的时间和特定武器的参数之间的关系来计算DPS。最终的DPS会乘以一个小的加成,根据武器类型的不同而增加。它在一个武器类型内创造了伤害增长,并确保游戏中各类型武器之间存在更多强和弱的武器。
计算每种武器的每秒伤害后,计算威力,同时也考虑其他参数。
重要的是要记住,与许多其他情况一样,在战役类游戏的平衡中,不仅武器的威力起着重要作用,还要考虑其在不同情况下的适用性。这可以尝试通过为不同武器原型的威力值加上不同的系数来考虑。然而,这仍然是不够的。在真实游戏环境中进行极端情境的测试,以检查这个系统的平衡程度,是不可或缺的。
规则 № 3:工具是平衡可靠性的保证
从事理论游戏设计时,计算上的一切可能看起来很漂亮且简洁。但是在实践中,总是需要将所做的计算转移到产品中。这个过程通常被称为配置,涉及编写 XML 代码、JSON 和 SQL 脚本,以引入数据的不同方法。
通过自己的经验,我现在开始开发任何产品,都从创建一套工具入手,这样就可以消除手动编写代码的需要。为什么这如此重要?
- 人总会犯错误,Excel 更可靠。
- 好的工具能够检查您输入的数据类型是否正确,是否在给定的范围内,并展示在变动一个参数时整个系统会如何变化。
- 工作自动化。不再需要遍历数百个 XML 文件并编写正则表达式。
对于任何大型项目来说,自动化工具的价值难以高估。关键是不要在那些不会带来实际工作加速或减少人为因素影响的地方沉迷于全面自动化。
在我参与开发的一个产品中,有一个报价系统——内部游戏中的折扣商品购买建议。报价被输入到 SQL 数据库。它们有以下参数:
- 视觉部分(标题、描述、艺术作品和界面);
- 出现条件(玩家缺乏特定资源、等级、级联、支付能力及其他因素);
- 设置(成本、折扣、冷却时间、与其他报价的关联、有效时间、在游戏中的出现方式等);
- 奖励(资源、军队、货币、增益、付费服务等)。
这些逻辑通过系列表格进行描述。在实现数据库、服务器端和客户端代码的新功能过程中,我准备了一个带有内容和报价成本计算的 Excel 表格。当是时候将数百个报价转移到数据库时,我意识到这会消耗我几周的时间。如果在此过程中我犯错误怎么办?谁来测试几百个报价的功能呢?
对这些问题的唯一答案是优化我的计算器,在其中实现生成 SQL 查询的功能,删除所有表中的旧报价并插入新报价。并自动检查数据的一致性。这些检查的示例,拯救了我和 QA 团队的神经:
- 所有必填字段都已填写;
- 成本、奖励、折扣和其他值未超出预设范围;
- 报价的内容确实与基于设定准确度的具体成本相符;
- 出现条件与冷却时间不产生永远不会出现的报价。
如果某些数据输入不正确,相应的单元格将被标红。
根据相同的原则,我为游戏的各个方面创建了简单的 Excel 计算器。这种方法不仅消除了不必要的手动劳动,同时,结合客户端的自动测试,显著减少了测试时间。
总结这一点,我列出工具的主要目标:
- 加快内容的计算和创建;
- 降低因人为因素导致的错误概率;
- 提供根据分析快速调整平衡的能力;
- 简化产品配置文件的生成;
- 整体把握游戏平衡及其各部分的影响。
规则 № 4:数学不够,还需测试
这个规则是双向的。缺少数学和逻辑模型就是缺乏基础、支点,相对于此基础将进行平衡调整。但要完全用数学描述复杂的游戏,就像为物理学家开发“万有理论”一样。这个任务并不简单。因此,实践中总会有例外和偏离精确计算的空间。
在传奇游戏《部落冲突》发布后,我对其进行了拆解,以更好地理解这款游戏的原理。当时,我注意到建筑升级的成本以及其生产的黄金和魔法药水在较大的数值上偏离了指数和直线。这种偏差的原因很简单:开发者将参数大幅四舍五入到最接近的“美观”数字,如1天、2天、3天等。
在任何足够复杂的游戏产品中,总有不确定性互动的空间。能力组合产生意想不到乘法效果的情况在游戏中时常发生。这样的难题通过测试来解决。好的游戏设计师会不断玩自己的项目。这听上去很简单,但实际上这个简单的真理常常被游戏公司员工所遗忘。快速开发的节奏使人们容易忘记,执行工作的同时看到结果是多么重要。没有人比功能的作者更清楚它应该如何运作。即使是最优秀的 QA 部门也无法替你进行全面的游戏设计测试。让我给出一个例子。
作为制作人在一款社交策略游戏中,我评估了可销售内容的大小,并决定在游戏中引入一个新单位以增加项目的收入。我们实现了一个非常酷的雇佣军,具有超出其属性及有趣的游戏逻辑。这个雇佣军是由三名穿着防护服的战士组成,缓慢地在战场上移动,烧灼其路径上的一切,具备非常高的生命值,抵抗多种类型的攻击,甚至在死亡后留下毒液。一个有趣的机制是毒性——这个单位会按照一定的周期对自己造成伤害,直到其生命值降至20%。与本身巨大的生命值形成对比,这让它成为出色的坦克,但随着时间的推移,它会失去潜能,当生命值降至较低水平。该单位具有强大的毒性抵抗能力,设计为抵消游戏中最强大的雇佣军,后者用毒素伤害对抗敌人。
实现新单位后,我们进行了测试。这个良好平衡的战斗单位在多种游戏情况下表现出色。那有什么问题呢?一位游戏设计师对新内容给予了应有的关注,他对产品及玩家如何看待这一新内容感到担忧。
他将雇佣军与普通军队进行对战。结果太棒了!玩起来很有趣。与独特的事件军队对抗——一切都很出色。到了检验新步兵如何与游戏中的主要敌人对抗的时候了,因为它的设计正是为了对抗他。
第一场战斗——失败。新单位死得太快。他的属性被游戏设计师们提高,并再次进行了测试。而结果再次失败。在为雇佣军计算战斗威力的计算器中,新单位与领导者并无二致。那么问题出在哪里?我们检查了毒性的抵抗是否有效。有效。再次提高单位的生命值,进行了重新测试。结果仍然无效。旧领导者轻松击败新单位,毫无悬念。
这些测试让我们意识到了旧单位为何如此不可战胜的真正原因。它的机制是“对攻击的步兵造成15%的最大生命值伤害,持续N秒”,以巧妙的方式工作。一切实现得当并符合文档。然而,施加的伤害随时间累积,游戏行话中的“叠加效果”开始显现。因此,在我们的精英部队对步兵进行多次攻击后,步兵身上积累了多个“伤害叠加效果”,造成百分比伤害。显然,当百分比伤害成倍叠加并按指数增长时,没有什么能解决这个问题。
在我的工作中类似的例子有很多。我给自己的关键结论是——应该玩自己的游戏。不能仅仅计算一个“完美”的平衡,也不能缺乏精确的计算。一个好的产品是在投入大量精力下诞生的。核查每一个细节是至关重要的。这条规则不仅适用于游戏设计师。所有参与产品开发的专家都应以最终消费者的眼光来看待它。
平衡的关键在于感受。有时可以为了游戏的感受而忽略公式的严谨性和数学之美。一个好的例子是开发用户教程和入门指南。它们常常为了创造正确的第一印象而打破总体计算的逻辑。
规则 № 5:没有什么是永恒的——与统计数据共存
在在线游戏开发中,一个常见的错误是团队默默地同意——目前最重要的是提升产品质量,集中精力开发新特性,把内容交给玩家,然后……遗忘它。
免费游戏是一种非常精密的系统,需不停地调整。引入新内容可能会彻底改变不止游戏本身,甚至所有指标,包括财务指标。我们必须时刻关注游戏内经济、参与度指标、平衡及其他方面的状况。最佳的助手是分析。每一项引入到产品中的特性都需要以统计数据的收集和关键指标的跟踪作为支持。认为只需要关注货币化指标是一个重大错误。当您看到DAU、收入或ARPPU显著下降时,可能已经为时已晚。
最近,我们在Rocket Jump为项目《掌控之下》引入了新的游戏活动,该项目已经运营了四年并仍然受到观众的欢迎。我们推出了新的定期迷你活动“寒冷巡逻”。从机制上讲,它与我们的其他活动相似。但是,通过引入巡逻,游戏活动,以及随之而来的玩家参与度及保留率均显着增强。让我解释我们是如何达到这一点的。
在《掌控之下》项目中追踪的一个指标是每位活跃玩家每天的不同类型战斗次数(PvE、PvP、联盟战斗)。这一数字在某种程度上反映了玩家对产品的兴趣,显示玩家何时开始对当前战斗模式失去兴趣,并需要引入新的模式。但仅靠单一统计是不够的。解释这些数据的能力同样重要。因此,在这个示例中,玩家每日战斗次数降低很清楚地意味着玩家对游戏失去了兴趣。但是,为什么呢?他们面临技术问题?游戏中存在失衡?游戏玩法让人厌倦?奖励过时?
分析师和游戏设计师是可以给出这些问题答案的两个角色。在解决这些问题时,我遵循一个简单的算法:
- 分析统计数据,寻找偏差——这是深入查找潜在问题的标志;
- 如果看到指标出现意外变化,就提出一系列假设来解释原因;
- 逐一列出这些假设,并描述如何从技术上验证它,排除不正确的假设。
在上述示例中,这个过程如下:
1) 在定期查看报告时,我们发现“每位玩家的战斗次数”指标下降。
2) 记录下的假设包括:bug、失衡、游戏玩法无趣、奖励过时。
3) 检查每个假设。查看支持票,发现数量正常,未找到严重错误。查看奖励的相关性:从分析数据库中下载兵员和其他奖励的使用统计,了解哪些是受欢迎的,哪些不是。看到并非所有奖励都受欢迎,得出这个假设成立。查看社区对于游戏玩法的评价,了解到玩家的反应并无特别亢奋或烦躁。因此,这一假设也不能排除。在下一次更新中,我们推出了一种新战斗模式,并新增奖励,结果显示在玩家活动和内购中的成果都非常佳。
另一个例子,此次数据分析极大地帮助了我们进行平衡——优化游戏集市中的奖励。在同一款《掌控之下》中每周举办市场活动,其中掉落强力的随机奖励,玩家只可以使用一周。在活动中,玩家可以用两种类型的游戏货币和真实货币打开宝箱。通过分析玩家在市场活动中的活跃度及听取社区反馈,我们定期更换活动内容,确保给玩家提供真正需要的东西。重算在三种类型宝箱中一千种物品的概率,删除某些内容,添加某些内容,将所有信息录入配置文件并进行测试看似是劳动密集型的。实际上,由我们团队开发的市场宝箱计算器能够轻松完成这项工作。
集市(或在游戏中称为战利品销售)是臻品奖励的来源,但却存在时间限制。游戏中物品的价值会随着时间推移而变化。根据开发者所提供的优惠、游戏经济状况等因素,玩家所需的奖励在每个时刻都可能不同。开发集市时,我们希望为玩家提供他们真正想要的奖励。因此,我们需要定期检查统计数据并更换奖励,以确保集市对我们的观众保持吸引力。
***
总结来说,在进行游戏平衡时,设定原则至关重要,数学工具应被应用,并创建自动化工具来简化工作,因为您将多次回到重新平衡的工作中,利用测试结果和统计数据不断检查结果,同时记住游戏产品是一个动态系统,必须持续关注。
完美的平衡并不是目标。您可以无止境地在游戏测试、统计数据和更深入的模型间修正它。重要的是,您的平衡给玩家带来了什么感受。此外,许多开发者有意在游戏中引入失衡元素,并定期“摇动”游戏,重新平衡元素。例如,像《魔兽争霸III》这样的策略游戏其中单位、英雄和种族的平衡会定期改变,如果产品处于活跃运营中。这允许打破已建立的最佳策略,激发新的探索和游戏体验。
结论:
- 任何平衡都是以规则和限制开始的;
- 限制系统应有数学依据;
- 强有力而快速的工作依赖于能够及时变更计算的自动化工具;
- 仅靠数学不能建立稳定的平衡,必须进行游戏测试,产品开发绝不能不玩自己的游戏;
- 没有哪个系统是永久的。需要有工具来检查当前的状态。
来源: Rocket Jump