photon enterprise cloud 事例

30
Photon Enterprise Cloud 事例 GTMF2016 ワンダープラネット株式会社 取締役 CTO 村⽥知常

Upload: tomotsune-murata

Post on 12-Feb-2017

119 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: Photon Enterprise Cloud 事例

Photon Enterprise Cloud 事例GTMF2016

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

Page 2: Photon Enterprise Cloud 事例

1 ⾃⼰紹介

1

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

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

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

Page 3: Photon Enterprise Cloud 事例

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

2

• 2012年9⽉3⽇ 設⽴

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

• 名古屋本社

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

• 従業員数 56名

Page 4: Photon Enterprise Cloud 事例

3 ゲーム紹介

3

• 400万ダウンロードを突破• AppStoreセールスランク TOP10⼊り

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

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

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

Page 5: Photon Enterprise Cloud 事例

4 アジェンダ

4

• 構成概要

• なぜPhotonを選んだのか?

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

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

Page 6: Photon Enterprise Cloud 事例

5

構成概要

Page 7: Photon Enterprise Cloud 事例

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

6

マルチプレイ

サーバー

CDN

データ分析

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

Page 8: Photon Enterprise Cloud 事例

7 使っている場⾯

7

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

Page 9: Photon Enterprise Cloud 事例

8

なぜPhotonを選んだのか

Page 10: Photon Enterprise Cloud 事例

9 なぜPhotonを選んだのか?

9

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

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

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

Page 11: Photon Enterprise Cloud 事例

10 なぜPhotonを選んだのか?

10

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

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

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

実現するには…

Page 12: Photon Enterprise Cloud 事例

11 なぜPhotonを選んだのか?

11

Page 13: Photon Enterprise Cloud 事例

12 なぜPhotonを選んだのか?

12

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

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

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

• Cocos2d-xに対応

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

選定理由

Page 14: Photon Enterprise Cloud 事例

13 なぜPhotonを選んだのか?

13

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

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

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

しかし…

Page 15: Photon Enterprise Cloud 事例

14 なぜPhotonを選んだのか?

14

Photon Enterprise Cloud

Page 16: Photon Enterprise Cloud 事例

15 なぜPhotonを選んだのか?

15

Photon Enterprise Cloud

• 専⽤サーバーで稼働

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

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

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

Page 17: Photon Enterprise Cloud 事例

16

楽だった点、⼤変だった点

Page 18: Photon Enterprise Cloud 事例

17 Photonを使って楽だった点、⼤変だった点

17

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

• 誰でもマルチプレイが実現可能• マネージドサービスなので管理が楽サーバーエンジニアはAPI側に集中できる

楽だった点

Page 19: Photon Enterprise Cloud 事例

18 Photonを使って楽だった点、⼤変だった点

18

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

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

⼤変だった点

Page 20: Photon Enterprise Cloud 事例

19 Photonを使って楽だった点、⼤変だった点

19

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

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

Page 21: Photon Enterprise Cloud 事例

20 Photonを使って楽だった点、⼤変だった点

20

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

ロビールーム

ルーム

ルーム

ルーム

ルーム ルーム ルーム

・・・

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

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

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

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

Page 22: Photon Enterprise Cloud 事例

21 Photonを使って楽だった点、⼤変だった点

21

【対策】ルーム⼀覧の表⽰が遅い問題• ゲーム開始済みルームの⾮表⽰• カスタムプロパティの⾒直し• ロビーの分割

Page 23: Photon Enterprise Cloud 事例

22 Photonを使って楽だった点、⼤変だった点

22

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

マルチプレイができない• Reliableの受信キューがいっぱいになっている

という警告• ⼀般的な対処法としては

Client::service()を呼び出す頻度を上げるが、充分に呼び出していた

Page 24: Photon Enterprise Cloud 事例

23 Photonを使って楽だった点、⼤変だった点

23

【原因】ステータスコード 1033 問題• ロビーリストのサイズが⼤きい• LINEマルチなどで名前付きロビーを作成して

実現していたのが原因• そしてロビー内のルームが無くなっても

ロビー⾃体は消えない・・・ルームはルーム内のプレイヤーがいなくなると消えます

Page 25: Photon Enterprise Cloud 事例

24 Photonを使って楽だった点、⼤変だった点

24

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

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

Page 26: Photon Enterprise Cloud 事例

25

Cocos2d-xならではの⼤変

Page 27: Photon Enterprise Cloud 事例

26 Cocos2d-xと組み合わせで⼤変だった点

26

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

• Unityと⽐較すると導⼊が⾯倒

Page 28: Photon Enterprise Cloud 事例

27 Cocos2d-xと組み合わせで⼤変だった点

27

ドキュメント不⾜• Web上のドキュメントを⾒ても例はC#ばかり• APIリファレンスは英語、まれに誤りが…

• ソースコードは嘘をつかないのでSDK側のソースコードを眺める

Page 29: Photon Enterprise Cloud 事例

28

最後に

Page 30: Photon Enterprise Cloud 事例

29 最後に

29

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

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