Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

GTMF 2016:Cocos2d-x/Marmalade&Photon最新事例 GMOクラウド株式会社

483 views

Published on

マルチプレイを簡単に実現するネットワークエンジンの「Photon」。様々なゲームエンジンと共にお使いいただいています。今回はガンホー・オンライン・エンターテイメント株式会社様がMarmaladeとPhoton Realtimeで開発した「レジェンド オブ キングダム~王国騎士団の絆~」と、ワンダープラネット株式会社様がCocos2d-xとPhoton Enterprise Cloudで開発した「クラッシュフィーバー」の2タイトルの事例をご紹介していきます。
合わせて、Photonの最新情報もお伝えしていく予定です。


一部のスライドに動画を使用しています。該当ページの次のページにYouTubeのプレイヤーが埋め込んであります。

Published in: Technology
  • Login to see the comments

  • Be the first to like this

GTMF 2016:Cocos2d-x/Marmalade&Photon最新事例 GMOクラウド株式会社

  1. 1. Cocos2d-x/Marmalade & Photon 最新事例 GMOクラウド株式会社 並木 健太郎
  2. 2. 自己紹介 • GMOクラウドの並木です • Photon運営事務局、Marmalade運営事務局 PlayCanvas運営事務局 シニアテクニカルアドバイザー • 趣味:神輿、DJ
  3. 3. アジェンダ • Photonのご紹介 • Marmaladeのご紹介 • 『レジェンド オブ キングダム』における Marmalade & Photon 利用事例 • 『クラッシュフィーバー』における Cocos2d-x & Photon 利用事例 – ワンダープラネット株式会社 取締役CTO 村田 知常さま • Photon最新情報
  4. 4. Photonのご紹介
  5. 5. Photonのしくみ • すべてのクライアント(=プレ イヤー)はサーバーへ接続 する • サーバーはクライアント間 の通信をリレーする役割 • サーバー自身は基本的に は処理を行わないが、 WebhooksやPluginを利用し てカスタマイズも可能 Photon Client Client Client SDK SDK SDK
  6. 6. Photonのサービス形態 • クラウド型サービス • サーバーはサービス提供 元で運用 • クライアントにSDKを組み込 むだけで利用可能 • ミドルウェア型サービス • ソフトウェアとしてご提供、 お客さまで運用 • サーバーサイドのカスタマ イズが自由に
  7. 7. Photon Cloudのラインナップ 汎用性の優れたスタンダードなRealtime Unity向けに特化されたUnity Networking Chatに特化したサービスのChat 音声通話を簡単に導入できるVoice
  8. 8. Photon Enterprise Cloud • Photon Cloudの上位サービスとして、 Photon Enterprise Cloudをご用意しています • Photon Cloudでは難しいと思われる場合でも、 Enterprise Cloudなら大丈夫です!
  9. 9. Cloud vs. Enterprise Cloud Cloud • Publicサービス (共有) • 10,000CCUまで • Webhooks対応 • 複数タイトル共有不可 • サーバー設定変更不可 Enterprise Cloud • Privateサービス (専有) • CCU上限なし • Webhooks & Plugin対応 • 複数タイトル共有可能 • サーバー設定変更可能
  10. 10. Marmaladeのご紹介
  11. 11. Marmaladeとは • 単一のコード(C++など)か ら、様々なプラットフォー ムへデプロイできるクロ スプラットフォームSDK • 抽象化レイヤーは最小の フットプリントで、ハード ウェアの能力を最大限発 揮可能
  12. 12. Marmalade Core • C++で記述でき、パ フォーマンスチューニン グが容易 • 過去のネイティブコード 資産の流用が容易に • 3Dエンジンは様々なレ イヤーでご用意
  13. 13. Marmalade Quick • Luaで記述でき、コー ディングが容易に • Cocos2d-xなどのオープ ンソースをベースに
  14. 14. 『レジェンド オブ キングダム』における Marmalade & Photon 利用事例
  15. 15. 「レジェンド オブ キングダム」 • PhotonとMarmaladeを ご採用いただいている、 ガンホー・オンライン・エ ンターテイメントさまの 「レジェンド オブ キング ダム」について、ご紹介 します!
  16. 16. お伺いしてきました! 鈴木 健 さま 「レジェンド オブ キングダム」 ディレクター。いくつかの家庭 用タイトルのプランナーを経て、 「ピコットキングダム」から本作 のディレクターを務める。 たまに「鈴木キングダム」とし て王様の恰好で現れることも ある。
  17. 17. お伺いしてきました! 澤田 朗 さま 「レジェンド オブ キングダム」メイ ンプログラマ。 やはりいくつかの家庭用タイトル のメインプログラマを経て、本作 のメインプログラマを務める。 本作のスピーディーでテンポのよ いマルチプレイを実現してくれた 立役者。
  18. 18. どんなタイトル? • タッチ操作だけで爽快ア クションが可能な、多人 数ベルトスクロールアク ションRPG • 最大4人同時マルチプレ イだけでなく、ストリーク エストやアリーナバトルな ども様々なゲームモード を搭載
  19. 19. 開発の経緯 • PlayStation®Vita版「ピコットナイト」 から、 iOS/Android向けに再開発を行った • Vita向けのC++ソースコードを最大限生かしな がら、スムーズに開発を行いたかった
  20. 20. なぜPhoton? • Marmaladeを利用していたので、SDKが組み 込みやすいPhotonは自然な選択 • シンプルにマッチメイキングとリレーができれ ばよかったので、Photon Realtimeでテストを 行い、そのままRealtimeでリリース
  21. 21. Photonの組み込み期間は? • SDKを組み込む部分は、1週間ほどで完了 ただ…、 • Vita版ではマルチプレイをP2Pで実装 • iOS/Android版では一旦外していたマルチプレイ を再実装するにあたり、様々な仕様変更があり、 復活させるには大きな工数が必要 • Photonそのものの組み込みは楽だったので、と ても助かりました!
  22. 22. どう使ってますか? • 本当にシンプルに使ってます • ルーム作成、ルームリスト、ゲーム内リレー • 簡単にマルチプレイを実現するならRealtime で十分に実現可能
  23. 23. Photonで苦労した点は? • ルーム検索がないので、自前で実装する必 要があった • クライアント側で実装 • 実際の通信部分はすごく楽でした
  24. 24. Marmaladeとの組み合わせ • Marmalade向けのClient SDKがあるので、組 み込みは至極簡単 • SDKを展開して、コードを追加するだけで完了
  25. 25. なぜMarmalade? • Vita向けのC++コードや自社のライブラリが あったため、それらを最大限生かし、 iOS/Androidのクロスプラットフォームを実現 するため
  26. 26. Marmaladeのメリット • 内製のC++ライブラリをほぼそのまま iOS/Androidの開発に活かせた – ネイティブ環境でそれぞれポーティングすることを 考えたら、かなりの工数を削減できたのでは • ハードウェアに依存する部分をある程度吸収 でき、工数削減に貢献
  27. 27. Marmaladeのメリット • プラットフォームのアップデート対応も早くできた • MarmaladeだけでiOS向けビルドができる – Xcodeを通さないので、良い点、悪い点あり • シンプルなライブラリなので、管理をしっかりす ればメモリ使用量は抑えられる – iPhone 4Sでも快適にプレイできる
  28. 28. Marmaladeの苦労点 • 日本では浸透していないので、日本語の資料 がほとんどなかった – 英語版の情報やフォーラムを参照していた • 時差があり、サポートに時間がかかることも • Androidの特定端末でつながらないことがあり、 端末を送って対応してもらったことも
  29. 29. まとめ • Photon Realtimeでマルチプレイの実装は本 当に簡単でした! • Marmaladeで既存C++コードの再利用も簡単 に!
  30. 30. Photon Enterprise Cloud 事例 GTMF2016 ワンダープラネット株式会社 取締役 CTO 村田知常
  31. 31. 32 自己紹介 32 村田 知常 ワンダープラネット株式会社 取締役 CTO 経歴 大学で生化学・遺伝子を学ぶ 10年間 SIerにて業務システム開発 2012年前身となる会社に転職 ワンダープラネットとして独立する際、取締役CTOに就任 著書 「SpriteKitではじめる2Dゲームプログラミング Swift対応」
  32. 32. 33 ワンダープラネット株式会社 33 • 2012年9月3日 設立 • スマートデバイス向けフルネイティブアプリ・ゲームの 企画・開発・運営・販売 • 名古屋本社 • 東京サテライトオフィス(2015年12月1日開設) • 従業員数 56名
  33. 33. 34 ゲーム紹介 34 • 400万ダウンロードを突破 • AppStoreセールスランク TOP10入り • 公式Twitterのフォロワー 15万を突破!! • 繁体字中国版(台湾・香港・マカオ)も展 開中 基本操作はタップでパネルを壊すだけ! 最上級の手軽さと仮想空間をモチーフとしたポジティブデザインで、 最高の気持ちイイが体験できるブッ壊しRPG。
  34. 34. 35 アジェンダ 35 • 構成概要 • なぜPhotonを選んだのか? • Photonを使って楽だった点、大変だった点 • Cocos2d-xとの組み合わせで大変だった点
  35. 35. 36 構成概要
  36. 36. 37 構成概要(サービス関連) 37 マルチプレイ サーバー CDN データ分析 クライアント Cocos2d-x v3.2
  37. 37. 38 使っている場面 38 ロビーに入った状態 ルームに入った状態 ゲームを開始した状態
  38. 38. 39 なぜPhotonを選んだのか
  39. 39. 40 なぜPhotonを選んだのか? 40 • サーバーエンジニア不足 • 短期間でマルチプレイを実現 マルチプレイを実現するにあたり…
  40. 40. 41 なぜPhotonを選んだのか? 41 • サーバーエンジニアの時間を なるべく割かずマルチプレイを実現したい • リアルタイム通信のサーバー運用に サーバーエンジニアの時間を割きたくない • リアルタイム通信のデリケートな部分は あらかじめ担保されている 実現するには…
  41. 41. 42 なぜPhotonを選んだのか? 42
  42. 42. 43 なぜPhotonを選んだのか? 43 • 別プロジェクトにて技術検証の実績があった • Photon Realtimeであればサーバー管理が不要 • いつでもCCUの増減が可能 (1,000 CCU単位) • Cocos2d-xに対応 • 多くの他社実績があり安心感 選定理由
  43. 43. 44 なぜPhotonを選んだのか? 44 • 運用していくと少し設定を変えたくなる • 10,000 CCU を超えたら… CCU=同時接続ユーザー数、プラン上は 10,000 CCUがMAX • 他の利用者の影響を受けたくない Photon Realtimeはパブリック環境 そして、夜のゲリラがだんだん重くなる しかし…
  44. 44. 45 なぜPhotonを選んだのか? 45 Photon Enterprise Cloud
  45. 45. 46 なぜPhotonを選んだのか? 46 Photon Enterprise Cloud • 専用サーバーで稼働 • サーバーの設定変更が可能 • プラグインでロジックのカスタマイズが可能 (クラッシュフィーバーでは未使用) • Photon Realtimeからの移行は プログラムの変更が一切不要!
  46. 46. 47 楽だった点、大変だった点
  47. 47. 48 Photonを使って楽だった点、大変だった点 48 • Photon Realtimeには無料プランがあるので すぐ簡単に検証することができる • 誰でもマルチプレイが実現可能 • マネージドサービスなので管理が楽 サーバーエンジニアはAPI側に集中できる 楽だった点
  48. 48. 49 Photonを使って楽だった点、大変だった点 49 • テクニカルな質問は提供元のExit Games社へ 確認するので時間が掛かる → 急ぎのときはフォーラムで質問(英語) • 実装上、気をつける点はその問題に当たってか ら知ることが多かった → 実例を紹介します 大変だった点
  49. 49. 50 Photonを使って楽だった点、大変だった点 50 CCUの増加と共に ルーム選択画面のリスト表示が 重くなってくる 【現象】ルーム選択画面の表示が遅い問題
  50. 50. 51 Photonを使って楽だった点、大変だった点 51 【原因】ルーム選択画面の表示が遅い問題 ロビー ルーム ルーム ルーム ルーム ルー ム ルー ム ルー ム ・・・ • Photonからはロビー内のルーム リスト情報が全て送られてくる • 絞り込んで表示するのは アプリ側で実装 ルームが多いと受信データが大きく なり、絞り込みにも時間が掛かる ルームリストのサイズが大きい
  51. 51. 52 Photonを使って楽だった点、大変だった点 52 【対策】ルーム一覧の表示が遅い問題 • ゲーム開始済みルームの非表 示 • カスタムプロパティの見直し • ロビーの分割
  52. 52. 53 Photonを使って楽だった点、大変だった点 53 【現象】ステータスコード 1033 問題 • ステータスコード 1033 が返り マルチプレイができない • Reliableの受信キューがいっぱいになっている という警告 • 一般的な対処法としては Client::service()を呼び出す頻度を上げる が、充分に呼び出していた
  53. 53. 54 Photonを使って楽だった点、大変だった点 54 【原因】ステータスコード 1033 問題 • ロビーリストのサイズが大きい • LINEマルチなどで名前付きロビーを作成して 実現していたのが原因 • そしてロビー内のルームが無くなっても ロビー自体は消えない・・・ ルームはルーム内のプレイヤーがいなくなると消えます
  54. 54. 55 Photonを使って楽だった点、大変だった点 55 【対策】ステータスコード 1033 問題 • 名前付きロビーではなくルーム名指定で 実現できるところは変更し ロビーを大量に作成しないように変更
  55. 55. 56 Cocos2d-xならではの大変
  56. 56. 57 Cocos2d-xと組み合わせで大変だった点 57 AndroidとiOSのSDKをそれぞれ導入 • Unityと比較すると導入が面倒
  57. 57. 58 Cocos2d-xと組み合わせで大変だった点 58 ドキュメント不足 • Web上のドキュメントを見ても例はC#ばかり • APIリファレンスは英語、まれに誤りが… • ソースコードは嘘をつかないので SDK側のソースコードを眺める
  58. 58. 59 最後に
  59. 59. 60 最後に 60 • 厳しいスケジュールの中 マルチプレイも含めてローンチできたのは Photon Realtimeのおかげ • もし使うか迷っていたら 無料で始められるのでまず触ってみる!
  60. 60. Photon最新情報
  61. 61. IPv6対応 • すべて対応済み – Photon Cloud: 全リージョン・全サービス対応済み – Photon Server: 4.0.28以降 – Native SDK(C++, Obj-C etc): 4.1.0.0以降 – NET SDK (Unity 3D, Windows系): 4.1.0.0以降 – PUN: 1.67以降 • 新規に申請される場合は、バージョンをご確認ください • 7/25のDeNA x Photon勉強会にて詳しくお話しします
  62. 62. Photon Turnbased終了 • クラウドサービスの一つであるTurnbasedが5/25 で新規申し込みが終了 • 現在ご利用いただいているお客様は継続利用 が可能です • プラン変更される場合は、Realtimeへ変更となり ます • Client SDKはRealtimeになってもそのままご利用 いただけます
  63. 63. 新サービス • 新しいサービスがリリース予定! – Photon Swarm – Photon Thunder – Photon TrueSync • 詳細は改めてお知らせします!
  64. 64. まとめ
  65. 65. 今後の予定 • 7/25(月) DeNA × Photon勉強会@GMO Yours(渋谷) • 8/3(水) XFLAG(mixi) x Photon勉強会@GMO Yours • 8/24-26 CEDEC 2016@横浜 セッション、Photonワークショップ PlayCanvasワークショップ この後も続々開催予定!
  66. 66. お問い合わせ • ブース出展しております ぜひお立ち寄りください • メールでのお問い合わせは Photon: developer@photonengine.jp Marmalade: info@madewithmarmalade.jp
  67. 67. まとめ • Unityだけではなく、様々なゲームエンジンと の相性も抜群です! • MarmaladeやCocos2d-xといった軽いエンジン のパワーをマルチプレイでもそのまま発揮で きるPhoton、ぜひお試しを!
  68. 68. ありがとうございました! developer@photonengine.jp info@madewithmarmalade.jp

×