<h1>ATeam Tech 第1弾</h1>
2015/10/21
ユニゾンリーグ
- ゲーム概要
- 最大10vs10で同時プレイ可能
- 200万DL
- 要件定義
- リアルタイム通信
- ワールド分割しない
- サービス停止せずにUPDATE
- 通信切断でも途中から再開可能
- システム全体
- クライアントは最低限の暗号化
- ゲームロジックは全てサーバー側
- だからサーバーで常にデータチェック(チーと対策)
- データの2重送信をチートとみなす
- ゲームロジックは全てサーバー側
- 開発環境
- サーバーサービス
- 通信方式
- WebSocket + MessagePack
- 双方向通信の実現
- パケットにマスクがかかっている
- データ量の圧縮
- WebSocket + MessagePack
- サーバー構成
- LoadBalancer → Apache →
- WebSocket Vert.X → Database
- Static LoadBalancer→Nginx →
- データベース
- Master/Slave
- Slaveは「APP」と「Backup&KPI」で2種類使い分けている
- ユーザーの水平分割と、機能の垂直分割も行っている
- ユーザーデータはInnoDB、ログデータはBlackhole
- Master/Slave
- Vert.X
- Verticle
- Vert.xでの実行単位のこと。
- ノンメンテナンス
- Verごとにルームを作り徐々に新しい方に寄せていく
- サポート対応
- ログデータはデータベースに保存
- 最低2ヶ月間保持
- From/Toユーザー通信履歴(txtファイル)
- 1日50GB
- 1時間毎にrotate
- まとめ
- リアルタイム通信
- ワールド分割しない
- ノンメンテナンス
- Room分割
- 通信切断しても途中から再開可能
- ロジックをサーバーに
- クライアントは最低限の暗号化
データ入力←結果表示
↓ ↑
データ解読→データ更新
ATeamの開発環境
- 隔週でエンジニア向け勉強会(業務時間内)
- Pチーム(勉強会)
- サマガ(社内技術メルマガ)
- 週刊雑誌の付録式ネイティブゲーム開発
感想
- Vert.xは初めてきいたなー