戦闘後に獲得した経験値の計算


9

単純なテキストバトルゲームを開発していて、バトル後に獲得する必要のあるXPの計算にいくつか問題があります。考慮したいいくつかの要因があります。

1)同じレベルの誰かを倒した場合、プレイヤーはもちろん良いXPを獲得する必要があります

2)より高いレベルの誰かを倒した場合、プレイヤーは素晴らしいXPを獲得する必要があります

3)より低いレベルの誰かを倒した場合、プレイヤーは貧弱なXPを獲得する必要があります

4)上記は適切にスケーリングする必要があります。つまり、プレーヤーAがレベル10で、レベル9または11のプレーヤーBと戦う場合、その差は大きくありません(もちろん、レベル11のキャラクターを倒すとXPが増えますが、これは巨大であると期待します)、しかし、彼がレベル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 '。

最初に考えるのは、第2版または第3版のD&Dダンジョンマスターガイドのコピーを自分で見つける必要があるということです。すでにテスト済みでバランスの取れたXPアワードシステムの優れたリソース
Richard Fabian、

回答:


13

2つの提案:

指数!レベルごとに「基本XP報酬」を計算します。次に、killの式はbase_xp_reward * pow(1.1、target_level-player_level)です。ゲインを最大にクランプして、エクスプロイトをいくらか無効にし、特定の差以下でXPをゼロにして、弱者の養殖を防ぐことができます。

(ベースXPの報酬は、必要に応じて、単純な指数関数的な進行になる可能性もあります-constant_factor * pow(1.25、level)。おそらく、ベースXPの報酬の倍数で「レベルへの経験」を定義できます。この方法でバランスを取るのは簡単です。)

または、これを本当に簡単にしましょう。同じbase-XP-rewardを行います。次に、さまざまなレベルの差から必要なボーナスを手作業でテーブルを作成します。比率ベースにすることで、1レベル上の誰かを倒すと、たとえば基本報酬よりも常に10%高いボーナスXPが得られます。そして今、あなたはまったく数式について心配する必要はありません-あなたは数があなたが望むことをするようにすることができます。

フォーミュラは過大評価されており、いくつかの数値を詰め込んで耳で演奏する必要がある場合があります。


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

2

私は「ダメージが減少した/受けることでXPを獲得する」のようなものを言うでしょう。したがって、100 hpのレベル10が200 hpのレベル15と戦う場合。それは不公平に思えますが、レベル10がレベル15を殺すことができる場合、100hpだけでレベル10を戦う場合に得られるものの2倍のXPを得ることができます。

また、この方法では、2人が同じ敵を異なる装備で戦うかのようなことを心配する必要はありません。たとえば、レベル8とレベル10がレベル13と戦う場合、レベル8の装備/装甲が優れていると、より多くのXPが得られ、レベル10はレベル13により多くのダメージを与えるためです。

しかし、最も重要なこと:ルールの設定、プレイテスト、ルールの設定、プレイテスト、ルールの設定、プラステストなど。

最高の開発者からの最高のMMOでさえ、ゲームが存続する限りXP配布システムを調整します。


0

ちょうど私見、正しくするために最も重要なことは、レベルアップに必要なXPのスケーリング量です。私の友人は100XP、100XP、200XP、300XP、500XP、800XPなど、ブラウザのローグのようなフィボナッチバリエーションを使用しました。

各バトルで獲得したXPからレベルが差し引かれる一部のゲームのメカニックについても聞いたことがあります。たとえば、特定の戦闘で50XPを獲得し、レベル20の場合、30XPしか受け取りません。彼らがレベル50以上であった場合、彼らは何も稼げません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.