Azure PlayFab
Daisuke Masubuchi
Cloud Solution Manager
Gaming Ecosystem Organization
Microsoft
SlideShare : @dmasubuchi
Twitter : @dmasubuchi
サーバー知識不要!のゲームサーバー "Azure PlayFab" で長期運営タイトルを作ろう
CEDEC 2021 Day2 ショートセッション
08月25日(水) 16:40 〜 17:05
本書は、CEDEC 2021 8月25日 16時40分 からの30分の ショートセッション
「サーバー知識不要!のゲームサーバー “Azure PlayFab” で長期運営タイトルを作ろう」
のセッション用の資料です
当日は時間が短いため、デモ画面中心で進行します
情報として物足りないと感じられた方はこちらの資料も手元でご確認ください
CEDEC 2021イベントトップページ
CEDEC2021 (cesa.or.jp)
セッションページ
CEDEC2021: サーバー知識不要!のゲームサーバー “Azure PlayFab” で長期運営タイトルを作ろう (cesa.or.jp)
PlayFab のご利用企業例
大手パブリッシャーからインディーまで数千のタイトルが PlayFab でゲームを運営中
多くのゲーム運営経験から作られた PlayFab
• ゲームサーバーには、一般的にどの会社にも同じ機能要件があった
• ゲームサーバーには、一般的にどの会社にも同じ運用要件があった
• 多くのゲーム開発者達は、サーバーに作業時間をあまり割きたくない
• 多くのゲームプロデューサー達は、オンラインでダイナミックなコンテンツ
運用をするための、安定したベストな仕組みを利用したい
• 多くのプランナーは、今よりも、プレイヤーの気持ちを知り、プレイヤーに
適したコンテンツを企画運営したいと思っている
Azure PlayFab ができること
PlayFab Overview
Multiplayer :マルチプレイヤーゲームのための機能
リアルタイム通信のためのサーバーホスティング
マッチメイキング、リーダーボード
音声チャットや翻訳などのプレイヤー間のコミュニケーション
LiveOps :データベース(マスターデータ、プレイヤー)とダイナミックな運用の支援
コンテンツ、コマース(ストア運営)、メッセージ、BAN、リーダーボード
プレイヤーのセグメンテーションを作成し、自動化されたサーバー処理を実行
Data & Analytics:チャーン(解約)を防止するための、様々な 分析と施策
PlayStream(ログ・テレメトリー)を利用したプレイヤー行動の可視化、分析を行う
クエリーを利用して深いログ探索を行う
ABテストや Experiments(実験)を利用して、ユーザーの満足度を向上
注:LiveOps = Live Game + Operation の造語 PlayFab が目指しているもの
プレイヤーの満足に合わせてゲームを少しずつチューニングしていく考え方、手法
PlayFab のデータベースはLiveOpsがしやすいような作りに最適化されています
LiveOps を利用して長生きするゲーム運営を
• LiveOps は PlayFab の基本の考え方。Live Game + Operation からの造語
• シングルプレイゲームでもマルチプレイゲームでも適用できる
• エンジニアの手をほぼ煩わせずにサーバーの運用管理ができる
– プレイヤーの活動の分析、調査
– プレイヤーの管理(通知やBAN、など)を実行
– ゲームデータの更新
– ダイナミックな運営(キャンペーン、ゲーム内の一斉通知、など)
自分のスタジオとタイトル
ログインした直後のタイトルメニュー画面
Tips
• 複数のスタジオを管理
• スタジオの中に複数タイトルを管理
• 同タイトルを、Aテスト用、Bテスト用など
用途に分けてタイトルを複数持つと便利
• タイトル間の設定をコピーしたい場合は
GitHub の CLIツールを利用
https://github.com/PlayFab/PlayFabCLI
• スタジオの黒いバーの右側の を
クリックして設定変更
• タイトルの右側の歯車マーク を
クリックして設定変更
• PlayFab の認証と、組織ログインの2種類の
認証を選べます
PlayFab では管理画面のことを
ゲームマネージャーと呼びます
タイトルの概要/
PlayStream モニター
ゲーム内の活動全体をストリーム表示
Tips
• 自動的にイベントを記録し、可視化します
• さらに クライアント プログラムから SDKの
WriteEvent API を利用してカスタムイベント
を作成できます
• サーバーサイドのスクリプトからも同様に
カスタムイベントを作成できます
• PlayStream は 他の処理のきっかけにするこ
とができます
リアルタイムルールエンジンと連携します
• セグメントとも連携します
セグメントは、プランナーが、プレイヤーの属性
に基づいて作るプレイヤーを識別する仕組みです
公式ドキュメント
PlayStream - PlayFab | Microsoft Docs
ゲームのデータベースとして利用する
PlayFabは大きく分けて3つのデータを保管してます
ゲーム全体で共有するデータ
ルールブック、シナリオ、
敵のパラメーター、など
タイトルデータ エコノミーカタログ プレイヤー
エコノミー活動に使うデータ
• アイテム
• ストア
• 仮想通貨
プレイヤーごとのデータ
• プレイヤーデータ (タイトル)
• 統計情報
• インベントリー
エコノミーの アイテム が付与された状態
プレイヤーごとに アイテム を管理する仕組み
インベントリー
データをもとに LiveOps を実践する
LiveOps
Game Client
タイトルデータ
低頻度で更新
エコノミーカタログ
プレイヤー
大量のログを送信
(PlayStream)
処理(自動化)
ルール
エンジン
LiveOps
セグメント
変更
CS 個別パッチ
データ
プレイヤー/プレイヤー
プレイヤーのセーブデータなどの管理画面
Tips
• データは複数デバイスで共有可能
• 様々なデータのタイプがある
• 統計情報:数値、ランキングなどに利用
• インベントリ:アイテムのデータを保持
エコノミーで定義されたアイテムを格納します
アイテムはカスタム
• プレイヤー データ: キーバリュー
API 上はプレイヤーデータ UserData という用語を使用
しています
• エンティティとファイル: オブジェクトとファイ
ルにデータを格納できる
従来はプレイヤーデータのみだったが、あるときエン
ティティが拡張されました
• プレイヤーデータはさらに以下の二つ
• タイトル:通常はこちらを利用
• パブリッシャー:タイトル間でのリワードなどに
利用
• 読取モードは、クライアント、読取専用、内部
(サーバー飲みのアクセス)の3種類
公式ドキュメント
PlayStream - PlayFab | Microsoft Docs
プレイヤー/セグメント
プレイヤーの属性の分類
Tips
• 様々な条件でフィルター定義できる
• 前回のログイン
• 所持金
• 経験値
• カスタムタグ
• 広告の流入元
• 開発者が定義した様々な統計値
• 入場(退出)した時のアクション定義
• リワードを与える
• 通知を送る
• プレイヤー禁止(BAN)
• アイテム付与
• プレイヤー削除
• CloudScript の実行
• Azure Functions の実行
公式ドキュメント
プレイヤー セグメント -
PlayFab | Microsoft Docs
自動化/Cloud Script
サーバーサイドのコード
Tips
• サーバーサイドのプログラム実行基盤
• セグメントなど自動化から呼び出す
• クライアントからもリクエスト可
• PlayFab API を利用して関数を作成もOK
• アイテム付与
• キャラクター付与
• 通知(Notification)
• 外部サーバーとの連携もできる
• Azure Functions への拡張(プレビュー)
• Azureの様々なサービスと連携
• Blob、CosmosDB、Synapse、等
• Azureへのデータ移動に利用もOK
• C# や Python など JavaScript 以外を利用して
開発したい場合
• 耐障害性の設計など、様々な考慮が可能
• App Service Diagnostics を利用する
• Health Check を有効にする
公式ドキュメント
PlayFab の自動化の説明書 -
PlayFab | Microsoft Docs
自動化/ルール
PlayStream イベントにリアルタイムで応答するアク
ションのルールを定義する
Tips
• イベントのトリガーは 1 つのみ
• 条件は、0個でも複数でもOK
• 対するアクションは、1つでも複数でもOK
例1
プレイヤーの禁止(BAN)のルールを設定(右図)
例2
「高経験値プレイヤー」( XP > = 10,000 )というセグメントを定義
このセグメントに入るトリガーされる以下の 2 つのアクションを設定
• プレイヤーに仮想通貨を付与します
• プッシュ通知を送信してお祝いしメッセージ
自動化/
スケジュール済みタスク
手動または定期実行による自動化タスク
Tips
• 自動化されたタスクにより、事前に作成さ
れたアクション、または、CloudScript を実
行する
• よくあるシナリオ
• 現在のイベントを反映
• ゲームのエコノミーに毎日仮想通貨を投入
• 1 日の時間に応じてストアの価格を変更する
• ゲームを離れたプレイヤーに連絡し、再度の
参加を促進する
コンテンツ/タイトルデータ
ゲームの構成するキーバーリューのデータ
一般的にプライマリタイトル データと呼ばれる
(日本はマスターデータと呼ぶことが多い)
Tips
• PlayFabで最も参照されるデータ
• JSONで管理します
• キャッシュ更新時間に注意(15分程度?)
• グローバルの定数としては適切
• グローバルの変数としては推奨されません
• 変数が必要な場合は、プレイヤーの統計やプ
レイヤーデータへのTAG追加を利用
• Play Stream - Add Player Tag - REST API
(PlayFab Server) | Microsoft Docs
• 統計情報とリーダーボードを利用して変数が
必要なシナリオをクリアできます
• Player Data Management - Get Leaderboard -
REST API (PlayFab Client) | Microsoft Docs
公式ドキュメント
タイトル データ クイックスタート -
PlayFab | Microsoft Docs
コンテンツ/タイトルニュース、
メールテンプレート、
ファイル管理、プッシュ通知
PlayFab のエンゲージメントについての公式ドキュメント
データの概要 - PlayFab | Microsoft Docs
エコノミー/カタログ
ゲーム内のストア運営、ガチャなどの設計
Tips
• アイテム
• バンドル
• コンテナー
• ドロップテーブル
• ストア
エコノミーに関する公式ドキュメント
PlayFab エコノミーの説明書 - PlayFab | Microsoft Docs
A/B テスト とストアのリンク
従来のABテスト機能
Tips
従来のABテストは エコノミーの ストアにのみ
オーバーライド(上書き)で適用できます
新機能: Experiments (実験)
高度な統計分析に対応するABテスト
Tips
バリアントID が作成され、プレイヤープロファイルにタグ付けさ
れ、さまざまな処理に割り当てられる
統計的に有意な計算を使用した Experiments は、高い信頼性を提
供
不一致率のサンプル率を用いたデータ品質チェックと推奨される
プロセスについてのベストプラクティスを提供
実験のベスト プラクティスと推奨事項 - PlayFab | Microsoft Docs
利用例:プライマリタイトルデータのテスト
上書きと再考されたデザインを使用したタイトル データの実験
(playfab.com)
偏りや重複のないテスト
除外グループとの相互作用の影響を防ぎ、複数の同時実験を実行
する (playfab.com)
エコノミー/通貨
ゲーム内に複数定義できる仮想通貨
Tips
• 初期デポジット:初期チャージ
• リチャージ レート :1日あたりのチャージ
• 24 時間で均等に、徐々に分散付与
• リチャージ限度:1 日で付与できるMax値
エコノミー/API: GetPlayerProfile
プレイヤーの価値を算定する
Tips
• GetPlayerProfile APIを呼び出す
• プレイヤーの現在価値(VTD)
日本語画面では「これまでの合計値(USD)」
VTD = Value To Date
プレイヤーの現在までの価値 (VTD) を取得する - PlayFab | Microsoft Docs
• プレイヤーのセグメントに活用しよう
PlayFab のマルチプレイのための機能
マルチプレイのためのサービスも順次拡張中
どのマルチプレイヤー機能を使うか?
ゲーム
モード
プレイヤー
の最大数
Leaderbo
ard
マッチメイ
キング
バックフィル フレンド
を招待
未承諾の結合
の進行中
チャット サーバーモデル
シングルプレイヤー
キャンペーン
1 はい いいえ いいえ いいえ いいえ いいえ いいえ
協力キャンペーン 4 はい いいえ いいえ はい はい はい P2P
ゲーム内パーティ 8 いいえ いいえ いいえ はい はい はい P2P
カジュアルな小規模
セッション
8 はい はい はい はい はい はい P2P
カジュアルな
大きなセッション
32 はい はい はい はい はい はい クラウドサーバー
競争力の小さい
セッション
8 はい はい いいえ はい いいえ はい クラウドサーバー
競争力の大きな
セッション
32 はい はい いいえ はい いいえ はい クラウドサーバー
https://docs.microsoft.com/ja-jp/gaming/playfab/features/multiplayer/mpintro
マルチプレイヤーのサービス群
Entities & Groups Statistics Matchmaking Party Servers
グループを管理 統計の数値情報
ランクやマッチに利用
マッチメイキング チャット
翻訳機能
専用サーバー
#1
#2
• Matchmaking in public preview
• All other services generally available
• All services used today by some of the world's biggest games and apps
ランキング(リーダーボード)
ハイスコアなどのランクと褒賞
Tips
• ランキングは英語では「Leaderboards」
ドキュメントを読むときに注意
• ランキングを利用したトーナメント設計
トーナメントとランキングのクイックスター
ト - PlayFab | Microsoft Docs
• 手順1 統計情報と関連するランキングを作
成する
• 手順2 プレイヤーのハイスコア統計情報を
更新する
• 手順3 RequestLeaderboard 関数による処
理を作成
• エンティティモデルに合わせた新しいラ
ンキングシステムを開発中(v2)
• ギルドやクラインを運営する場合はv2 も
ご参考ください
イベントやトーナメントのランキングの使用に関する詳細
トーナメントとランキング - PlayFab | Microsoft Docs
ランキングv2に関する詳細
ランキング v2 の概要 - PlayFab | Microsoft Docs
マルチプレイヤー/サーバー
ゲーム サーバーのオーケストレーター
実績
Ubisoft Rainbow 6: Siege 、Halo 5
Tips
• ゲームサーバーはAzure を使用
• 動的スケーリング
• 待機プールによるバースト対応
• WindowsとLinuxの両方の環境を用意
マルチプレイヤーの公式ドキュメント
PlayFab マルチプレイヤー説明書 - PlayFab | Microsoft Docs
マルチプレイヤー/
マッチメイキング
(プレビュー)
バランスのとれた時間での
マッチメイク処理
数秒でサーバーと
パーティに接続 結果によるリワード
数日の信頼できるマルチプレイヤーアクティビティ
クロスプラットフォームのゲーム体験、
自動スケーリング、サービス駆動型、高速
• Xbox Live が開発した柔軟なアルゴリズム
• 「ルール」は、プレイヤーの属性に基づいて定義
• ルールの厳格さは、時間とともに調整可能
• ルールの動的な変更運用
• PlayStream テレメトリを継続的に分析し、運用しながらルールを最適化していく
マルチプレイヤー/
マッチメイキング
(プレビュー)
API
• CreateMatchmakingTicket - チケットを作りキューリクエスト
• GetMatchmakingTicket - チケットのステータスををポーリング
• CancelMatchmakingTicket - マッチングをキャンセル
マルチプレイヤー/パーティー
ゲームプレヤー間のチャット、音声、翻訳
Tips
1. プレイヤーがログイン
2. パーティー用のネットワークを作成する
3. ローカルプレーヤーをネットワークに追加
4. ACL にリモート プレイヤーを追加
5. リモート プレーヤーに ネットワーク識別子
を共有
via out-of-band signaling (e.g Cloud Script, Entity
Groups)
6. リモートプレイヤーが参加
Let’s use the boat!
On va utiliser le bateau!
让我们用这艘船!
¡ Usemos el bote!
ボートを使ってみよう!
https://docs.microsoft.com/ja-jp/gaming/playfab/features/multiplayer/networking/party-sdks
プラットフォーム/オペレーティング システム SDK/library
Android C/C++ 、C/C++ NuGet パッケージ、Unity
iOS C/C++ 、Unity
Stadia C/C++ 、C/C++ NuGet パッケージ
Switch C/C++パッケージ 、Unityパッケージ 、C/C++ パッケージ、および Unity NuGet パッ
ケージ
PlayStation 4 C/C++パッケージ 、Unityパッケージ 、C/C++ パッケージ、および Unity NuGet パッ
ケージ
PlayStation 5 C/C++パッケージ 、Unityパッケージ 、C/C++ パッケージ、および Unity NuGet パッ
ケージ
Xbox (XDK) C/C++ 、Xbox Live ヘルパー ライブラリ
PC (GDK) と Xbox (GDK) Unity、Unreal (アドイン の下 )、C/C++ SDK、Xbox Live ヘルパー ライブラリ
(GDK に含まれているバージョンを使用します)。
Windows 10、Windows 8.1 C/C++ 、Xbox Live ヘルパー ライブラリ
Windows 7 C/C++ 、Xbox Live ヘルパー ライブラリ
Party が使えるプラットフォーム
PlayFab の分析機能
Azure Data Explorer を利用した大幅強化済み
分析 ダッシュボードとデータ
データエクスプローラー
リテンションやスクリーンタイムの分析
Tips
• ダッシュボードのレポートを利用して汎用的なKPIを確認
• データエクスプローラー(詳細)を利用してより詳細のデータを探索することができる
探索には、Azure Data Explorer の Kusto (KQL)を利用する
ログ探索のクエリー言語 KQL
PlayFab で Azure Data Explorer が使える
Tips
以下はサンプルクエリです
// ログ探索にとても便利なクエリー言語の Kusto クエリー言語 (KQL) を利用してでDAU、
MAU、チャーン分析をしましょう
// Kusto はSQLに似ていますが、より簡単です。カラーリングや、パイプで句を連結できる機能
が便利です
// 以下の文は、8月のDAUを表示するクエリです。最後の timechart を有効にするとグラフ描画
をします
let startdate = datetime(2021-08-01);
let enddate = datetime(2021-08-31);
['events.all']
| where FullName_Name == 'player_logged_in'
| extend JTime = Timestamp+9h
| evaluate activity_metrics(Entity_Id, JTime, startdate, endofday(enddate), 1d)
| render timechart
// extend により、EentData の中のJSONからデータを取り出し、新しいカラムを定義できます :
https://docs.microsoft.com/en-us/azure/data-explorer/kusto/query/extendoperator
['events.all']
| where FullName_Name == 'player_logged_in'
| take 10
| project EventData
| extend ipv4adress = tostring(EventData.IPV4Address)
| extend CountryCode = tostring(EventData.Location.CountryCode)
| extend Timestamp = todatetime(EventData.Timestamp)
// 海外からのアクセス(IPアドレス・国・都市)
let startdate = datetime(2021-08-01);
let enddate = datetime(2021-08-31);
['events.all']
| where FullName_Name == 'player_logged_in' and Timestamp+9h between (startdate ..
endofday(enddate))
| extend CountryCode = tostring(EventData.Location.CountryCode), ContryCity =
tostring(EventData.Location.City), PUserID = tostring(EventData.PlatformUserId)
| where CountryCode != "JP"
| project Time = Timestamp+9h, EventData.IPV4Address, CountryCode, ContryCity,PUserID,
FullName_Name, Entity_Id
PlayFab 実践例 NowProduction 様
PlayFab利用方法
• Title Data:
• ゲーム内の巨大なマスターデータを保管
• 独自に実装したストアのアイテム管理を含む
• Player: ユーザーの統計情報
• 勝率、取得率、レート、札ごとの統計データ管理
• ゲーム内通貨(ポイント)とカタログ
• ポイントを利用してガチャチケットを管理
• 昭和のヒーロー2号や、5連ガチャ などはアイテムとして管理
• 自動化
• さまざまなサーバー側の処理を実施
• レートマッチのスケジュールやメダルショップの更新
• マルチプレイヤー
• マッチメイキング
• マルチプレイヤーサーバー(ゲームルーム)
PlayFab 実践例 Beta Computing 様
タイトル 競技かるた ONLINE
配信日 2019年4月25日
対応OS iOS /Android
配信国 日本を含め50か国以上
対応言語 日本語、英語
• ユーザーの統計情報
• 勝率、取得率、レート、札ごとの統計データ管理
• ランキング表示
• ユーザーの経験値によるランキング
• ゲーム内通貨(ポイント)
• ポイントを消費してランクマッチをプレイ
• ポイント購入時はIAPレシートの整合性チェック
• CloudScript
• 1日1回無償プレイのチェック
• ランクマッチ開始時にポイント消費
• ランクマッチ終了時に経験値、ポイント付与
Gliko2でレート算出
PlayFab 実践例 Ske6 様
ゲーム概要
• カジュアル育成ゲーム
• 2019 春にリリース
• シングルプレイヤーアプリ
PlayFabの利用目的と背景
• PlayFabは、ゲーム内データの管理とログ解析
(LiveOpsは利用していない)
• 当初は、完全にスタンドアロンのシステムだった
• リリースの約2ヶ月前にコネクテッドゲームにすることに決定
• PlayFab未経験からスタート
• PlayFabを1週間程度テストし、組み込みも2-3週間で完了
機能ではなく、 LiveOps の結果イメージをつけよう
Live Opsの例
• 新たなコスメティックアイテム
• 期間限定
• 週末のイベント
• 有料 UA キャンペーン
Live Ops ではない例
• 新たな機能アイテム
• 新たな技術メカニズム
• 新たなトーナメントモード
• 新たなバイラルメカニズム
LiveOps マチュリティモデル
1: LiveOps Basics
2: LiveOps Optimizing
3: LiveOps Mastery
0. Live
Game
Game Studios and Games
LiveOps マチュリティモデル
1: LiveOps Basics
2: LiveOps Optimizing
3: LiveOps Mastery
0. Live
Game
Goals:
• Improve game’s
performance
• Extend games life
• Respond to feedback
Actions
• Adjust game balance
• Add new content
• Fix bugs
Practitioners
• Live content team
• Build team
Goals:
• Optimize player experience
• Increase revenue
• Reduce risks
Actions
• Segment players
• Target offers and content
• Predict churn
Practitioners
• Data analysts
• Product managers
Goals:
• Strengthen brand and loyalty
• Organic growth and sustainment
Actions
• Social features
• Community events
• Moderation
Practitioners
• Community teams
• Customer support
• Marketing
Game Studios and Games
LiveOps マチュリティモデル
1: 継続的な運用チーム作り
2: プレイヤーに合わせたコンテンツ運営とオ
ファー
3: コミュニティの醸成
0. Live
Game
Game Studios and Games
Goals:
• 高性能なゲーム
• 長生きするゲーム
• フィードバックへの対応
Actions
• 継続的なバランス調整
• コンテンツの更新
• 継続的なバグ修正
Practitioners
• ライブコンテンツチーム
Goals:
• プレイヤー体験の最適化
• 売り上げUP&リスク低下
Actions
• セグメンテーション
• ターゲット(へのオ
ファー)
• チャーン分析
Practitioners
• データ分析
• プロダクトマネージャー
Goals:
• ブランドとロイヤリティ最
大化
• 継続的な成長
Actions
• ソーシャル機能
• コミュニティイベント
Practitioners
• コミュニティチーム
• カスタマーサポート
• マーケティング
LiveOps マチュリティモデル
1: 継続的な運用チーム作り
2: プレイヤーに合わせたコンテンツ運営とオ
ファー
3: コミュニティの醸成
0. Live
Game
Game Studios and Games
Goals:
• 高性能なゲーム
• 長生きするゲーム
• フィードバックへの対応
Actions
• 継続的なバランス調整
• コンテンツの更新
• 継続的なバグ修正
Practitioners
• ライブコンテンツチーム
Goals:
• プレイヤー体験の最適化
• 売り上げUP&リスク低下
Actions
• セグメンテーション
• ターゲット(へのオ
ファー)
• チャーン分析
Practitioners
• データ分析
• プロダクトマネージャー
Goals:
• ブランドとロイヤリティ最
大化
• 継続的な成長
Actions
• ソーシャル機能
• コミュニティイベント
Practitioners
• コミュニティチーム
• カスタマーサポート
• マーケティング
Who?
初期のゲームスタジオ
Example Tools Needed
ライブイベントマネージャー
CI/CDツール、コンフィグツール
自動テスト
Build, test, and deploy pipeline
Content configurations
Who?
中堅ゲーム会社
Example Tools Needed
ユーザー分析ツール
レコメンデーション
Targeted purchase offers
Churn prediction reporting
Recommendation system
Who?
大手パブリッシャー
Example Tools Needed
ギルド
UGC
高度なマッチメイッキング
ユーザーセグメンテーションの例
プレイヤーの感情を考えよう
Socializers
Chat
Guilds
Multiplayer
Social Events
Social Leaderboards
Trading
Killers
Competitive Events
Tournaments
Multiplayer
Achievers
Achievements
Events
Guilds
Leaderboards
Quests
Tournaments
Explorers
Content Events
Quests
Rare items
プレイヤーの感情を考えよう
Socializers
Cosmetics
P2P Trading
Gifting
Killers
Badges
Tournament Prizes
Pay to Win
Achievers
Boosters
Quest Rewards
Collectable Item Sets
Explorers
Large Catalogs
Rare items
Grinding
LiveOpsの実践例
• 新しい施策が思いついたらABテストを用いて効果測定
LiveOpsの実践例
• ユーザーの活動を把握し、要改善点を見つけて、施策を打つ
31%
8%
2%
0%
5%
10%
15%
20%
25%
30%
35%
40%
45%
50%
N
o
v
-
1
6
D
e
c
-
1
6
J
a
n
-
1
7
F
e
b
-
1
7
Day 1 Day 7 Day 30
0%
20%
40%
60%
80%
100%
120%
Park
creation
Pack
opening
Carousel
cards
Placing
a
ride
Connect
path
Learn
peep
needs
Placing
bathroom
Placing
paths
Card
upgrade
Ticket
pack
Fixing
a
ride
Mechanical
booth
Coaster
turial
start
Finishing
a
coaster
Placing
decorations
End
of
Day
1
31%
36%
41%
46%
8%
12%
16%
22%
2%
4%
6%
11%
0%
5%
10%
15%
20%
25%
30%
35%
40%
45%
50%
N
o
v
-
1
6
D
e
c
-
1
6
J
a
n
-
1
7
F
e
b
-
1
7
Day 1 Day 7 Day 30
CEDEC2021 でのまとめ と PlayFab 参考リンク
参考リンク
• Game Stack
– Game Stack | Microsoft Developer
• PlayFab Document
– Azure PlayFab のドキュメント - PlayFab | Microsoft Docs
• Unity, Unreal Engine, C++, C#, など様々な言語ごとのSDK
– Azure PlayFab SDKs - PlayFab | Microsoft Docs
• サンプルコード(レシピ)
– General PlayFab samples - PlayFab | Microsoft Docs
• C# SignalRとの連携サンプルコード
– PlayFab-Samples/Samples/CSharp/MessagingClient at master ·
PlayFab/PlayFab-Samples (github.com)
• アプリケーション開発 オンデマンド ウェビナー特集 のゲームカテゴリ
– アプリ開発 オンデマンド ウェビナー特集 | Microsoft Events and
Seminars
1. PlayFab は、全ての開発言語、全てのプラット
フォーム、全てのゲームタイプでご利用できる
ゲーム専用の バックエンドサービスです
2. APIと管理画面で利用するので、サーバーの知識は
不要です
3. 必要な機能を一部だけ使うこともできます
– データベースとしての利用
– マルチプレイヤーだけを利用
4. Azure への拡張や分析も進化しています
PlayFab で売れる長生きするゲームを開発しよう
Thank you!

サーバー知識不要!のゲームサーバー "Azure PlayFab" で長期運営タイトルを作ろう