gmoアプリクラウドではじめる photon server v4 (2016/4/20 発表資料)

28
GMO アアアアアアアアアアアア Photon Server v4 Photon アアアアア アア アア 2016/04/20

Upload: gmo-cloud-kk

Post on 14-Apr-2017

877 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: GMOアプリクラウドではじめる Photon Server v4 (2016/4/20 発表資料)

GMO アプリクラウドではじめる Photon Server v4Photon 運営事務局山本 昇平 2016/04/20

Page 2: GMOアプリクラウドではじめる Photon Server v4 (2016/4/20 発表資料)

自己紹介• 氏名 : 山本昇平 (Syohei Yamamoto)• 所属 : GMO クラウド株式会社• 役割 : 各種ソリューションの技術担当• 趣味はゲームと料理

– 好きなゲーム : 任天堂の某イカゲー• プレイ時間 1,000 時間以上、ウデマエは当然 S+ (最上位)• 会員数 5000 人以上のプレイヤー間交流サイトを作った

– やっぱりマルチプレイのゲームは面白い!!2

Page 3: GMOアプリクラウドではじめる Photon Server v4 (2016/4/20 発表資料)

アジェンダ1. GMO アプリクラウドに Photon Server の環境を構築する2. サーバサイドアプリを構築する3. 実際に動かしてみるこのセッションを聞いて簡単なPhoton Server アプリケーションを作ろう

Page 4: GMOアプリクラウドではじめる Photon Server v4 (2016/4/20 発表資料)

GMOアプリクラウドにPhoton Serverを構築する

Page 5: GMOアプリクラウドではじめる Photon Server v4 (2016/4/20 発表資料)

Photon Server とは• マルチプレイを簡単に実現するためのサービス• サーバーにインストールするミドルウェア• SDK でソースコードを公開しています

– Ver.4 により Plugin 形式で開発が簡単に!– C# によるビジネスロジック

• App Store 上位タイトルでも利用5

Page 6: GMOアプリクラウドではじめる Photon Server v4 (2016/4/20 発表資料)

GMO アプリクラウドとは?• ゲームやアプリに特化した IaaS 型クラウド

– 10GB のネットワーク環境を提供することで、大量トラフィックに対応– 116 種類のプランを提供し用途に応じて選択可能– 転送量の上限を設定しコストを気にせず利用可能

• 剣と魔法のログレスといった、有名タイトルでも利用されています6

Page 7: GMOアプリクラウドではじめる Photon Server v4 (2016/4/20 発表資料)

Photon x GMO アプリクラウド

7

GMO アプリクラウドはPhoton 運営事務局の推奨するクラウドサーバーです

http://cloud.gmo.jp/spec/Photon/

Page 8: GMOアプリクラウドではじめる Photon Server v4 (2016/4/20 発表資料)

GMO アプリクラウドのメリット

8

1 . Photon Server 全自動セットアップ【 new 】

2 . 24 時間 365 日 無料電話サポート

3 . データ転送量 利用料金に上限キャップ

コントロールパネルから Photon Server がインストールされたサーバーをわずか数クリック、数分で立ち上げることが可能です。その際、面倒なネットワーク設定や Config 設定も全自動で設定します。

GMO アプリクラウドのご契約者様のみ、 Photon 運営事務局では通常行っていない電話サポートを 24 時間 365 日体制で無料提供しています。 Photon Server のセットアップ方法を丁寧にサポートいたします。

リアルタイムやマルチ対戦などのオンラインゲームはデータ転送量が嵩みます。 GMO アプリクラウドでは、どれだけデータ転送量が発生してもご利用料金は 3 万円 / 月(モバイルゲームの場合)が上限です。

Page 9: GMOアプリクラウドではじめる Photon Server v4 (2016/4/20 発表資料)

全自動セットアップSTEP

1•サーバー( Windows )の作成

STEP2

•Photon SDK のダウンロード + 設置

STEP3

•ロードバランサーのネットワーク設定

STEP4

•Photon Config の設定

STEP5

•ライセンス のダウンロード + 設置

STEP6

•Photon Application の起動

・サーバー( Windows )の作成

・ライセンス のダウンロード + 設置・ Photon Apllication の起動

■Before ■After

STEP2 ~ 4 を自動セットアップ

9

Photon Server 全自動セットアップ 実装前・後の比較

