狠狠撸

狠狠撸Share a Scribd company logo
第5回cocos2d-x勉強会資料
株式会社トランスリミット
工藤 ?琢磨
自己紹介
氏名: ?工藤 ?琢磨 ?(26)
 ? ? ? ? ? takuma.kudo.7
略歴
06年 ?東京ゲームデザイナー学院
08年 ?タイトー
10年 ?コミュニティファクトリー
12年 ?ジークレスト(CAアメリカ)
14年 ?トランスリミット
叠谤补颈苍奥补谤蝉とは?
脳トレ×リアルタイム対戦
子供から大人まで、
国境を越えて熱狂できる!
颈翱厂版配信中です(ゝω?)
というわけで
特徴は
リアルタイム対戦!
本日の内容
??  ?リアルタイム対戦のための通信技術
??  ?リアルタイム対戦の工夫
??  ?その他ハマった点などなど
BrainWarsはcocos2d-x3.0で作られてます!
Socket.IO
リアルタイム対戦の通信技術
Socket.IOとは
??  ?あらゆるデバイス間で双方向通信を実現
することを目的とした技術。
??  ?Websocket、Pollingなどを自動で判定、
選択してくれる。
このSocket.IO
Cocos2d-x ?3.0から使えます!
※ ?Websocketなら2.x系でもつかえます
実装デモ
知らぬ間にQiitaにまとめが!
「Qiita ?BrainWars」で検索!
めっちゃ簡単!
ヽ(???)?(???)?(???)?
気をつけたい点?その他
??  ?遅延や接続切れは起こるもの
 → ?こまめに同期タイミングを作ってる。
??  ?Spine/Json.hはイケてない(エンコード出来な
かったり処理重かったり)
  ?→ ?rapidjsonを使ってます。
??  ?cocos側はwebsocketが固定で採用される
??  ?データが大量の場合分割されて送信されてるみた
い(2KB)
リアルタイム対戦の工夫
BrainWarsでの対戦パターン
?? ランダム対戦
?? 相手を指定した対戦
?? シェアリンクからの対戦
?? などなど
ランダム対戦
ソケットサーバー
(Node.js)
ホスト
(先に繋いだユーザ)
ゲスト
後に繋いだユーザ
APサーバー
(Ruby ?on ?Rails)
問題の取得
結果の送信
など
待機中が2人になるとマッチング
バトルコードを発行して対戦を識別
データの受け渡し
接続切れの監視
問題点
ホスト
対戦相手が来ない???
相手がいなかったらどうしよう
((((;?Д?))))
???
ログで解決
ソケットサーバー
(Node.js)
ホスト
ゴースト
APサーバー
(Ruby ?on ?Rails)
②ゴーストデータ
の要求
①タイムアウト
で切断
過去の対戦ログ
Redis
対戦した時のログを保持してる
相手を指定した対戦
ソケットサーバー
(Node.js)
ホスト ゲスト
APサーバー
(Ruby ?on ?Rails)
問題の取得
結果の送信
など データの受け渡し
接続の管理
Push通知
Push起動で
そのまま対戦へ
バトルコードが入ってる
問題点
ホスト
Push通知
??? ???
相手が応えなかったらどうしよう
((((;?Д?))))
これもログで解決
APサーバー
(Ruby ?on ?Rails)
ホスト ゲスト
先にプレイして
ログを残しておく 後からいつでも
ログと戦える
ゴースト
Redis
問題点その2
ホスト ゲスト
先にプレイ中 あ、通知来てる
ログが残る前に来たらどうしよ
((((;?Д?))))
???
APサーバー
(Ruby ?on ?Rails)
ソケット開きっぱで解決
ソケットサーバー
(Node.js)
ホスト ゲスト
ソケットを開いたまま
先にプレイする データの受け渡し
接続の管理
Push通知
ホストのプレイログを
ソケット経由で受け取る
シェア対戦
APサーバー
(Ruby ?on ?Rails)
ホスト ゲスト
先にプレイして
ログを残しておく
リンクからアプリを起動
いつでも挑戦できる
ゴースト
Redis
ソーシャルにシェア
Cocos2d-x ?3.0でハマった点
Beta版から開発してたので
本家バグがやたら多かった
(ヽ?ω`)
叠别迟补版なんだから当たり前やん!
ただ特に気をつけたい点(颈翱厂)
32/64产颈迟で実装が分かれてる
どっちかが动かないとかよくある
なので
シュミレータ(32bit,64bit)
iPhone4 ?or ?5
iPhone5S
 ?の全部でテストをする。
そんな3.虫系
3.x系の開発で困ったら
本家フォーラムに書くのが一番!
中の人はめちゃめちゃ優しい
?? つたない英語でも汲み取ってくれる。
?? むしろ日本語で返事くれる。
?? 本家リリース前の段階で修正コミットを
教えてくれる。
?? 時々困った事ないかメールくれる。
臆せず书いちゃおう!
それがWin-Winだもの!
ヽ(???)?(???)?(???)?
最后に
We ?Are ?Hiring!
ヽ(???)?(???)?(???)?
奥补苍迟别诲濒测などから!
ありがとうございました!

More Related Content

TechBuzz第5回cocos2d-x勉強会 BrainWars発表資料