WEB / DESKTOP
大会運営・集計・配信システム
大会・イベント運営のWebシステムと、集計・配信を支える関連デスクトップソフトウェア。kの開発経験から、名称を伏せて実装機能と設計を紹介します。
01 / IMPLEMENTATION
運営に必要な機能を、ひとつの流れに。
参加者、試合、採点ルール、結果。それぞれを独立した画面として扱いながら、同じデータの流れにつなぐ設計です。
- 大会の作成・編集、参加者・チームの管理、運営権限
- 試合・シリーズの管理、順位点と撃破点のルール設定
- 個人結果からチーム結果・シリーズ順位への集計
- 順位の推移、統計グラフ、条件別の順位シミュレーション
- リプレイ取り込み・解析処理と接続するデスクトップUI
- 配信用の結果表示、クロマキー、複数ウィンドウ
- Discord Botによるロール・チャンネル等の運営操作
02 / DATA & LOGIC
結果を直した後の、整合性まで考える。
結果の修正・削除に合わせて、影響するチームの集計を更新。対象から外れた集計行の削除も含め、ランキングへ反映する処理を実装しています。
同点時の順位は総得点・勝利数・総撃破数・平均順位などの規則で決定。一括保存やSQLによる順位計算を組み合わせ、計算ルールをコードに明示しています。
03 / INTEGRATION
画面とアプリをつなぎ、失敗時も扱う。
Web APIが結果を受け取り、集計後の更新をWebSocketで配信用画面へ通知。配信表示には定期的な再取得も組み合わせています。
Botへの操作は処理待ちのキューで管理し、完了・失敗・再試行・タイムアウトを分けて扱います。外部連携を画面の処理から切り離す構成です。
大会管理はWeb側に実装。関連ソフトのトーナメントブラケットは表示UIの開発範囲として扱い、完成した大会進行機能とは区別しています。