📈

ウマ娘レート対戦(ベータ版)

更新日
2022/8/7
投稿日
2022/8/7
6月にリリースした『うまっちんぐ!』レート戦のクローズドアルファ版ですが、さまざまな要望を取り入れて遂にベータ版をリリースします。
 
バグ修正やベータ版についてのやり取りは下記のDiscordで行う予定です。
 
まだクローズドベータの段階ですので、参加ご希望の方は「参加希望」チャンネルにてメッセージをください。

アルファ版からの差分


  • レートの計算をガッツリと変更
    • 初期の対戦で大きく変動するように
  • マイ出走リストの追加
    • ここで登録したウマ娘(脚質含む)を出走させる仕様に
  • 前回マッチングした人と再度マッチングを避ける実装
    • 2人までは許容している
  • マッチングが不正だった場合に報告できる機能
    • スクショを三枚まで添付可能
  • コメント機能
    • コミュニケーション活性化のため
  • マッチングページの情報を強化
    • 後から情報を追えるようにさまざまな情報を追加
    • 例えば、途中解散したマッチングが誰によって解散されたか表示される
  • 「うまっちんぐ!」上のアイコンをTwitterからウマ娘アイコンに変更
    • リンク切れ防止のため
  • 前回の使用されなかったレースIDを引き継ぐ機能
    • ちょっとバグあるかも
  • その他もろもろ調整
  • 統計情報の強化(予定)

用語の整理


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

検証して欲しい内容


  • 同時接続10人規模くらいでの負荷テスト
  • 一通りプレイできるか
  • レート計算の妥当性
  • スマホでプレイできるか
  • 足りてない機能の洗い出し
  • 初見でわかりづらかったこと
  • etc…

未実装部分


また、実装できていない部分は以下になります。(こちらはオープンベータ版以降を目標としています)
  • 統計情報の強化
  • レートが近いユーザーとのマッチング機能
  • 不正ユーザーの検知及びBAN
  • ユーザー個別ページ
  • シェア機能
  • OBSに取り込み機能
  • マッチング通知機能

概要


ウマ娘のルームマッチ機能を使ったレート対戦を「うまっちんぐ!」上に実装しました。
 
レート戦の進行は以下のようになっています。
  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

      アルファ版との技術的な差分


    • DBをFirestoreからRDBに
    • サーバーをCloudFunctionsからVercel APIへ
    • インフラ構成