私が実装したいと考えているオプションの1つは、自動自己調整システムです。
例として、MOBAジャンルのゲームを使用します。これは、各ヒーローが他のヒーローとどのように比較されるかを正確に確認できるように構成されているためです。
基本的に、ヒーローごとに、そのアイテムのすべての統計はハンディキャップ値に依存する必要があり、サーバーはそのヒーローの勝率に応じて自動的に変化します。次に、新しいゲームが開始されるたびに、ゲームの期間中、最新のハンディキャップ値が使用されます。
Hero(){
attackSpeed = 50 + 5*heroType.adjustment;
moveSpeed = 100 + 5*heroType.adjustment;
}
次に、各ゲームの終わりに、サーバーは各ヒーローの値を、そのヒーローが勝ったか負けたか、どれだけ勝ったかなどに応じて、少しずつ変更します。
for(Hero hero: game.winners)
hero.heroType.nerf();
for(Hero hero: game.losers)
hero.heroType.buff();
正確な調整式は次のようになりますが、より複雑な統計情報の方が優れている場合があります。
nerf: adjustment[heroType] -= 1 / globalNumberOfGamesPerWeek
buff: adjustment[heroType] += 1 / globalNumberOfGamesPerWeek
この方法では、かなり圧倒される特定の新しいヒーローが追加された場合、つまりそのヒーローがプレイヤーの勝利のチャンスを大幅に増加させた場合、ゲームサーバーはそれを自動的に修正します。
実際、このシステムは、特定のヒーローが実際にうまく機能する新しいメタを見つけたり、特定のヒーローに新しい利点を与える地形修正など、特定のヒーローが圧倒される可能性がある他の理由でも修正します。そして、新しい戦術の知識がまだ広まっているだけでも、修正は行われるでしょう。
これが役立つ第三のことは、何かがヒーローに深刻な影響を与えているという事実を実際に発見することです。調整値がゼロ近くに留まるようにヒーローが設計されている場合、ヒーローの1人の値が大幅に変化すると、開発者はヒーローに何らかの問題があることを知り、それを超えてよりインテリジェントなバランスを取ることができます問題のヒーローに。