gtmf 2016:cocos2d-x/marmalade&photon最新事例 gmoクラウド株式会社

69
Cocos2d-x/Marmalade & Photon 最最最最 GMO 最最最最最最最最 最最 最最最

Upload: game-tools-middleware-forum

Post on 12-Apr-2017

206 views

Category:

Technology


1 download

TRANSCRIPT

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

Cocos2d-x/Marmalade & Photon最新事例 GMO クラウド株式会社並木 健太郎

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

自己紹介• GMO クラウドの並木です• Photon 運営事務局、 Marmalade 運営事務局

PlayCanvas 運営事務局シニアテクニカルアドバイザー• 趣味:神輿、 DJ

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

アジェンダ• Photon のご紹介• Marmalade のご紹介• 『レジェンド オブ キングダム』における

Marmalade & Photon 利用事例• 『クラッシュフィーバー』における

Cocos2d-x & Photon 利用事例– ワンダープラネット株式会社 取締役 CTO 村田 知常さま 

• Photon 最新情報

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

Photon のご紹介

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

Photon のしくみ• すべてのクライアント (= プレイヤー ) はサーバーへ接続する• サーバーはクライアント間の通信をリレーする役割• サーバー自身は基本的には処理を行わないが、 Webhooks や Plugin を利用してカスタマイズも可能

Photon

Client Client Client

SDK SDK SDK

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

Photon のサービス形態• クラウド型サービス• サーバーはサービス提供元で運用• クライアントに SDK を組み込むだけで利用可能

• ミドルウェア型サービス• ソフトウェアとしてご提供、お客さまで運用• サーバーサイドのカスタマイズが自由に

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

Photon Cloud のラインナップ汎用性の優れたスタンダードな Realtime

Unity 向けに特化された Unity Networking

Chat に特化したサービスの Chat

音声通話を簡単に導入できる Voice

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

Photon Enterprise Cloud• Photon Cloud の上位サービスとして、

Photon Enterprise Cloud をご用意しています• Photon Cloud では難しいと思われる場合でも、 Enterprise Cloud なら大丈夫です!

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

Cloud vs. Enterprise CloudCloud• Public サービス ( 共有 )• 10,000CCU まで• Webhooks 対応• 複数タイトル共有不可• サーバー設定変更不可

Enterprise Cloud• Private サービス ( 専有 )• CCU 上限なし• Webhooks & Plugin 対応• 複数タイトル共有可能• サーバー設定変更可能

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

Marmalade のご紹介

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

Marmalade とは• 単一のコード (C++ など )から、様々なプラットフォームへデプロイできるクロスプラットフォーム SDK• 抽象化レイヤーは最小のフットプリントで、ハードウェアの能力を最大限発揮可能

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

Marmalade Core• C++ で記述でき、パフォーマンスチューニングが容易• 過去のネイティブコード資産の流用が容易に• 3D エンジンは様々なレイヤーでご用意

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

Marmalade Quick• Lua で記述でき、コーディングが容易に• Cocos2d-x などのオープンソースをベースに

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

『レジェンド オブ キングダム』におけるMarmalade & Photon 利用事例

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

「レジェンド オブ キングダム」• Photon と Marmaladeをご採用いただいている、ガンホー・オンライン・エンターテイメントさまの「レジェンド オブ キングダム」について、ご紹介します!

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

お伺いしてきました!鈴木 健 さま

「レジェンド オブ キングダム」ディレクター。いくつかの家庭用タイトルのプランナーを経て、「ピコットキングダム」から本作のディレクターを務める。たまに「鈴木キングダム」として王様の恰好で現れることもある。

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

お伺いしてきました!澤田 朗 さま

「レジェンド オブ キングダム」メインプログラマ。やはりいくつかの家庭用タイトルのメインプログラマを経て、本作のメインプログラマを務める。本作のスピーディーでテンポのよいマルチプレイを実現してくれた立役者。

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

どんなタイトル?• タッチ操作だけで爽快アクションが可能な、多人数ベルトスクロールアクション

RPG• 最大 4 人同時マルチプレイだけでなく、ストリークエストやアリーナバトルなども様々なゲームモードを搭載

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

開発の経緯• PlayStation®Vita 版「ピコットナイト」 から、 iOS/Android 向けに再開発を行った• Vita 向けの C++ ソースコードを最大限生かしながら、スムーズに開発を行いたかった

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

なぜ Photon ?• Marmalade を利用していたので、 SDK が組み込みやすい Photon は自然な選択• シンプルにマッチメイキングとリレーができればよかったので、 Photon Realtimeでテストを行い、そのまま Realtime でリリース

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

Photon の組み込み期間は?• SDK を組み込む部分は、1週間ほどで完了ただ…、• Vita 版ではマルチプレイを P2P で実装• iOS/Android 版では一旦外していたマルチプレイを再実装するにあたり、様々な仕様変更があり、復活させるには大きな工数が必要• Photonそのものの組み込みは楽だったので、とても助かりました!

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

