いくつかの変数に基づいてランクを評価する(ゲームプログラミング)

私は、グラフィックスのないかなりシンプルな宇宙戦闘デスクトップゲームを設計していますが、私はバックエンドがたくさんの拡張のために十分に頑丈であることを望んでいます。私は、船の能力の3つの異なる側面を1から100までのスケールでランク付けしたいと思います(ただし、これらの数値を再考したいと思います)。

例えば、私はshipクラスのヒットポイントセクションを以下のように持っています:

// section private defense
float baseHull;
float hullMod;
float baseArmor;
float armorMod
float baseSheild;
float ShieldMod;
float miscMod = 1.0;//this can be “rarer ship types, i.e. elites or bosses or stations     or the rich.**

これらは任意の値にすることができます。私はこれらのセクションに基づいて船をランク付けする方法を理解しようとしているので、まだ変数に収まるようには何も設計していません...動き、ヒットポイント、攻撃能力のそれぞれについて1つです。追加ボーナスとして、グローバルランキングもいいだろう。上のようなヒットポイントセクションは、適度なサポートクラスの船の場合50,000HP、地球上にあるスペースシャトルの場合のように、画面上の「ヒットポイント」にすぎません。

順位は戦いに勝つ可能性を決定し、「XP」は戦いに勝ったことで報われる。 10メートルのウランめっき船は、1メートルの鉛めっきとシールドを備えた船よりも必ずしも優れているわけではないため、これらをすべて追加することはできません。参照のために、地球の衣服はランク1、M1A1タンクは5のようになり、死星は約40-50ishになります。

私は実世界のデータでこれを行う方法を探してきましたが、私は数学者でも統計家でもありません。これを便利な関数に加重する方法はありますか?値を入力して内部関数を割り当てるように関数を逆にすることが可能です(これは本当にクールですが、必要ではありません)。

1

1 答え

まあ、それらの変数を合計のヒットポイント値に組み合わせる簡単な方法は次のようになります:

hitpoints = baseHull * hullMod + baseArmor * armorMod + baseShield * shieldMod;

次に、船体、鎧、盾の「どれくらい」を決定する基本値と、各アイテムの「強さ」を定義する修正値に対して1〜10の値を決定するために、0〜100の値を割り当てることができますです。

戦いの勝者を計算するには、次のようにします。

totalPoints = ship1Points + ship2Points;
ship1won = (rand() % totalPoints) < ship1Points;

船のポイントは、船のヒットポイントと攻撃値によって計算されるいくつかの値です。したがって、2つの戦闘船の合計点を計算し、0と合計点の間の乱数を選択します。 ship1points が例えば20で、 ship2points が50の場合、船1は20/70になる可能性があります。より強力な船が勝ったと確信してください)、最後の計算の前にそれらの定数を定数または正方形で乗算することができます。

0
追加された
ああ、製品を使用して動作する可能性があります。それは一般的なケースであり、ランキングは明らかに戦いのナットとボルトが違うかもしれません、それはロールプレイングスタイルの宇宙ゲームの陰謀です(私はその部分を忘れてしまった!)私は次のカップルの船のカタログを始めるでしょうどのような値が正気であるかを見て、あなたの方法を試してみてください!実際の試合はエスケープベロシティ/ S.P.A.Zのように再生されます。 (彼らはあなたが敵を撃ち/無効にすることができるシールドを持っています) - 実際の値は関連性があります。これはちょうどSpockスタイルの "成功のチャンス"を決定することです。
追加された 著者 dvr,