Page 10: GMOアプリクラウドではじめる Photon Server v4 (2016/4/20 発表資料)

今回の手順について今回行う手順は下記 PDF に纏められています• Photon 自動構築ガイド• http://cloud.gmo.jp/spec/photon/guide/photon_ver.

4_automatic_settings_guide.pdf

簡単な操作で Photon Server セットアップ済のサーバを構築すること可能!デモ

Page 11: GMOアプリクラウドではじめる Photon Server v4 (2016/4/20 発表資料)

サーバサイドアプリを構築する

Page 12: GMOアプリクラウドではじめる Photon Server v4 (2016/4/20 発表資料)

サーバサイドアプリの作り方Photon Server では2つの方法があります1. Photon Server 用のカスタマイズアプリケーションを作る2. カスタマイズアプリケーション上で利用できる

Plugin を作る

Page 13: GMOアプリクラウドではじめる Photon Server v4 (2016/4/20 発表資料)

サーバサイドアプリの作り方Photon Server では2つの方法があります1. Photon Server 用のカスタマイズアプリケーションを作る2. カスタマイズアプリケーション上で利用できる

Plugin を作る今回はこちら

Page 14: GMOアプリクラウドではじめる Photon Server v4 (2016/4/20 発表資料)

Plugin の作り方の大まかな手順1. プログラムを作成する・ビルドする2. ビルドした DLL をフォルダに配置3. コンフィグに Plugin の設定を行う

具体的にどんなことができるの??

Page 15: GMOアプリクラウドではじめる Photon Server v4 (2016/4/20 発表資料)

Plugin を使ってできる例プレイヤー情報を外部サイトに Post

プレイヤー名 : プレイヤー 1ランク : 50ウデマエ : S+ブキ : 3K スコープ

プレイヤー 1・レベル : 50・ランク : S+・ブキ : 3K スコープ外部サイト

現在のルーム情報

Plugin

入室 Post

Page 16: GMOアプリクラウドではじめる Photon Server v4 (2016/4/20 発表資料)

プログラムにすると…プレイヤー 1・レベル : 50・ランク : S+・ブキ : 3K スコープ外部サイト

現在のルーム情報

