📈

ウマ娘レート対戦10月期(ベータ)

更新日
2022/10/7
投稿日
2022/10/7
9月にリリースした『うまっちんぐ!』レート戦のベータ版ですが、10月も継続してベータ版とします。
まずは以下をお読みください。
 
バグ修正やベータ版についてのやり取りは下記のDiscordで行う予定です。
🚨
レートが近い人マッチングを導入していないので注意

9月期ベータ版からの差分


また直近のロードマップは以下に公開しています。
要望やバグは随時報告してくださいますと幸いです。

用語の整理


  • マッチング
    • ルームを作成するために待機していること
  • レースID
    • ウマ娘上のルームマッチID(8桁)
  • マイ出走リスト
    • レート戦で出走するウマ娘をあらかじめ登録しておく機能
 
以上から簡単にレート戦の説明をすると以下のようになる。
「あらかじめマイ出走リストを登録し、レースIDを入力してマッチングを開始し、3人揃ったら対戦がスタート」

使い方


ウマ娘のルームマッチ機能を使ったレート対戦を「うまっちんぐ!」上に実装しました。
 
レート戦の進行は以下のようになっています。
  1. Twitterでログイン
  1. マイ出走リストの登録
  1. レースIDを入力
  1. 3人集まるまでマッチング待機(180秒でタイムアウトします)
  1. マッチング承認(60秒でタイムアウトします)
  1. レースIDを用いてウマ娘アプリ内でマッチング(ランダムでレースID1つが採用されます)
  1. レースIDが無効の場合は「レースID変更リクエスト」を送信
  1. 対戦相手の出走ウマ娘を確認
  1. もしウマ娘が異なる場合は「対戦を中止」する
  1. コメントでコミュニケーション
  1. 結果入力(600秒でタイムアウトします)
  1. 結果入力待ち
  1. 異なる結果が入力されたら再度入力
  1. 再度ミスした場合は異議申し立てが可能
  1. 全員の結果が集まったらレート計算
  1. 結果画面で詳細にレースの内容を確認可能
 

その他機能


  • ランキング機能
  • 過去成績機能
 

レート計算の仕組み


TypeScript
  • mu: 各プレイヤーの実力を推定する確率密度関数が取りうる値の期待値の初期値。
  • sigma: 各プレイヤーの実力を推定する確率密度関数が取りうる値の標準偏差の初期値。
  • beta: 76%の勝率を保証するスキル差。
  • tau: 値としては各プレイヤーの実力を推定する確率密度関数が取りうる値の標準偏差の最低値。意味としては実力推定の不確かさの設定値。レート平均変動値とほぼ同等になる。
  • rate = env.expose(trueskill.Rating(mu=XXXX, sigma=YYYY))で算出する表示レートはmu-3*sigmaで推定実力からやや控えめな値
 
協力: てんてんさん

インフラ構成