计算战斗后获得的经验值


9

我正在开发一个简单的文字战斗游戏,在计算战斗后应该获得多少XP时遇到一些问题,我需要考虑一些因素:

1)如果击败同等级的玩家,他们当然应该获得良好的XP

2)如果玩家击败更高级别的玩家,则应该获得出色的XP

3)如果玩家打败了一个较低等级的玩家,他们应该获得差的XP

4)上面的比例应该很好,也就是说,如果玩家A是10级,并且与玩家B处于9或11级战斗,那么差异不会太大(他们击败第11级角色当然会获得更多经验值,但是我们不会期望这是巨大的),但如果他要与5或15级战斗,那么这个差异应该很大。

只是无法计算出在所有情况下都能正常工作的东西,目前我的XP表如下所示:

Current Level   XP Needed   Increase from Last Level
1   30  0
2   65  35
3   106 41
4   154 48
5   210 56
...
10  672 123

在PHP中,我的代码如下所示,以计算所需的XP:

$offset = 30;
$multiplier = 1.17;
$base = $prevXp * $multiplier;

$xp = $base + $offset;

我尝试了几种不同的方法,但是没有让我印象深刻,我想计算XP的差异,然后使用某种乘数,但是结果却没有让我印象深刻。

任何帮助/输入将不胜感激。


2
我什至没有看书,只是去那里-> gamebalanceconcepts.wordpress.com/2010/07/07/… <
o0'。

首先想到的是,您应该找到第二版或第三版D&D地牢大师指南的副本。对于已经玩过测试/平衡的XP奖励系统的良好资源。
理查德·法比安

Answers:


13

两个建议:

指数!为每个级别计算一些“基本XP奖励”。那么杀死的公式是base_xp_reward * pow(1.1,target_level-player_level)。您可能希望最大程度地提高收益,以使利用无效化,并且可能希望将零经​​验值限制在零以下,以防止养殖低价商品。

(如果您喜欢-basic_factor * pow(1.25,level),也许基本XP奖励也可以是简单的指数级数。然后,您可以根据基本XP奖励的倍数来定义“ exp to level”。这样比较容易平衡。)

另外,让我们使其变得非常简单。做同样的XP经验奖励。然后手动找出一张表格,以获取各种级别的差额所需的奖金。使它基于比率,这样杀死一个比您高一个等级的人总是比基本奖励获得10%的额外经验值。现在,您完全不必担心公式-您只需使数字满足您的要求即可。

公式被高估了,有时您只需要插入一些数字并随便播放即可。


1
+1Formulas are overrated, sometimes you just need to jam some numbers in and play it by ear.
RCIX

2

我会说类似“通过损失/获得的伤害获得XP”。因此,如果100级的10级与200级的15级战斗。这似乎是不公平的,但是如果10级能够杀死15级,则他获得的xp是他与仅以100hp进行10级战斗时获得的xp的两倍。

同样,通过这种方式,您不必担心诸如两个人会使用不同的设备与同一个敌人作战的事情。例如,如果8级和10级与13级战斗。如果8级拥有更好的装备/装甲,那么他会获得更多xp,则10级仅仅是因为他对13级造成了更多伤害。

但最重要的是:设置规则,游戏测试,设置规则,游戏测试,设置规则,plasytest等,等等。

只要游戏存在,甚至最好的开发商提供的最好的MMO都会调整其xp分发系统。


0

只是恕我直言,正确的最重要的事情是升级所需的XP扩展量。我的一个朋友为他的类似Rogue的浏览器使用了fibonacci版本,例如100XP,100XP,200XP,300XP,500XP,800XP等。

我还听说过某些游戏中的机械师,每次战斗所获得的经验值都减去了等级。例如,如果一场特定的战斗获得50XP,而他们的等级为20,那么他们只会获得30XP。如果他们达到50级或以上,他们将一无所获。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.