ATeam Tech 第1弾

ATeam Tech 第1弾

2015/10/21

ユニゾンリーグ

  • ゲーム概要
    • 最大10vs10で同時プレイ可能
    • 200万DL
  • 要件定義
    • リアルタイム通信
    • ワールド分割しない
    • サービス停止せずにUPDATE
    • 通信切断でも途中から再開可能
  • システム全体
    • クライアントは最低限の暗号化
      • ゲームロジックは全てサーバー側
        • だからサーバーで常にデータチェック(チーと対策)
      • データの2重送信をチートとみなす
    • 開発環境
      • クライアント
        • cocos2d-js
          • C++
          • JavaScript
        • VisualStudio, Eclipse, NDK, XCode
      • サーバー
        • Vert.x 2.1.6
          • Java
        • Ethna
          • PHP
        • Openfire
        • Eclipse, MariaDB, Apache
    • サーバーサービス
      • ニフティクラウド
    • 通信方式
      • WebSocket + MessagePack
        • 双方向通信の実現
        • パケットにマスクがかかっている
        • データ量の圧縮
    • サーバー構成
      • LoadBalancer → Apache →
      • WebSocket Vert.X → Database
      • Static LoadBalancer→Nginx →
    • データベース
      • Master/Slave
        • Slaveは「APP」と「Backup&KPI」で2種類使い分けている
        • ユーザーの水平分割と、機能の垂直分割も行っている
        • ユーザーデータはInnoDB、ログデータはBlackhole
    • Vert.X
      • イベント駆動型
      • 非ブロッキングI/O
      • 並列処理モデル
        • C10K問題
      • イベントバスによるModule間の疎結合
      • 別サーバーのインスタンスとCluster化
      • スケータブルなシステム
    • Verticle
      • Vert.xでの実行単位のこと。
    • ノンメンテナンス
      • Verごとにルームを作り徐々に新しい方に寄せていく
    • サポート対応
      • ログデータはデータベースに保存
      • 最低2ヶ月間保持
      • From/Toユーザー通信履歴(txtファイル)
        • 1日50GB
        • 1時間毎にrotate
    • まとめ
      • リアルタイム通信
      • ワールド分割しない
      • ノンメンテナンス
        • Room分割
      • 通信切断しても途中から再開可能
        • ロジックをサーバーに

ATeamの開発環境

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

感想

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

Posted in 勉強会.

コメントを残す

メールアドレスが公開されることはありません。

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">