Answers:
一般来说,这些都是模糊的指数曲线。http://kol.coldfront.net/thekolwiki/index.php/Advancement#Advancement_Requirements_Overview显示了厌恶王国的公式,这是MMO类型的相当标准。
在谈论游戏中的数字关系时,我实际上涵盖了这个主题:http : //gamebalanceconcepts.wordpress.com/2010/07/14/level-2-numeric-relationships/
您可以按照自己的意愿进行设置,尽管通常情况下,它处于上升曲线上(因此每个级别都比上一个级别需要更多的XP),因为遇到/任务会随着您的前进而提供更多的XP。
关键不是要仅专注于XP级别曲线或每次遇到XP曲线,而是要比较两者。如果XP等级曲线的增加速度比每次遭遇XP的速度快,则玩家会注意到他们随时间推移获得等级的速度越来越慢,这是该类型游戏的标准。但是,危险在于,如果最终游戏中升级之间的距离太少而又太远,那么玩家对游戏的最后记忆将是巨大的磨难,您可能也不想这么做。因此,找出最终游戏可接受的每级升级多少次遭遇,以及您想要在早期游戏中每级升级多少次遭遇,然后从那里进行插值。
另外,我应该提到的是,除了XP /等级外,您还可以拥有重叠的奖励系统。一些RPG具有工作点(因此您具有多个练级/进阶系统),因此(例如)练级您的格斗技能或治疗技能可能需要一段时间,但是如果有足够多的不同项进行练级,您总是只有几个数分钟之内即可实现。其他RPG的物品/装备掉落随机,因此每次新遭遇都不仅会获得XP,而且还会产生一些史诗般的战利品,因此您会获得一些额外的随机奖励,仅用于游戏。
我想说,这至少部分取决于您要为玩家创造的体验类型。考虑两个例子,第一个例子是经典的基于回合的RPG,第二个例子是Gradius III型射击游戏,在其中,您希望玩家根据列表死亡后的进度进行缩放,而不是根据加电进行调整(不是可以说这是一个很好的系统,只是一个例子)。
在RPG的情况下,您的系统可能会在假设玩家永远不会失去经验的前提下运行。类似地,它可能希望基于这样的假设来行动:在某种事物上获得一定程度的熟练度相对容易,但是很难掌握(就像现实世界中的大多数事物一样)。在这种情况下,您可能需要开发一个在某些方面呈指数形式的公式(如coderanger建议)。达到下一个级别所需的经验量在某种程度上取决于您当前的水平。重要的是要考虑,但是玩家在玩游戏时获得体验的速度。例如,杀死63级火恶魔的玩家比杀死2级Lady Bug的玩家期望获得更多的经验。因此,在设计公式时,确保您考虑了XP系统。特别是如果您不这样做,那么杀死瓢虫与杀死更坚强的敌人一样有利。
示例1(可能不是您要使用的表单):XP_TO_LEVEL =(((CURRENT_LEVEL + 1)^ SCALE)* XP_BASE
示例2:XP_TO_LEVEL =(XP_BASE * CURRENT_LEVEL)^比例
XP_TO_LEVEL是达到下一个级别所需的XP。CURRENT_LEVEL是玩家的当前级别。XP_BASE是一个任意数字,用于确定XP中每个级别的“价值”。SCALE是确定XP升级所需水平速度的指数。如果SCALE为1,则每个级别都需要XP_BASE经验。如果SCALE小于1,则每个级别的经验将少于上一个级别。如果SCALE大于1,则每个级别将比上一个级别花费更多的经验。
下表使用示例2假定SCALE为1.1,XP_BASE为100。
Current Level XP Needed Increase from Last Level
1 158 0
2 339 181
3 530 191
4 728 198
5 930 202
...
10 1995 218
示例3:XP_TO_LEVEL =(((CURRENT_LEVEL * SCALE)^ 1.5)* XP_BASE
SCALE仍在决定缩放XP_TO_LEVEL的速度,但操作方式略有不同。
下表使用示例3假定SCALE为22,XP_BASE为10。
Current Level XP Needed Increase from Last Level
1 28 0
2 80 52
3 146 66
4 226 80
5 316 90
...
10 894 130
对于Gradius克隆,您可以采取其他策略。您可能希望播放器持续升级,例如大约每两分钟一次。另外,在一场比赛失去生命并因此失去了所有获得的力量之后,您可能希望通过更快地提升他/她的水平直到他达到适合其整个游戏进度的水平来帮助他。在这种情况下,您的公式可能会更线性,尤其是因为用户看不到每次击杀获得多少经验。大概需要50 XP才能达到一个新的水平,每个敌人都值得1 XP。如果您为他提供了相对稳定的敌人,这将非常有用。但是,当玩家死亡时,他将全部输光!你现在在干什么?每个敌人的价值都应超过1 XP,以达到您赶上他的目标,从而使游戏再次变得公平。
例如:XP_FROM_EACH_ENEMY = BASE_XP +(CURRENT_LEVEL-DESIRED_LEVEL)其中XP_FROM_EACH_ENEMY是敌人被杀死时会奖励多少XP。BASE_XP是默认情况下一个敌人值得多少XP(可以根据每个敌人的类型而有所不同)。CURRENT_LEVEL是玩家的等级DESIRED_LEVEL是您认为玩家应该达到的等级。