ATeam Tech 第1弾

            <h1>ATeam Tech 第1弾</h1>

2015/10/21

ニゾンリーグ

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

ATeamの開発環境

  • 隔週でエンジニア向け勉強会(業務時間内)
  • Pチーム(勉強会)
  • サマガ(社内技術メルマガ)
  • 週刊雑誌の付録式ネイティブゲーム開発

感想

  • Vert.xは初めてきいたなー