我目前正在开发一款具有经典经验值和升级机制的RPG游戏。玩家杀死怪物,获得经验值,并在它们收集足够多并变得更强时升级。
如何平衡达到每个等级所需的Exp点数和每个等级上每个怪物授予的Exp数?
我目前正在开发一款具有经典经验值和升级机制的RPG游戏。玩家杀死怪物,获得经验值,并在它们收集足够多并变得更强时升级。
如何平衡达到每个等级所需的Exp点数和每个等级上每个怪物授予的Exp数?
Answers:
在这方面得出结论的最佳方法是-与游戏开发中的大多数事情一样-首先考虑您希望游戏如何玩,然后进行数学计算,使游戏像这样进行。
在以故事为重点的单人RPG中,您可能希望保持升级作为持续的奖励流,并在整个游戏过程中让玩家每隔几分钟升级一次。升级率保持恒定,因此您的每分钟分钟数函数为常数(time = c
)。
在更注重成就的游戏(例如MMORPG)上,您通常希望初学者经常进行升级,但随着玩家的进步,这种升级的频率将越来越低。在这种情况下,您的每分钟分钟数函数将是多项式(time = Level ^ c
)甚至指数函数(time = c ^ Level
)。但是,按指数公式原样保留级别编号通常太极端了。将其除以一个常数可能会是个好主意,以使增加速度变慢很多,同时仍保持指数(time = c1 ^ (1 + Level / c2)
)。
我建议您使用电子表格来计算数字。创建一个表,该表的列的范围是从1到期望的最大级别,第二列的级别公式是。这很容易让您尝试使用不同的公式来查找自己喜欢的数字。将多项式与指数成分组合在一起时,也许会得到更好的结果?
请记住,您在这里看到的是净战斗时间。游戏时间中,玩家正在积极收集经验值。它不计算玩家花费在与NPC进行交谈,比较他们的装备以及执行不会直接导致进度的其他任务上的时间。
在当前的游戏(MMORPG)中,我想到了公式seconds(level) = 10 ^ (1 + Level / 20)
。前几个级别仅需花费几秒钟的实际战斗时间(教程阶段就非常满意),级别20-40需要几分钟,在50年代它变成每个级别的小时,而当接近最高级别100时,则需要整周的时间才能看到进展。
即使您的敌人没有明确的(或有意义的)关卡状态,您仍希望将它们设计为在特定角色级别上平衡的挑战。但是,推荐给40级敌人的奖励应该比推荐30级的敌人获得多少经验?
这个问题的答案与角色每级获得的力量有多强以及您希望他们在角色级别上领先于当前敌人的程度紧密相关。
某些游戏系统,例如《魔兽世界》的系统,使得与仅略低于或高于玩家角色水平的敌人进行任何战斗都变得毫无意义。仅仅高于几个等级的一切都会消灭玩家,而低于几个等级的一切则根本没有挑战(也没有回报)。
一个反例是Disgaea系列。在该游戏中,聪明地玩游戏时,您可以轻松以自己角色几倍的水平击败敌人。
您希望对等级公平性的限制越严格,这对玩家来说是一场公平的战斗,您就越需要确保玩家不会落后或领先于他们当前正在战斗的敌人的等级。当玩家落后于敌人时,如果不进行磨合,游戏将变得非常困难。当玩家领先于怪物时,游戏将变得过于简单和无聊。
将玩家保持在等级支架中的一个好方法是增加每个等级的经验值奖励。一方面,当玩家略低于建议水平时,它将很容易让玩家赶上。另一方面,它不允许他们在不前进到较硬区域的情况下有效地对付弱小的敌人。
多项式exp曲线(exp = Level ^ c
)通常效果很好。值越大c
,您越会迫使玩家进入他们所战斗的怪物的当前等级支架。
请记住,击败时间更长的敌人也应按比例提供更多的经验。一场耗时20秒的战斗所获得的经验值仅需10秒即可获得两倍的经验值。这会将您的公式扩展到exp = (Level ^ c) * minutes_per_combat
。
现在可以从两者得出最终公式。该experience per level
是time per level in minutes
乘以experience gained per minute
。因此,只需采用最后两节中得出的两个公式并将它们相乘即可。就是这样:您的每级经验公式。
每级增加一个多项式时间,公式为
exp(level) = (level ^ c1) * (level ^ c2)
哪里
c1
取决于您希望每个级别花费多长时间c2
取决于您要保持玩家与敌人战斗水平的距离即使是最好的深思熟虑的概念也不能替代适当的游戏测试。如果您的游戏测试结果表明普通玩家的进步快于或慢于您想要的速度,通常表明您高估或低估了建议的敌人等级,以及杀死普通玩家需要多长时间。尝试与您的游戏测试者一起分析在哪个角色级别上杀死哪个敌人有多难,并相应地调整他们的exp值或统计数据。