Upload
takuma-kudo
View
993
Download
1
Embed Size (px)
DESCRIPTION
BrainWars Night 発表資料 前回のものにサーバ構成などを加筆
Citation preview
株式会社トランスリミット
工藤 琢磨
自己紹介
氏名: 工藤 琢磨 (26)
略歴
06年 東京ゲームデザイナー学院
08年 タイトー
10年 コミュニティファクトリー
12年 ジークレスト(CAアメリカ)
14年 トランスリミット
使用してる技術の紹介
サーバーサイド ・Ruby 2.0.0
・Rails 4.0.2・Node.js
・AWSの各種サービス
クライアント
・Cocos2D-X 3.2
・C++11
サーバー構成
ソケットサーバ(Node.js)
ストレージ
MySQL
データベース(MySQL)
キャッシュ(Redis)
APサーバ(Ruby on Rails)
Cocos2D-X 3.x系
メリット
・C++11サポート
・Socket.IOサポート
デメリット
・情報が少ない
・正式版まで本家バグが多かった
・今は落ち着いてる
Socket.IO
メリット
・最適なオンライン通信技術の自動判定
・あらゆるデバイス間でオンライン通信可能
デメリット(注意点)
・cocos内はWebsocketが固定で使用される
・大量のデータは分割送信されるぽい(2KB)
オンライン対戦あるあると
ログを使った工夫
対戦パターン
• ランダム対戦
• 特定の相手と対戦
• シェアリンクなどからの対戦
ランダム対戦
ソケットサーバー(Node.js)
ホスト先に繋いだユーザ
ゲスト後に繋いだユーザ
APサーバー(Ruby on Rails)
問題の取得結果の送信など
待機中が2人になるとマッチング
バトルコードを発行して対戦を識別データの受け渡し接続切れの監視
あるある1
ホスト
対戦相手が来ない・・・
相手がいない((((;゚Д゚))))
・・・
ログで解決
ソケットサーバー(Node.js)
ホスト
ゴースト
APサーバー(Ruby on Rails)
②ゴーストデータの要求
①タイムアウトで切断
過去の対戦ログ
Redis
対戦した時のログを保持してる
特定の相手と対戦
ソケットサーバー(Node.js)
ホスト ゲスト
APサーバー(Ruby on Rails)
問題の取得結果の送信など データの受け渡し
接続の管理
Push通知
Push起動でそのまま対戦へ
バトルコードが入ってる
あるある2
ホスト
Push通知
・・・ ・・・
相手の反応が無い((((;゚Д゚))))
これもログで解決
APサーバー(Ruby on Rails)
ホスト ゲスト
先にプレイしてログを残しておく 後からいつでも
ログと戦える
ゴースト
Redis
あるある3
ホスト ゲスト
先にプレイ中 あ、通知来てる
ログが残る前に来たらどうしよ((((;゚Д゚))))
・・・
APサーバー(Ruby on Rails)
ソケット開きっぱで解決
ソケットサーバー(Node.js)
ホスト ゲスト
ソケットを開いたまま先にプレイする データの受け渡し
接続の管理
Push通知
ホストのプレイログをソケット経由で受け取る
あるある4
ホスト
もうむりぽ・・・
_人人人人人人_> 突然の死 < ̄Y^Y^Y^Y^Y ̄
・・・
ログ最高!!!
ソケットサーバー(Node.js)
ホスト
ゴースト
APサーバー(Ruby on Rails)
②ゴーストデータの要求
①繋がらない
過去の対戦ログ
Redis
シェア対戦
APサーバー(Ruby on Rails)
ホスト ゲスト
先にプレイしてログを残しておく
リンクからアプリを起動いつでも挑戦できる
ゴースト
Redis
ソーシャルにシェア
まとめると
メンバー募集中です!ヽ(゚∀゚)メ(゚∀゚)メ(゚∀゚)ノ
特にクライアント
私しかいません(;´༎ yД༎ y`)
よろしくお願いします!&
ありがとうございました!