どう使ってますか?• 本当にシンプルに使ってます• ルーム作成、ルームリスト、ゲーム内リレー• 簡単にマルチプレイを実現するなら

Realtime で十分に実現可能

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

Photon で苦労した点は?• ルーム検索がないので、自前で実装する必要があった• クライアント側で実装• 実際の通信部分はすごく楽でした

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

Marmalade との組み合わせ• Marmalade 向けの Client SDK があるので、組み込みは至極簡単• SDK を展開して、コードを追加するだけで完了

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

なぜMarmalade ?• Vita 向けの C++ コードや自社のライブラリがあったため、それらを最大限生かし、 iOS/Android のクロスプラットフォームを実現するため

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

Marmalade のメリット• 内製の C++ ライブラリをほぼそのまま iOS/

Android の開発に活かせた– ネイティブ環境でそれぞれポーティングすることを考えたら、かなりの工数を削減できたのでは

• ハードウェアに依存する部分をある程度吸収でき、工数削減に貢献

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

Marmalade のメリット• プラットフォームのアップデート対応も早くできた• Marmalade だけで iOS 向けビルドができる

– Xcode を通さないので、良い点、悪い点あり• シンプルなライブラリなので、管理をしっかりすればメモリ使用量は抑えられる

– iPhone 4S でも快適にプレイできる

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

Marmalade の苦労点• 日本では浸透していないので、日本語の資料がほとんどなかった

–英語版の情報やフォーラムを参照していた• 時差があり、サポートに時間がかかることも• Android の特定端末でつながらないことがあり、端末を送って対応してもらったことも

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

まとめ• Photon Realtime でマルチプレイの実装は本当に簡単でした!• Marmalade で既存 C++ コードの再利用も簡単に!

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

Photon Enterprise Cloud 事例 GTMF2016

ワンダープラネット株式会社取締役  CTO  村田知常

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

32 自己紹介

32

村田 知常

ワンダープラネット株式会社 取締役 CTO経歴

 大学で生化学・遺伝子を学ぶ  10 年間 SIer にて業務システム開発  2012 年前身となる会社に転職 ワンダープラネットとして独立する際、取締役 CTO に就任

著書 「 SpriteKit ではじめる 2D ゲームプログラミング Swift 対応」

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

33 ワンダープラネット株式会社

33

• 2012 年 9 月 3 日 設立

• スマートデバイス向けフルネイティブアプリ・ゲームの企画・開発・運営・販売

• 名古屋本社

• 東京サテライトオフィス( 2015 年 12 月 1 日開設)

• 従業員数  56 名

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

34 ゲーム紹介

34

• 400 万ダウンロードを突破

• AppStore セールスランク TOP10 入り

• 公式 Twitter のフォロワー 15 万を突破!!

• 繁体字中国版(台湾・香港・マカオ)も展開中

基本操作はタップでパネルを壊すだけ!最上級の手軽さと仮想空間をモチーフとしたポジティブデザインで、最高の気持ちイイが体験できるブッ壊し RPG 。

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

35 アジェンダ

35

• 構成概要

• なぜ Photon を選んだのか?

• Photon を使って楽だった点、大変だった点

• Cocos2d-x との組み合わせで大変だった点

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

36

構成概要

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

37 構成概要(サービス関連)

37

マルチプレイ

サーバー

CDN

データ分析

クライアントCocos2d-x v3.2

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

38 使っている場面

38

ロビーに入った状態 ルームに入った状態 ゲームを開始した状態

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

39

なぜ Photon を選んだのか

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

40 なぜ Photon を選んだのか?

40

• サーバーエンジニア不足

• 短期間でマルチプレイを実現

マルチプレイを実現するにあたり…

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

41 なぜ Photon を選んだのか?

41

• サーバーエンジニアの時間をなるべく割かずマルチプレイを実現したい

• リアルタイム通信のサーバー運用にサーバーエンジニアの時間を割きたくない

• リアルタイム通信のデリケートな部分はあらかじめ担保されている

実現するには…

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

42 なぜ Photon を選んだのか?

42

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

43 なぜ Photon を選んだのか?

43

• 別プロジェクトにて技術検証の実績があった

• Photon Realtime であればサーバー管理が不要

• いつでも CCU の増減が可能 (1,000 CCU 単位 )

• Cocos2d-x に対応

• 多くの他社実績があり安心感

選定理由

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

44 なぜ Photon を選んだのか?

44

• 運用していくと少し設定を変えたくなる

• 10,000 CCU を超えたら…CCU= 同時接続ユーザー数、プラン上は 10,000 CCU が MAX

• 他の利用者の影響を受けたくないPhoton Realtime はパブリック環境そして、夜のゲリラがだんだん重くなる

