Microsoft Game Stack. Level Up.
MULTIPLAYER
SERVICES
PLAYERS
ECONOMY ANALYTICS
COMMUNITY
AUTOMATION
MULTIPLAYER LIVEOPS DATA & ANALYTICS
今日の大作ゲームを支えるオンラインサービス
Online services powering today's biggest games
CONTENT
Microsoft Game Stack. Level Up.
プレイヤー同士が一緒に遊べて、クライアントが相互運用でき、
コードベースが統一されると、ゲームはより強固なものになります。
Your game is stronger when your players are together, your clients are interoperable, and your codebase is unified
Game
Platform
Social
Network
Communication Language
Moderation
Accessibility
Microsoft Game Stack. Level Up.
Out Gameにおける PlayFab利用例:エコノミー
•ゲーム内の通貨を定義してアイテムやサービスを購入できるようにする
•デポジットや、1日あたりの充填、などの機能がある
仮想通貨
•アイテムやバンドルなどの販売
•プレイヤーのセグメントに連携したオーバーライド
ショップ
•消費アイテム
•永続化アイテム
アイテム
•プレイヤーごとにアイテムを保持するための仕組み
プレイヤーインベントリー
•リアルマネーで行われた購入金額の合計値
•セグメンテーションに利用できる
プレイヤーの現在価値(VTD)
アイテム管理画面の操作
は Out Game で行う
アイテムの効果の発動や、
消費などは In Game で行
うこともあり、厳密に
In/Outの区別は難しい
Microsoft Game Stack. Level Up.
ハンズオンその1
数人で、既存のPlayFabに接続済みのゲームを遊んでいただきます。
• ログインIDを変えて、数回遊んでみてください。
PlayFab上で、イベント処理がどのように行われるのかを確認してみましょう
• プレイヤーをBANしてみてください。
PlayFab上で、該当プレイヤーを禁止にする
• 情報更新をPlayFab上で行ってみてください。
例:アイテムのストアの情報を変える、プレイヤーのデータを変える
Microsoft Game Stack. Level Up.
サンプルゲーム(片方だけでもOKです)
ゲーム1ー1: Unicorn Battle
アプリ共有フォルダ 01_UnicornBattlewindows-client-exe
Unity で作成された、Demo アプリです。Windows で動作します。起動後、左下の歯車マークを推し、
PlayFab の Title ID 99245 を入力してゲームを開始します。内容は、ユニコーンのキャラクターを選択し、敵
と戦う。商品アイテムを購入する、といったものです。
ゲーム1-2: VANGUARD OUTRIDER
URL https://developer.playfab.com/ja-JP/vanguard-outrider#/
ブラウザ上 で動作する Demo アプリです。
タイトル画面で、12B79 を入力して起動します。
ゲーム内容は、地球を含めた太陽系の惑星に移動し、
敵と戦うというものです。HPがゼロになると死にます。
武器屋、防具屋、でアイテムを購入ができます。
Microsoft Game Stack. Level Up.
MPS Quick Start!
• Game Server SDK
C++, C#, Java, Unity, Unreal
Start, ReadyForPlayers methods
Logging
Access to configuration settiongs
• Quick Start 概要
Gsdk ラッパー: MpsSamples/README.md at main · PlayFab/MpsSamples (github.com)
Fake Game: Gsdkと会話するゲームサーバー。他のGame Serverに入れ替えてもOK
Microsoft Game Stack. Level Up.
Virtual Machine
Fake Game
/hello
/hello
/terminate
HTTP
:80
wrapper
Container Process
Server ID AAAA
Session ID aaaa
Player […, …, …, ]
IP Address=XXX
Port 番号:
TCP/UDP
Server A
Server B Server C
Virtual
Machine
Virtual
Machine
Virtual
Machine
Virtual Machine
設定情報
CPU: XX Core
Region : 東日本
Container Process
Container Process
GSDK
Microsoft Game Stack. Level Up.
MpsSamples/wrappingGsdk at main ·
PlayFab/MpsSamples (github.com)
https://github.com/PlayFab/MpsSamples/tree/main/wrappingGsdk
Microsoft Game Stack. Level Up.
MpsAllocatorSample
• ----------------------------------
• 0 to exit the app
• 1 for RequestMultiplayerServer
• 2 for ListBuildSummaries
• 3 for GetBuild
• 4 for ListMultiplayerServers
• 5 for ListVirtualMachineSummaries
• 6 for GetMultiplayerServerDetails
• 7 to see server allocation status
• ----------------------------------
サーバーリクエスト
Player名を複数入力
Build Summery の表示
全体の概況を示す
Buildの情報
New Buildで設定した内
容などを表示します
Server IDと、Session ID
のリスト
各Server のStatusや
Player を表示します
Vmのリストを
表示します
Active, StandingBy, など
サーバーの状態を表示し
ます
Session IDを指定して、サーバーの
詳細を取得します
c2c7b766-8b60-4ed5-b0b5-1ee3a230531e
Microsoft Game Stack. Level Up.
サーバーのビルド作成は GUI/CUI どちらでもOK
• ゲームマネージャーを利用したサーバービルドの配置
1.PlayFab.com 上の開発者アカウントにログインします。
2.スタジオ内のタイトルを選択
3.「マルチプレイヤー」 > 「サーバー」 に移動し、 [新しいビルド] を実行
• Power Shellを利用したサーバービルドの配置
事前準備: PlayFab タイトル ID と、タイトルのシークレットキーを取得しておきます
PowerShell/API を使用したビルド
Microsoft Game Stack. Level Up.
CSharpRunner
• Gitリポジトリ MpsSamples/WindowsRunnerCSharp
• 公式ドキュメント Windows Runner サンプル - PlayFab | Microsoft Docs
• マルチプレイヤーゲームサーバーのGSDKと統合された、サーバーサイドと、クライアント側の両方のサンプルです。
• シンプルなBytecodeサンプルで、すぐに実行することができます。
• 大まかな手順
1. タイトルの設定で、「Allow client to start games」にチェックを入れる
2. サーバー、クライアント、それぞれを Visual Studio にてビルドし、サーバービルドのフォルダで、Zipファイルを作成する
1. 最新の PlayFab ゲーム サーバー SDK (GSDK) NuGet パッケージなどの依存関係のダウンロードが自動的にトリガーされます。
2. リリース x64 構成で WindowsRunnerCSharp.csproj をコンパイルしてビルドします。
3. bin フォルダーに移動し、すべての x64 リリース バイナリを ZIP 圧縮します
3. ZIPファイルを PlayFab にUploadします (ゲームマネージャーの、マルチプレイヤーサーバーの画面から操作する)
dotnet publish --self-contained -r win-x64 /p:PublishSingleFile=true /p:PublishTrimmed=true
4. Zip ファイルの作成
Set-ExecutionPolicy Unrestricted
Build.ps1
5. PlayFab(ゲームマネージャー)にログインし、 マルチプレイヤーサーバーMPS を展開する
6. クライアントから接続
cd C:UsersUserNameDocumentsGitHubMpsSamplesWindowsRunnerCSharpWindowsRunnerCSharpClientbinReleasenetcoreapp3.1
dotnet WindowsRunnerCSharpClient.dll --titleId CBE66 --buildId 36083326-3bd5-4b8f-a97d-7e82f066aa40 --verbose
Microsoft Game Stack. Level Up.
Entities & Groups Statistics Matchmaking Party Servers
Multiplayer services
#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
Microsoft Game Stack. Level Up.
PlayFab’s identity system is generic
Link PlayFab players to Xbox Live, Steam, PlayStation, Nintendo, Open ID...
PlayFabのIDシステムは汎用的
PlayFabプレイヤーをXbox Live、Steam、PlayStation、Nintendo、Open IDとリンクさせる...
Build your own cross-title social network
Player data is stored as a hierarchy of entities
タイトルを超えた独自のソーシャルネットワークを構築
プレイヤーデータはエンティティの階層構造として保存さ
れる
すべてのエンティティは、任意のオブジェク
トとファイルデータのための一貫したAPIを
持っています。
All entities have consistent APIs for arbitrary object and file
data
PlayFab Entities
Master
Player
Title
Player
Character
Microsoft Game Stack. Level Up.
• パーティーは、暗号化された低レイテンシ
のネットワークでプレイヤーデバイスを接
続します
• ネットワークエンドポイントを使用して、
プレイヤー間でゲームデータを交換できま
す
• チャットエンドポイントは、ゲーム内のボ
イスチャットとテキストチャットに使用で
きます
• 文字起こし、音声合成、翻訳が組み込まれ
ています(Azure Cognitive Serviceと統合さ
れています)
PlayFab Party
Microsoft Game Stack. Level Up.
Simple scale
• PlayFab の安全なトランスポートおよびリレーサービ
スでネットワーク攻撃からプレイヤーを保護します
• 限られた管理で動的に拡張可能です
• 相互運用可能なクロスプラットフォーム C++ SDK で
全員を接続します
Party Servers
Microsoft Game Stack. Level Up.
完全に準拠したマッチメイキングおよびコミュニ
ケーション機能を備えたマルチプレイヤーゲーム
を構築する
Xbox Network Integration Policies
Xboxエコシステムの開発者は、
追加費用なしで強力なマルチプレイヤーを実現で
きます
どこでプレイしても人々をつなぐ魅力的な
マルチプレイヤーゲームを構築できます
PlayFab Matchmaking & Party
are free for Xbox Live activity
Microsoft Game Stack. Level Up.
Multiplayer servers that scale with player demand
• PlayFab マルチプレイヤーサーバーは、カスタム
ゲームサーバーのオーケストレーターです。
• Azure を使用して動的かつ効率的にスケーリング
されたマルチプレイヤー サーバーを作成
• 最大10,000,000台の同時ゲームサーバーまで拡張
• 動的な待機プールで需要バーストを自動的に処理
Microsoft Game Stack. Level Up.
• ゲームサーバーは、Windows環境とLinux環境の両方でホストできます
• サーバはコンテナ化されており、一貫した運用環境を実現
• 15 以上の Azure リージョン
• プレイヤーのための低待機時間と高い信頼性
Globally deploy Windows or Linux Servers
Microsoft Game Stack. Level Up.
PlayFab マッチメイキング
+
外部ホスティングシステム
PlayFab マルチプレイヤーサーバー
+
独自の音声システムを持ち込む
独自のロビーやマッチメイキング
+
マルチプレイヤーサーバーと統合する
COMMUNITY: Strengthen player to player relationships
MULTIPLAYER: Build social experiences with cross-platform play
CONTENT: Engage players with frequent updates
ECONOMY: Sell more virtual goods, more easily
PLAYERS: Stronger, secure relationships
ANALYTICS: Measure and react in real-time
AUTOMATION: Customize experiences with cloud-hosted logic