PhotonNetwork.playerName = “ プレイヤー 1”PhotonNetwork.SetPlayerCustomProperties(new Hashtable() { { “level”, “50” }, { “rank”, “S+”}, { “weapon”, “3K スコープ” },}

public override void OnSetProperties(ISetPropertiesCallInfo info) { //省略 HttpClient httpClient = new HttpClient(); HttpContent content = new FormUrlEncodedContent(dict); var resopnse = await httpClient.PostAsync(url, content);

プレイヤー情報を外部サイトに Post

Plugin

入室 Post

Page 17: GMOアプリクラウドではじめる Photon Server v4 (2016/4/20 発表資料)

プログラムを作成する5 class PluginFactory : IPluginFactory6 {7 public IGamePlugin Create(IPluginHost gameHost, string pluginName,

Dictionary<string, string> config, out string errorMsg)8 {9 var plugin = new TestPlugin();10 if (plugin.SetupInstance(gameHost, config, out errorMsg))11 {12 return plugin;13 }14 return null;15 }16 }

• エントリーポイントとなるファクトリクラスを作成する• TestPlugin クラスのインスタンスを作成

Page 18: GMOアプリクラウドではじめる Photon Server v4 (2016/4/20 発表資料)

プログラムを作成する19 public override void OnSetProperties(ISetPropertiesCallInfo info)20 {

// 中略24 var dict = new Dictionary<string, string>();2526 dict["player_name"] = info.Nickname;2728 foreach (DictionaryEntry entry in info.Request.Properties)29 {30 dict[entry.Key.ToString()] = entry.Value.ToString();31 }

• PluginBase#OnSetProperties コールバック– カスタムプロパティをセットしたタイミング(ルーム入室と同時)によばれる– プレイヤー名とカスタムプロパティを Dictionary に変更

Page 19: GMOアプリクラウドではじめる Photon Server v4 (2016/4/20 発表資料)

プログラムを作成する47 HttpClient httpClient = new HttpClient();

50 HttpContent content = new FormUrlEncodedContent(dict);5152 var resopnse = await httpClient.PostAsync(url, content);53 var result= await resopnse.Content.ReadAsStringAsync();

• 外部Web サービスに Post する– 今回は .NET に搭載されている HttpClient#PostAsync を使いました– 当たり前ですが、ビジネスロジックは通常の C# を使って書くことが可能

プログラムが完成したら、 DLL にビルドする!デモ

Page 20: GMOアプリクラウドではじめる Photon Server v4 (2016/4/20 発表資料)

ビルドした DLL をフォルダに配置DLL は Plugins のフォルダの直下に配置Plugins┗[Plugin のアプリケーション名 ] ┗ bin  ┗ dll一式

Page 21: GMOアプリクラウドではじめる Photon Server v4 (2016/4/20 発表資料)

ビルドした DLL をフォルダに配置例 )プラグイン名 : PluginTest%Photon%\deploy\Plugins\PluginTest\bin\PhotonHive.PluginTest.dll

Page 22: GMOアプリクラウドではじめる Photon Server v4 (2016/4/20 発表資料)

コンフィグに Plugin の設定を行う今回は標準で搭載されている Loadbalancingアプリケーションに Plugin を追加してみる• Loadbalancing.dll.config に参照する DLL の情報を記入する254 <PluginSettings Enabled="true">255 <Plugins>256 <Plugin257 Name=“PluginTest"258 Version=""259 AssemblyName="PhotonHive.PluginTest.dll"260 Type="Photon.Hive.Plugin.PluginTest.PluginFactory" />261 </Plugins>262 </PluginSettings>

Page 23: GMOアプリクラウドではじめる Photon Server v4 (2016/4/20 発表資料)

コンフィグに Plugin の設定を行う今回は標準で搭載されている Loadbalancingアプリケーションに Plugin を追加してみる• Loadbalancing.dll.config に参照する DLL の情報を記入する254 <PluginSettings Enabled="true">255 <Plugins>256 <Plugin257 Name=”PluginTest"258 Version=""259 AssemblyName="PhotonHive.PluginTest.dll"260 Type="Photon.Hive.Plugin.PluginTest.PluginFactory" />261 </Plugins>262 </PluginSettings>

プラグイン名 作成したDLL エントリーポイントのファクトリクラス

Page 24: GMOアプリクラウドではじめる Photon Server v4 (2016/4/20 発表資料)

アプリケーションの起動ログを確認して DLL が正しく読み込まれていることを確認します2016-04-18 16:57:47,508 [1] INFO Photon.Hive.Plugin.PluginManager - Plugin Type Photon.Hive.Plugin.PluginTest.PluginFactory from assembly PhotonHive.PluginTest, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null was successfully created2016-04-18 16:57:47,509 [1] INFO Photon.Hive.Plugin.PluginManager - Plugin manager (version=1.0.15.11060) is setup. type=Photon.Hive.Plugin.PluginTest.PluginFactory;path=C:\Photon\deploy\Plugins\PluginTest\\bin\PhotonHive.PluginTest.dll;version=1.0.15.11060

%Photon%\deploy\log\GSGame.log から抜粋

Page 25: GMOアプリクラウドではじめる Photon Server v4 (2016/4/20 発表資料)

まとめGMO アプリクラウドと Photon Server を使うことで• 簡単な操作でセットアップ済みサーバを構築可能

– 自動で Photon Server のインストールを行います– アプリクラウド側+ Photon側のネットワークの設定が不要– http://cloud.gmo.jp/spec/photon/

Plugin を使うことでサーバサイドロジックを作ることが可能• 外部サービス連携を作る場合に便利• DLL 作成後のデプロイ作業は配置と設定だけ完了

Page 26: GMOアプリクラウドではじめる Photon Server v4 (2016/4/20 発表資料)

最後に例のプログラムは下記 URL にて公開しています。• Photon Server アプリケーション• https://github.com/syyama/PhotonPluginTest

Plugin の詳細については下記の勉強会にて解説します!• 1 時間でわかる Plugin 開発と Enterprise Cloud の詳解• 5/18 GMO Yours (ココ)で開催します!• https://atnd.org/events/76303

Page 27: GMOアプリクラウドではじめる Photon Server v4 (2016/4/20 発表資料)

お知らせ一緒に盛り上げてくれる仲間を大募集中!

( エンジニア、営業などなど )27

Page 28: GMOアプリクラウドではじめる Photon Server v4 (2016/4/20 発表資料)

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