しかし…

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

45 なぜ Photon を選んだのか?

45

Photon Enterprise Cloud

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

46 なぜ Photon を選んだのか?

46

Photon Enterprise Cloud• 専用サーバーで稼働

• サーバーの設定変更が可能

• プラグインでロジックのカスタマイズが可能(クラッシュフィーバーでは未使用)

• Photon Realtime からの移行はプログラムの変更が一切不要!

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

47

楽だった点、大変だった点

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

48 Photon を使って楽だった点、大変だった点

48

• Photon Realtime には無料プランがあるのですぐ簡単に検証することができる

• 誰でもマルチプレイが実現可能

• マネージドサービスなので管理が楽サーバーエンジニアは API側に集中できる

楽だった点

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

49 Photon を使って楽だった点、大変だった点

49

• テクニカルな質問は提供元の Exit Games 社へ確認するので時間が掛かる→ 急ぎのときはフォーラムで質問(英語)

• 実装上、気をつける点はその問題に当たってから知ることが多かった→ 実例を紹介します

大変だった点

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

50 Photon を使って楽だった点、大変だった点

50

CCU の増加と共にルーム選択画面のリスト表示が 重くなってくる

【現象】ルーム選択画面の表示が遅い問題

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

51 Photon を使って楽だった点、大変だった点

51

【原因】ルーム選択画面の表示が遅い問題

ロビールーム

ルーム

ルーム

ルーム

ルーム

ルーム

ルーム

・・・

• Photon からはロビー内のルームリスト情報が全て送られてくる

• 絞り込んで表示するのはアプリ側で実装

ルームが多いと受信データが大きくなり、絞り込みにも時間が掛かる

ルームリストのサイズが大きい

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

52 Photon を使って楽だった点、大変だった点

52

【対策】ルーム一覧の表示が遅い問題

• ゲーム開始済みルームの非表示

• カスタムプロパティの見直し

• ロビーの分割

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

53 Photon を使って楽だった点、大変だった点

53

【現象】ステータスコード 1033 問題• ステータスコード 1033 が返り

マルチプレイができない

• Reliable の受信キューがいっぱいになっているという警告

• 一般的な対処法としては  Client::service() を呼び出す頻度を上げるが、充分に呼び出していた

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

54 Photon を使って楽だった点、大変だった点

54

【原因】ステータスコード 1033 問題• ロビーリストのサイズが大きい

• LINE マルチなどで名前付きロビーを作成して実現していたのが原因

• そしてロビー内のルームが無くなってもロビー自体は消えない・・・ルームはルーム内のプレイヤーがいなくなると消えます

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

55 Photon を使って楽だった点、大変だった点

55

【対策】ステータスコード 1033 問題• 名前付きロビーではなくルーム名指定で

実現できるところは変更しロビーを大量に作成しないように変更

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

56

Cocos2d-x ならではの大変

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

57 Cocos2d-x と組み合わせで大変だった点

57

Android と iOS の SDK をそれぞれ導入

• Unity と比較すると導入が面倒

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

58 Cocos2d-x と組み合わせで大変だった点

58

ドキュメント不足• Web 上のドキュメントを見ても例は C# ばか

り• API リファレンスは英語、まれに誤りが…• ソースコードは嘘をつかないので

SDK側のソースコードを眺める

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

59

最後に

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

60 最後に

60

• 厳しいスケジュールの中マルチプレイも含めてローンチできたのはPhoton Realtime のおかげ

• もし使うか迷っていたら無料で始められるのでまず触ってみる!

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

Photon 最新情報

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

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勉強会にて詳しくお話しします

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

Photon Turnbased終了• クラウドサービスの一つである Turnbased が 5/25 で新規申し込みが終了• 現在ご利用いただいているお客様は継続利用が可能です• プラン変更される場合は、 Realtime へ変更となります• Client SDK は Realtime になってもそのままご利用いただけます

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

新サービス• 新しいサービスがリリース予定!

– Photon Swarm– Photon Thunder– Photon TrueSync

• 詳細は改めてお知らせします!

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

まとめ

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

今後の予定• 7/25(月 ) DeNA × Photon勉強会 @GMO Yours(渋谷 )• 8/3(水 ) XFLAG(mixi) x Photon勉強会 @GMO Yours• 8/24-26 CEDEC 2016@横浜セッション、 Photon ワークショップ

PlayCanvas ワークショップこの後も続々開催予定!

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

お問い合わせ• ブース出展しておりますぜひお立ち寄りください• メールでのお問い合わせは

Photon: [email protected]: [email protected]

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

まとめ• Unity だけではなく、様々なゲームエンジンとの相性も抜群です!• Marmalade や Cocos2d-x といった軽いエンジンのパワーをマルチプレイでもそのまま発揮できる Photon 、ぜひお試しを!

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

ありがとうございました![email protected]

[email protected]