チームベースのゲームで個々のプレーヤーにスコアを付けるアルゴリズムに取り組んでいます。問題は、決まったチームが存在しないことです.10人のプレーヤーがプレーしたいときはいつでも、彼らは2つの(やや)均等なチームに分けられ、お互いにプレーします. このため、チームにスコアを付けても意味がなく、代わりに個々のプレーヤーの評価に頼る必要があります。
考慮したい問題がいくつかあります。
- 新規プレイヤーは、レーティングがベテラン プレイヤーと同じようにカウントされる前に、「実際の」レーティングに到達するために何らかの暫定的なランキングが必要です。
- システムは、チームがプレイヤーのスキルレベルの組み合わせで構成されている可能性があることを考慮する必要があります。1 つは非常に良い、1 つは良い、2 つは平凡、1 つは非常に悪いです。したがって、プレーヤーの評価の単純な「平均」ではおそらく十分ではなく、何らかの方法で重み付けする必要があるでしょう。
- レーティングはゲームごとに調整されるため、アルゴリズムは「レーティング期間」ごとではなく、ゲームごとに基づく必要があります。良い解決策が見つかれば、これは変わるかもしれません ( Glicko が評価期間を使用していることは承知しています)。
プレイヤーを検証する他の手段があるため、このアルゴリズムではチートは問題になりません。
TrueSkill
、Glicko
およびELO
(現在使用しているもの)を見てきました。TrueSkill/Glicko のアイデアは、レーティングの正確さを判断するために使用される偏差があるというアイデアが好きですが、ランダムなチームの視点を考慮したアルゴリズムはなく、ほとんどが 1v1 または FFA ゲームに基づいているようです.
勝ったチームの各プレーヤーが負けたチームのすべてのプレーヤーを打ち負かしたかのようにプレーヤーを評価することがどこかで提案されました (25 の「デュエル」)。しかし、それが正しいアプローチであるかどうかはわかりません。本当に下手なプレーヤーが勝ったチームにいて、勝ったとき、負けたチームのとても上手なプレーヤーに対して。
どんな提案でも大歓迎です!
編集:私は確立されたプレーヤーのためのアルゴリズムと初心者をランク付けする何らかの方法を探しています.2つを組み合わせたものではありません. 混乱させて申し訳ありません。
AI はなく、プレイヤーはお互いにプレイするだけです。ゲームは勝敗によって決定されます(引き分けはありません)。