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 勉強会.

HTML5 Conference 2013に参加した

11月30日にHTML5 Conference 2013に参加してきました。

下記に資料まとめがあがっていました。
http://stocker.jp/diary/html5-conference-2013/

フロンドエンド開発に長けている人が近くに全くいないので、こういう人たちがいたらもっと良いプロダクトがつくれるんだろうなーと思いました。

Pocket

Posted in 勉強会.

PHPカンファレンス2012に参加した

先週の土曜(9月15日)に「PHPカンファレンス2012」に参加してきた。

聞いたセッションと感想だけ残しとく。

いまだからできる、ふつうのはなし

グリー株式会社 開発本部 GREE プラットフォーム統括部 上村 宏紀

ちょっと遅れての参加。
印象に残っている話は「バッチの負荷対策」と「オンサービスでのDB切り替え」。

バッチの負荷対策は「バッチで、あるルールに該当するデータを全て同じ値に更新する処理」の話。
IDを条件に、全て同じ値にUPDATEするSQLを何回も実行していたバッチをIN区で複数件単位でUPDATEするようにしたとのこと。

オンサービスでのDB切り替えはなんか書くの大変なんで下記URLとか参考に。
http://unsolublesugar.com/20120916/064340/

徳丸本に学ぶ 安全なPHPアプリ開発の鉄則2012

徳丸 浩

内容が大きかったので「あーそうだよねー」「これ前に聞いたなー」とか思いつつ途中退場してお昼ご飯を買いに行った。
結論は徳丸本を読みましょうということです。

最先端Web開発

KLab株式会社 ha1t

今回聞いたセッションの中で一番面白かった。
GitHub使ってお菓子駆動開発してみたくなった。

フラットなPHPからフレームワークへ

前田 雅央

席を移動するのが億劫になって、同じ会社の前田さんの話を聞くという暴挙にでた。
以前に自分で0からフレームワークを作った事あるので、そうだよねーという話だった。

PHP5.5新機能「Generator」初心者入門

Makoto Kuwata

Generatorって何?と思って聞き出したけど、前にも聞いた事あって存在は知ってたわ。

ユニットテストに入れるためのクラス設計

t_ishida

うーん。なんか寝てたな。これ。
となりの「フレームワークアップデート」に行けば良かったなーと思った。

Pocket

Posted in 勉強会.