GMOアプリクラウドではじめる
Photon Server v4
Photon 運営事務局
山本 昇平 2016/04/20
自己紹介
• 氏名: 山本昇平(Syohei Yamamoto)
• 所属: GMOクラウド株式会社
• 役割: 各種ソリューションの技術担当
• 趣味はゲームと料理
– 好きなゲーム: 任天堂の某イカゲー
• プレイ時間1,000時間以上、ウデマエは当然S+(最上位)
• 会員数5000人以上のプレイヤー間交流サイトを作った
– やっぱりマルチプレイのゲームは面白い!!
2
アジェンダ
1. GMOアプリクラウドにPhoton Serverの環
境を構築する
2. サーバサイドアプリを構築する
3. 実際に動かしてみる
このセッションを聞いて簡単な
Photon Serverアプリケーションを作ろう
GMOアプリクラウドにPhoton Serverを
構築する
Photon Serverとは
• マルチプレイを簡単に実現するためのサービス
• サーバーにインストールするミドルウェア
• SDKでソースコードを公開しています
– Ver.4によりPlugin形式で開発が簡単に!
– C#によるビジネスロジック
• App Store上位タイトルでも利用
5
GMOアプリクラウドとは?
• ゲームやアプリに特化したIaaS型クラウド
– 10GBのネットワーク環境を提供することで、大量ト
ラフィックに対応
– 116種類のプランを提供し用途に応じて選択可能
– 転送量の上限を設定しコストを気にせず利用可能
• 剣と魔法のログレスといった、
有名タイトルでも利用されています
6
Photon x GMOアプリクラウド
7
GMOアプリクラウドは
Photon運営事務局の推奨する
クラウドサーバーです
http://cloud.gmo.jp/spec/Photon/
GMOアプリクラウドのメリット
8
1. Photon Server 全自動セットアップ【new】
2. 24時間365日 無料電話サポート
3. データ転送量 利用料金に上限キャップ
コントロールパネルからPhoton Serverがインストールされたサーバーをわずか数クリック、数分
で立ち上げることが可能です。その際、面倒なネットワーク設定やConfig設定も全自動で設定し
ます。
GMOアプリクラウドのご契約者様のみ、Photon運営事務局では通常行っていない電話サポートを
24時間365日体制で無料提供しています。Photon Serverのセットアップ方法を丁寧にサポートい
たします。
リアルタイムやマルチ対戦などのオンラインゲームはデータ転送量が嵩みます。GMOアプリクラ
ウドでは、どれだけデータ転送量が発生してもご利用料金は3万円/月(モバイルゲームの場合)
が上限です。
全自動セットアップ
STEP1
•サーバー(Windows)の作成
STEP2
•Photon SDK のダウンロード+設置
STEP3
•ロードバランサーのネットワーク設定
STEP4
•Photon Config の設定
STEP5
•ライセンス のダウンロード+設置
STEP6
•Photon Application の起動
・サーバー(Windows)の作成
・ライセンス のダウンロード+設置
・Photon Apllicationの起動
■Before ■After
9
Photon Server 全自動セットアップ 実装前・後の比較
今回の手順について
今回行う手順は下記PDFに纏められています
• Photon自動構築ガイド
• http://cloud.gmo.jp/spec/photon/guide/photon_ver.4_auto
matic_settings_guide.pdf
簡単な操作でPhoton Serverセットアップ済のサー
バを構築すること可能!
デモ
サーバサイドアプリを構築する
サーバサイドアプリの作り方
Photon Serverでは2つの方法があります
1. Photon Server用のカスタマイズアプリケー
ションを作る
2. カスタマイズアプリケーション上で利用できる
Pluginを作る
サーバサイドアプリの作り方
Photon Serverでは2つの方法があります
1. Photon Server用のカスタマイズアプリケー
ションを作る
2. カスタマイズアプリケーション上で利用できる
Pluginを作る
今回はこちら
Pluginの作り方の大まかな手順
1. プログラムを作成する・ビルドする
2. ビルドしたDLLをフォルダに配置
3. コンフィグにPluginの設定を行う
具体的にどんなことができるの??
Pluginを使ってできる例
プレイヤー情報を
外部サイトにPost
プレイヤー名: プレイヤー1
ランク: 50
ウデマエ: S+
ブキ: 3Kスコープ
プレイヤー1
・レベル: 50
・ランク: S+
・ブキ: 3Kスコープ
外部サイト
現在のルーム
情報
Plugin
入室 Post
プログラムにすると…
プレイヤー1
・レベル: 50
・ランク: S+
・ブキ: 3Kスコープ
外部サイト
現在のルーム
情報
PhotonNetwork.playerName = “プレイ
ヤー1”
PhotonNetwork.SetPlayerCustomPrope
rties(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
プログラムを作成する
5 class PluginFactory : IPluginFactory
6 {
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クラスのインスタンスを作成
プログラムを作成する
19 public override void OnSetProperties(ISetPropertiesCallInfo info)
20 {
// 中略
24 var dict = new Dictionary<string, string>();
25
26 dict["player_name"] = info.Nickname;
27
28 foreach (DictionaryEntry entry in info.Request.Properties)
29 {
30 dict[entry.Key.ToString()] = entry.Value.ToString();
31 }
• PluginBase#OnSetPropertiesコールバック
– カスタムプロパティをセットしたタイミング(ルーム入室と同時)によばれる
– プレイヤー名とカスタムプロパティをDictionaryに変更
プログラムを作成する
47 HttpClient httpClient = new HttpClient();
50 HttpContent content = new FormUrlEncodedContent(dict);
51
52 var resopnse = await httpClient.PostAsync(url, content);
53 var result= await resopnse.Content.ReadAsStringAsync();
• 外部WebサービスにPostする
– 今回は.NETに搭載されているHttpClient#PostAsyncを使いました
– 当たり前ですが、ビジネスロジックは通常のC#を使って書くことが可能
プログラムが完成したら、DLLにビルドする!
デモ
ビルドしたDLLをフォルダに配置
DLLはPluginsのフォルダの直下に配置
Plugins
┗[Pluginのアプリケーション名]
┗bin
┗dll一式
ビルドしたDLLをフォルダに配置
例)
プラグイン名: PluginTest
%Photon%deployPlugins
PluginTestbinPhotonHive.
PluginTest.dll
コンフィグにPluginの設定を行う
今回は標準で搭載されているLoadbalancing
アプリケーションにPluginを追加してみる
• Loadbalancing.dll.configに参照するDLLの情報を記入する
254 <PluginSettings Enabled="true">
255 <Plugins>
256 <Plugin
257 Name=“PluginTest"
258 Version=""
259 AssemblyName="PhotonHive.PluginTest.dll"
260 Type="Photon.Hive.Plugin.PluginTest.PluginFactory" />
261 </Plugins>
262 </PluginSettings>
コンフィグにPluginの設定を行う
今回は標準で搭載されているLoadbalancing
アプリケーションにPluginを追加してみる
• Loadbalancing.dll.configに参照するDLLの情報を記入する
254 <PluginSettings Enabled="true">
255 <Plugins>
256 <Plugin
257 Name=”PluginTest"
258 Version=""
259 AssemblyName="PhotonHive.PluginTest.dll"
260 Type="Photon.Hive.Plugin.PluginTest.PluginFactory" />
261 </Plugins>
262 </PluginSettings>
プラグイン名
作成したDLL エントリーポイント
のファクトリクラス
アプリケーションの起動
ログを確認して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 created
2016-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:PhotondeployPluginsPluginTestbinPho
tonHive.PluginTest.dll;version=1.0.15.11060
%Photon%deploylogGSGame.log から抜粋
まとめ
GMOアプリクラウドとPhoton Serverを使うことで
• 簡単な操作でセットアップ済みサーバを構築可能
– 自動でPhoton Serverのインストールを行います
– アプリクラウド側+Photon側のネットワークの設定が不要
– http://cloud.gmo.jp/spec/photon/
Pluginを使うことでサーバサイドロジックを作ることが可能
• 外部サービス連携を作る場合に便利
• DLL作成後のデプロイ作業は配置と設定だけ完了
最後に
例のプログラムは下記URLにて公開しています。
• Photon Serverアプリケーション
• https://github.com/syyama/PhotonPluginTest
Pluginの詳細については下記の勉強会にて解説します!
• 1時間でわかるPlugin開発とEnterprise Cloudの詳解
• 5/18 GMO Yours(ココ)で開催します!
• https://atnd.org/events/76303
お知らせ
一緒に盛り上げてくれる
を大募集中!
(エンジニア、営業などなど)
27
ありがとうございました!
developer@photonengine.jp

More Related Content

PPTX
Windows Server+Photon Server環境でも Fluentd+Elasticsearch+Kibanaを活用して 各種情報を可視化する...
PPTX
Photon Webhooks & IPv6対応の最新情報
PDF
Photon勉強会(クライアントサイド)2015/8/4 発表資料
PPTX
【Photon勉強会】FFGMでも採用!1時間でわかるPlugin開発とEnterprise Cloudの詳解
PDF
Cedec2013 photon network engine
PPTX
【Photon勉強会】1時間でわかるプラグイン開発とその実際(2017/3/23講演)
PDF
iPhoneでリアルタイムマルチプレイを実現!Photon Network Engine
PPTX
Unityで PhotonCloudを使ってリアルタイム・マルチプレイヤーゲームを作っちゃおう【応用編・前編】
Windows Server+Photon Server環境でも Fluentd+Elasticsearch+Kibanaを活用して 各種情報を可視化する...
Photon Webhooks & IPv6対応の最新情報
Photon勉強会(クライアントサイド)2015/8/4 発表資料
【Photon勉強会】FFGMでも採用!1時間でわかるPlugin開発とEnterprise Cloudの詳解
Cedec2013 photon network engine
【Photon勉強会】1時間でわかるプラグイン開発とその実際(2017/3/23講演)
iPhoneでリアルタイムマルチプレイを実現!Photon Network Engine
Unityで PhotonCloudを使ってリアルタイム・マルチプレイヤーゲームを作っちゃおう【応用編・前編】

What's hot (20)

PPTX
Unityで Photonを使ってリアルタイム・マルチプレイヤーゲームを作っちゃおう【応用編】
PDF
Node.jsv0.8からv4.xへのバージョンアップ ~大規模Push通知基盤の運用事例~
PDF
Wowzaを用いた配信基盤 Takusuta tech conf01
PDF
Challengers 2013 winter ハッカソンに参加してみて
PDF
第12回CloudStackユーザ会_ApacheCloudStack最新情報
PDF
OpenStackを一発でデプロイ – Juju/MAAS - OpenStack最新情報セミナー 2015年2月
PDF
CloudFoundry 2 on Apache CloudStack 4.2.1
PPTX
UE4 MultiPlayer Online Deep Dive: 実践編1 (Byking様ご講演) #UE4DD
PDF
Apache Auroraの始めかた
DOC
Cloud founryインストール手順
PDF
Open Stack Day - Ansibleによる環境構築の自動化
PDF
OpenStack Icehouse構築手順書
PPTX
OpenStack管理者入門 - OpenStack最新情報セミナー 2014年12月
PDF
OpenStack検証環境構築・トラブルシューティング入門 - OpenStack最新情報セミナー 2014年8月
PDF
OpenStack Grizzly構築手順書
PDF
OpenNebula on Ubuntu
PDF
ビジュアルスクリプティングで始めるUnity入門1日目 プレイヤーを動かそう
PDF
Rancher/Kubernetes入門ハンズオン資料~第2回さくらとコンテナの夕べ #さくらの夕べ 番外編
PPTX
Puppetのススメ
PPTX
Windows phoneのバックグラウンドエージェントについて
Unityで Photonを使ってリアルタイム・マルチプレイヤーゲームを作っちゃおう【応用編】
Node.jsv0.8からv4.xへのバージョンアップ ~大規模Push通知基盤の運用事例~
Wowzaを用いた配信基盤 Takusuta tech conf01
Challengers 2013 winter ハッカソンに参加してみて
第12回CloudStackユーザ会_ApacheCloudStack最新情報
OpenStackを一発でデプロイ – Juju/MAAS - OpenStack最新情報セミナー 2015年2月
CloudFoundry 2 on Apache CloudStack 4.2.1
UE4 MultiPlayer Online Deep Dive: 実践編1 (Byking様ご講演) #UE4DD
Apache Auroraの始めかた
Cloud founryインストール手順
Open Stack Day - Ansibleによる環境構築の自動化
OpenStack Icehouse構築手順書
OpenStack管理者入門 - OpenStack最新情報セミナー 2014年12月
OpenStack検証環境構築・トラブルシューティング入門 - OpenStack最新情報セミナー 2014年8月
OpenStack Grizzly構築手順書
OpenNebula on Ubuntu
ビジュアルスクリプティングで始めるUnity入門1日目 プレイヤーを動かそう
Rancher/Kubernetes入門ハンズオン資料~第2回さくらとコンテナの夕べ #さくらの夕べ 番外編
Puppetのススメ
Windows phoneのバックグラウンドエージェントについて
Ad

Viewers also liked (11)

PDF
中華圏とのライセンスイン・アウトの実務と可能性
PDF
添付ファイル自動暗号化「シンプルメール」紹介資料
PPTX
PhotonCloudで一ヶ月ゲーム作った話
PPTX
新たなクラウドビジネスを支える「Gmoクラウドパートナー制度」
PPTX
Photonのサービス選択の勘どころ
PPTX
PhotonのIPv6対応情報 & Server構築ポイント
PPTX
Unityで PhotonCloudを使ってリアルタイム・マルチプレイヤーゲームを作っちゃおう【導入編】
PDF
Metaprogramming Universe in C# - 実例に見るILからRoslynまでの活用例
PDF
第1回Gmoホスコンlt 160414
PPT
Photon Cloud signupマニュアル
PPTX
デザイナーにも優しいクラウド型ゲームエンジン"PlayCanvas"
中華圏とのライセンスイン・アウトの実務と可能性
添付ファイル自動暗号化「シンプルメール」紹介資料
PhotonCloudで一ヶ月ゲーム作った話
新たなクラウドビジネスを支える「Gmoクラウドパートナー制度」
Photonのサービス選択の勘どころ
PhotonのIPv6対応情報 & Server構築ポイント
Unityで PhotonCloudを使ってリアルタイム・マルチプレイヤーゲームを作っちゃおう【導入編】
Metaprogramming Universe in C# - 実例に見るILからRoslynまでの活用例
第1回Gmoホスコンlt 160414
Photon Cloud signupマニュアル
デザイナーにも優しいクラウド型ゲームエンジン"PlayCanvas"
Ad

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

PDF
【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~
PPTX
GTMF 2017:Photonの実用ケーススタディご紹介とPlayCanvas新機能 GMOクラウド株式会社
PDF
Photon Server Deep Dive - PhotonWireの実装から見つめるPhotonServerの基礎と応用
PDF
ゲームサーバ開発現場の考え方
PDF
Photon Enterprise Cloud 事例
PDF
とあるCocos2dx入門編
PDF
2020 年も最高のゲームをつくろう! Game Stack でゲーム開発をしよう! ~ マルチプレイサーバー編 ~
PDF
【de:code 2020】 2020 年も最高のゲームをつくろう! Game Stack でゲーム開発をしよう! ~ マルチプレイサーバー編 ~
PPTX
GTMF 2016:Cocos2d-x/Marmalade&Photon最新事例 GMOクラウド株式会社
PDF
Unitynetwork
PPTX
FINAL FANTASY XVにおけるPhoton利用事例 - Photon運営事務局 GTMF 2018 OSAKA / TOKYO
PDF
【GCC18】PUBGライクなゲームをUnityだけで早く確実に作る方法 〜ひとつのUnity上でダミークライアントを100個同時に動かす〜
PDF
【GCC18】PUBGライクなゲームをUnityだけで早く確実に作る方法 〜ひとつのUnity上でダミークライアントを100個同時に動かす〜
ODP
pfm details
PDF
UnityのフリーライセンスでPC-Android通信を実装するまで
PPTX
【Unite 2017 Tokyo】マルチプレイゲームのグローバル展開事例(BNE様)と完全同期を実現するPhoton TrueSync のご紹介
PPTX
Ruby on azure で game server service
PDF
Google Cloud Platformでソーシャルゲームを1本出してみた!
PDF
ゲーム開発初心者の僕がUnity + WebSocketで何か作ってみた
PPTX
【CEDEC2018】800万ダウンロードを達成した共闘ことばRPG 『コトダマン』でのモノビットエンジン採用実例と最新情報 ①
【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~
GTMF 2017:Photonの実用ケーススタディご紹介とPlayCanvas新機能 GMOクラウド株式会社
Photon Server Deep Dive - PhotonWireの実装から見つめるPhotonServerの基礎と応用
ゲームサーバ開発現場の考え方
Photon Enterprise Cloud 事例
とあるCocos2dx入門編
2020 年も最高のゲームをつくろう! Game Stack でゲーム開発をしよう! ~ マルチプレイサーバー編 ~
【de:code 2020】 2020 年も最高のゲームをつくろう! Game Stack でゲーム開発をしよう! ~ マルチプレイサーバー編 ~
GTMF 2016:Cocos2d-x/Marmalade&Photon最新事例 GMOクラウド株式会社
Unitynetwork
FINAL FANTASY XVにおけるPhoton利用事例 - Photon運営事務局 GTMF 2018 OSAKA / TOKYO
【GCC18】PUBGライクなゲームをUnityだけで早く確実に作る方法 〜ひとつのUnity上でダミークライアントを100個同時に動かす〜
【GCC18】PUBGライクなゲームをUnityだけで早く確実に作る方法 〜ひとつのUnity上でダミークライアントを100個同時に動かす〜
pfm details
UnityのフリーライセンスでPC-Android通信を実装するまで
【Unite 2017 Tokyo】マルチプレイゲームのグローバル展開事例(BNE様)と完全同期を実現するPhoton TrueSync のご紹介
Ruby on azure で game server service
Google Cloud Platformでソーシャルゲームを1本出してみた!
ゲーム開発初心者の僕がUnity + WebSocketで何か作ってみた
【CEDEC2018】800万ダウンロードを達成した共闘ことばRPG 『コトダマン』でのモノビットエンジン採用実例と最新情報 ①

More from GMO GlobalSign Holdings K.K. (7)

PPTX
2019年 第2四半期 決算説明資料
PPTX
2018年通期決算説明資料
PDF
2018年12月期 第2四半期決算説明会資料
PDF
GMOクラウド:2017年通期決算説明会資料
PPTX
GMOクラウド:2017年12月期 第2四半期決算説明会
PDF
クラウド活用で実現するスマートなシステム運用
PDF
SIerがgmoクラウドを選ぶ理由とは
2019年 第2四半期 決算説明資料
2018年通期決算説明資料
2018年12月期 第2四半期決算説明会資料
GMOクラウド:2017年通期決算説明会資料
GMOクラウド:2017年12月期 第2四半期決算説明会
クラウド活用で実現するスマートなシステム運用
SIerがgmoクラウドを選ぶ理由とは

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

Editor's Notes

  • #3: はじめましての方ははじめまして、それ以外の方はお久しぶりです。 このような勉強会に立つのが久しぶりなので、とても緊張しています。 私の名前は山本昇平と申します。Twitterなんかではやまさんと呼ばれています。 GMOクラウド株式会社に所属しており、Photonをはじめとした各種ソリューションの技術担当として活動しています。 余談ですが、WiiUから出ている「スプラトゥーン」というゲームに病的なくらいハマっています。 寝ても冷めてもイカちゃんのことを考えているくらい好きです。 もしこの中でプレイしてる人がいらっしゃったら、後でお声がけください。 やっぱりみんなで出来るゲームって面白いんですよね。 みなさんも経験があると思うんですけど、子供の頃に、友達の家にカセットやコントローラを持って行って みんなでゲームしたような、あの感覚が蘇ってきますね。
  • #4: さて、アイスブレイクはこれくらいにしておきます。 今日のお題目ですが、アプリクラウドのクラウド環境にPhoton Serverを構築してみます。 そのあと構築したPhoton Serverにプラグインアプリケーションを突っ込んでみて、 実際にテストクライアントを動かしてみて、Photon Serverが正しく動いているかどうかを確認してみます。
  • #11: ご覧いただいた通りですが、非常に拍子抜けするくらい簡単だったと思います。 あとはライセンスを追加して、サーバアプリケーションを追加するだけで、 Photon Serverのアプリケーションとして利用することが可能です。 これらも後ほど行います。
  • #13: Photon Serverのサーバサイドアプリケーションを作る方法は2つの方法があります。 1つ目はPhoton Server向けのカスタマイズアプリケーションを作る方法、 2つ目は1つ目に作ったカスタマイズアプリケーション上で動くPluginを作る方法です。 具体的に何が違うかという点ですが、1の方法は出来ることが多い代わりに開発工数が掛ります。 簡単なサーバサイドロジックを作る程度であれば、Pluginを使うことをお勧めします。 Photon ServerではLoadbalancingという名前のカスタマイズアプリケーションが最初からあります。 この上で動作するためのPluginを今回は開発していきます。
  • #15: Photon Server v4のPluginの作り方ですが、 PhotonHivePluginというdllがSDKに含まれていますので、こちらを参照設定に追加します。 Photon Server Pluginの仕様に則ってプログラムを作って頂き、ビルドを行ってください。 ビルドが成功すると、DLLファイルとして出力します。このDLLを指定したフォルダに置くようにしてください。 指定したフォルダに対してPluginの設定を行うと完了です。 これらの手順のすべてはPhoton Serverのドキュメントサイトに記載されていますので、ご覧いただけますと幸いです。 また、次回のPhotonの勉強会でPluginの解説を行いますので、詳細についてはそちらにご参加ください。 さて、Pluginを使うことで、具体的にどういうことができるか見ていきたいと思います。
  • #16: Pluginを使って出来る例です。 簡単な例ですが、例えばクライアントがPhotonのルームに入室する際に、 ランクやブキといったプレイヤー情報をPhoton Serverで取得します。 ゲームのランキング情報といったプレイヤー情報を外部のWebサイトにPostし、ルーム情報を表示するといったプログラムです。 ここではそのサーバ部分でPhoton ServerのPluginを利用しています。 それでは実際にプログラムを見てみましょう。
  • #17: クライアント側はプレイヤー名をPhotonNetwork.playerNameに設定、その他の情報はカスタムプロパティに設定しています。 ご覧頂いた通りではございますが、level=50, rank=S+, weapon=3Kスコープという値をセットしています。 Photon ServerのPlugin側では、プロパティが設定されたことを通知するイベントを用います。 プレイヤー名とカスタムプロパティをパラメータとして、外部のサイトにプレイヤー情報をPostします。 それでは具体的なプログラムを見ていきたいと思います
  • #18: まず、エントリーポイントなるファクトリクラスを作成します。 今回はPluginFactoryとします。 IPluginFactroyインターフェスを継承し実装します。
  • #19: 次にPluginBaseを継承し、OnSetPropertiesメソッドを実装していきます。 これはカスタムプロパティをセットしたタイミングに呼ばれます。 ルームに入室すると同時にカスタムプロパティはセットされますので、 ルームに入ったタイミングでカスタムプロパティを取得する際に向いています。 ISetPropertiesCallInfoのinfoパラメータからプレイヤー名とカスタムプロパティを取得します。 今回は外部WebサイトにPostを行うために一度Dictionaryに入れ替えています。
  • #20: 入れ替えたDictionaryをパラメータとして、指定した外部WebサイトにPostを行っています。 Postは.NETで標準で搭載されているHttpClientのPostのメソッドを使っています。 当然ですが、PhotonではビジネスロジックをC#を使って実装することが可能です。 .NETで利用可能な外部ライブラリや社内の資産があれば、そのまま活用するようなことも可能です。 もしかしたらいらっしゃるかどうか分かりませんが、例えばUnityの開発に.NETで作ったJSON Parserなんかをそのまま持ってくるようなことも可能です。 プログラムの説明は簡単ですが以上とさせて頂きます。 プログラムが完成したらDLLにビルドを行います。 ビルドが完了した前提でここからの作業は実際にデモを行いながら紹介していきたいと思います。
  • #21: 先ほどのページにあったようなプログラムを書いて、Photon ServerのロジックはDLLとしてビルドします。 このビルドしたDLLは指定のフォルダに配置しておきます。
  • #22: 今回はdeploy/Pluginsフォルダ直下にTestPluginというフォルダを作ります
  • #23: 今回はLoadbalancingアプリケーション上にこのプラグインを追加する形にしますので、 Loadbalancing.dll.configにPlugin情報を記載します。
  • #24: Configにはプラグイン名(フォルダ名)、作成したDLL、エントリーポイントとなるFactoryクラスを指定します ここで指定する名前は自由に変更することが可能です。
  • #25: 例えば、コンパイルエラーがあればここにエラーログが表示されます。 正しく起動しない場合はこのログを見てみましょう
  • #26: それでは今回のセッションをまとめたいと思います。 GMOアプリクラウドを使うことで、簡単操作でPhoton Serverが環境構築済みのサーバをセットアップすることを理解できたかと思います。 具体的に何ができるかと申し上げますと、自動でPhoton Serverのインストールを行います。 そしてアプリクラウド側とPhoton側、両方のネットワークの設定も全部設定を行います。 次にPhoton ServerのPluginを使ってサーバサイドアプリを作りました。 Pluginを利用することによって、外部サービスとの連携が簡単に作ることが可能となりまいsた。 さらにデモを行った通りではございますが、DLL作成後のデプロイ作業は配置とコンフィグの設定だけ完了です。 よかったらぜひ1度、活用していただけると良いかと思います。
  • #27: 非常に簡単な内容でしたが、Photon Serverの使い方について理解できたかと思います。 サンプルで紹介したPhoton ServerのサーバサイドアプリケーションのプログラムはGithub上に公開しています。 Photon Serverのアプリケーションを作る際の参考にしていただけると良いかと思います。 また公式サイトのドキュメントにもプログラムの作り方が詳しく記載していますので、合わせてご覧ください。 さて、今回はPhoton ServerのPluginについてざっくりをイメージして頂けたかと思います。 このPlugin開発の詳細について、前述の通りではございますが5/18の勉強会にて解説いたしますので、 ぜひ、次回も足を御運びいただけますと幸いでございます。
  • #29: 本日は以上となります。ありがとうございました。