22.9K Views
October 26, 22
スライド概要
Unity のクラウドサービスである Unity Gaming Services (UGS) のマルチプレイヤーゲーム向けサービス群 Multiplayer Suite の提供サービスについて役割別に紹介します。
こんな人におすすめ:
・マルチプレイヤーゲーム開発に興味がある開発者
・マルチプレイヤーゲームに必要な仕組みについて興味のある開発者
受講者が得られる知見:
・マルチプレイヤーゲームで必要な仕組みについて
・ゲームジャンルによって変わる必要構成
・ユニティ・ゲーミング・サービスのマルチプレイヤー向けサービスの特徴
出演:
紀ノ岡 輝彦 (ユニティ・テクノロジーズ・ジャパン株式会社)
タエ マルコス (ユニティ・テクノロジーズ・ジャパン株式会社)
--
初出: SYNC 2022 #UnitySYNC
https://events.unity3d.jp/sync/
リアルタイム3Dコンテンツを制作・運用するための世界的にリードするプラットフォームである「Unity」の日本国内における販売、サポート、コミュニティ活動、研究開発、教育支援を行っています。ゲーム開発者からアーティスト、建築家、自動車デザイナー、映画製作者など、さまざまなクリエイターがUnityを使い想像力を発揮しています。
Unity Gaming Services Multiplayer Suite
自己紹介 紀ノ岡 輝彦 (きのおか てるひこ) Unity Gaming Services ビジネス開発マネージャ 特に今回ご紹介するMultiplayer Solutionsの日本市場 における営業責任者 Email: [email protected]
アジェンダ UGSマルチプレイヤースイート概要 マルチプレイヤーゲームの要素 サーバー構成オプション マッチメイキングオプション SelfServe MultiplayとMatchmaker Vivoxについて
Unity Gaming Services http://dashboard.unity3d.com ゲームのパフォーマンスやプレイヤーの行動をリアルタイムで解析す るツール群 デバグツールやバージョン管理ツールなどのゲーム開発を助けるクラ ウドツール群 クラウド側でのデータ保存やコンテンツ配信、認証サービスなどのバ ックエンドツール群 広告出稿による新規ユーザー獲得の為のツール 広告用SDK マルチプレイヤーゲーム向けのインフラ提供サービスとツール
// ゲームはみんなで遊ぶ方が楽しい? 77% マルチプレイヤーゲームを遊んでいる プレイヤーの割合 (Unity 2022 Multiplayer Report) プレイヤーはどんなマルチプレイヤーゲームを選ぶのか? ● ● ● 好きなジャンルのゲーム 友達と同じゲームを遊びながら、ゲームでおしゃべりできる すぐにマッチングして、同じくらいのスキルの人と遊べる こんなマルチプレイヤーゲームの開発を助けたい
マルチプレイヤーゲームの三つのC Creation Connection Communication 創る 繋げる 活発にする
マルチプレイヤーゲームの三つのC Creation Connection Communication 創る 繋げる 活発にする
マルチプレイヤーゲームの三つのC Creation Connection Communication ゲームエンジン (Unity Engine) + Netcode (Netcode for GameObjects) 繋げる 活発にする
Unity エンジンやNetcodeについてのリンク Unity ウエッブサイト https://unity.com/ja Unity Japan Youtube Channel Unity Learning Materials https://learning.unity3d.jp/ Unity for Pro https://forpro.unity3d.jp/
マルチプレイヤーゲームの三つのC Creation Connection Communication ゲームエンジン (Unity Engine) + Netcode (Netcode for GameObjects) 繋げる 活発にする
マルチプレイヤーゲームの三つのC Creation Connection Communication ゲームエンジン (Unity Engine) + Netcode (Netcode for GameObjects) 繋げる 活発にする
マルチプレイヤーゲームの三つのC Creation Connection Communication ゲームエンジン (Unity Engine) + Netcode (Netcode for GameObjects) 繋げる 活発にする
マルチプレイヤーゲームの三つのC Creation Connection Communication ゲームエンジン (Unity Engine) + Netcode (Netcode for GameObjects) ゲームサーバー + マッチメイク 活発にする
ゲームサーバーとマッチメイク ゲームサーバー = 遊び場所 マッチメイク = 人との出会い
Connection サーバー構成オプション ピア・ツー・ピア (相互接続) プレイヤー プレイヤー 良い点 ● 少人数対戦なら比較的簡単にインプリできる ● 追加費用がかからない ● 相互に同期できるのである意味平等 悪い点 ● 相手の情報が見えてしまう ● 1~4人くらいなら良いが、それを超えると同期が 突然難しくなる ● 人数が増えると利用帯域も増える 向いているゲームジャンル ● 将棋やオセロなどの1対1の対戦ゲーム ● 4名の麻雀ゲーム ● 同期がそれほど難しくないターン型のボードゲーム やカードゲーム
Connection サーバー構成オプション クライアント・ホスト(リレー型) 悪い点 ● ホストで処理するので、ホストが有利になりがち ● ホストで不正を行うとプレイヤーは避けようがない ● ホストの帯域などに依存してしまう ● ホストが落ちるとゲームが落ちる ホストプレイヤー リレー サーバー プレイヤー 良い点 ● 比較的簡単にインプリできる ● 相手の情報は見えづらくなる ● ホストで処理するので、同期は取りやすい プレイヤー 向いているゲームジャンル ● PvEの協力型ゲーム ● 何かをチームで一緒に作るゲーム ● 既知の友人と遊ぶゲーム ● 少人数チーム対戦も人狼系も出来ない事はない
Connection サーバー構成オプション 専用ゲームサーバー型 サーバー プレイヤー プレイヤー 良い点 ● 準備するサーバーによっては大人数でも対応できる ● サーバーで処理するので、優劣が出にくい ● プレイヤー情報は見えない ● ゲーム世界をプレイヤーに依存せずに維持できる 悪い点 ● 運用費用がかかる ● スケーラビリティと可用性の管理が大変 ● サーバーが落ちると遊べない プレイヤー プレイヤー 向いているゲームジャンル ● MMORPGやMORPG ● 障害物競走系 ● 人狼系 ● バトルロワイアル系 ● 対戦系のゲーム全般
Connection マッチメイクオプション プライベート(非公開)ロビー型 プライベートロビー#0001 ゲーム作ったよ! セッションコードは ABC123 ホストプレイヤーA ABC123に参加 ABC123に参加 募集してる ゲーム見せて 友人たちだけで遊ぶ プレイヤーB プレイヤーC プレイヤーD
Connection マッチメイクオプション パブリック(公開)ロビー型 パブリックロビー Bマップ2対2のゲーム 作ったよ! ホストプレイヤーA 255に参加 遅延が良さそうだ から255 2対2か面白 そう255 友人や知らない人とゲームを公開して遊ぶ プレイヤーB プレイヤーC プレイヤーD
Connection マッチメイクオプション パブリックロビー・クイックマッチ型 パブリックロビー Bマップで2対2のゲーム 作ったよ! ホストプレイヤー Bマップの2対2 ゲームに参加 2対2のゲームに 参加 なんでも良い から参加 簡単な条件にあったゲームですぐに遊ぶ プレイヤーB プレイヤーC プレイヤーD
Connection マッチメイクオプション ルールベースのマッチメイカー型 1)プレイヤーが参加したいゲームの条件を含めた チケットを提出 2)マッチメイカーがもらった条件に合わせて、プ レイヤーを吟味 プレイヤーA 初心者 プレイヤーB 熟練者 プレイヤーC 初心者 プレイヤーD 熟練者 3)互いに条件の合うプレイヤーをグループ化する 4)マッチの提案をプレイヤーに返す 初心者向けゲームセッション 熟練者向けゲームセッション
Connection マッチメイクオプション ルールベースのマッチメイカー型 初心者向けゲームセッション プレイヤーA 初心者 プレイヤーC 初心者 熟練者向けゲームセッション プレイヤーB 熟練者 プレイヤーD 熟練者 良い点 ● 大人数のプレイヤーを対応するのに最適 ● 端末の種類や遅延度、スキル、レベルなどの細かい 調整が可能 ● 待ち時間などもその時の状況に合わせて調整できる 悪い点 ● プレイヤー絶対数が少ないと意義が薄くなる ● それなりに演算能力が必要なので、スケーラビリテ ィと可用性の管理が大変 向いているゲームジャンル ● MMORPGやMORPGのインスタンスダンジョ ン系 ● 障害物競走系 ● 人狼系 ● バトルロワイアル系 ● 対戦系のゲーム全般
Connection マッチメイクオプション ルールベースのマッチメイカー型:バックフィル 1)ゲーム途中やセッション中にプレイヤーがゲー ムから抜けた プレイヤーC 熟練者 初心者ゲームセッション プレイヤーA プレイヤーB プレイヤーD 初心者 2)サーバーは抜けたプレイヤーのスペースを埋め るためにマッチメイカーに現在進行中のゲームセッ ションにあったプレイヤーを求める 3)条件にあったプレイヤーが見つかると、マッチ メイカーはそのセッションにプレイヤーを誘導する
Connection マッチメイクオプション ルールベースのマッチメイカー型:バックフィル 抜けたプレイヤーの穴埋めようの機能 プレイヤーC 熟練者 初心者ゲームセッション プレイヤーA プレイヤーB プレイヤーD 初心者 ランダムマッチングだけではなく、チームを事前に 組んだ人たちのセッション作成にも使える
// Boss Room : PvE 協力型マルチプレイヤーゲームサンプル https://unity.com/ja/demos/small-scale-coop-sample
Unity Game Server Hosting (Multiplay)
Multiplay 27 ゲームサーバーホスティングサービス(Multiplay) ゲームエンジンやコンソール、OSなどに依存しないゲームサーバーホスティングサービス 全世界にサーバーが準備でき、パブリッククラウドと連携して、可用性とスケーラビリティの高 いゲームサーバーを提供 利用量に応じてスケールするオ ンデマンドサービス 必要な時に必要なだけ利 用された分に合わせてス ケールするホスティング サービスでリスクを軽減 連動されたマッチメイカー Multiplayのホスティン グサービスと連動するよ うに設計されたマッチメ イカーでインテグレーシ ョンも容易 世界のAAAゲームでの利用実績 世界のAAAゲームですでにご利 用いただき実績を出しているソ リューションです。
Multiplay 28 採用され実績を出しているゲーム unity.com/multiplay
Multiplayセルフサーブデモ 2022
Unity Matchmaker
Matchmakerセルフサーブデモ 2022
Section name セルフサーブの注意点 まだまだ開発中な機能がある 無料で始められるが、クレジットカード登録が必須である 開発関係者全員がUnityIDを持つ必要がある 日本語ローカライズされていない 32
Section name セルフサーブとソリューションの違い セルフサーブ ソリューション提供 無料で始められる 原則有料 技術サポート窓口なし 技術サポート窓口あり 標準規約に合意する必要あり 別途契約を結ぶ SLA無し SLAを付けられる Multiplayはクラウド利用のみ ハイブリッド構成(BM+クラウド)可能 カスタマイズはできない 条件によってカスタマイズ可能 33
// Photon Fusionを使った大人数バトルロワイアルシューター https://assetstore.unity.com/packages/templates/packs/br200-battle-royale-multiplayer-with-photon-fusion-226753
マルチプレイヤーゲームの三つのC Creation Connection Communication ゲームエンジン (Unity Engine) + Netcode (Netcode for GameObjects) ゲームサーバー + マッチメイク 活発にする
マルチプレイヤーゲームの三つのC Creation Connection Communication ゲームエンジン (Unity Engine) + Netcode (Netcode for GameObjects) ゲームサーバー + マッチメイク テキストチャット + 音声チャット
Unity Voice and Text Chat (Vivox)
// UGSマルチプレイヤースイートの特徴 l ゲームの規模に関わらず利用 l マッチングでゲームの楽しさに差 l エンジン非依存 l セルフサービスを使ってリスクフリー l 保証された可用性とスケーラビリティ l 容易な全世界展開
マルチプレイヤーゲーム メタバースの作り方(仮題) ハンズオン・オンラインイベントを 企画中!! Meet-upやTwitterなどでお知らせします!
ご視聴ありがとうございまし た。
Samples for all scale of multiplayer games
マルチプレイヤーゲーム向けのサービスツール Unity Game Server Hosting (Multiplay) Unity Matchmaker Unity Voice and Text Chat (Vivox) Engine agnostic, hybrid scaling technology Match players by the most meaningful Deliver the best player experience with in- for session-based games, which allows gameplay parameters and automatically game comms services for multiplayer managing large amounts of capacity allocate game servers games efficiently.
Proven Multiplayer Solutions Unity Lobby Unity Relay Unity Netcode Lobby allows your players to connect before The Relay service allows you to connect Netcode for GameObjects is a networking or during a game session. Players create your players and provide great multiplayer library built for the Unity game engine. public lobbies using simple game attributes gaming experiences without the need for a which other players can then search, dedicated game server discover, and join
// What’s coming soon for Game Server Hosting Our new self-serve experience for Game Server Hosting (Multiplay) builds upon the same great technology that our managed Multiplayer Services have provided to our AAA customers for years. Now this technology will be easily available to studios of all sizes. ● Access and purchase through the Unity Dashboard as part of UGS ● Upload and scale a game server in a few minutes ● SDKs for Unity and Unreal and Command Line Interfaces to integrate and deploy your game servers ● Documentation and self serve UI to guide users through each step of the journey ● Support for containerized game servers, S3/GCP buckets, UGS Environments and Role Based Access Control ● Future full support for Enterprise
// The keystone of a online game Unity Matchmaker ➔ With developer-configured match logic and a rich rule engine that can support complex game loops. A queue and pools system allows for multiple variations and modes. You can have all the features you need without having to build them yourself. ➔ Balance sparse population, different skill sets and game modes that deliver a great experience to your player ➔ Built to scale as players join to ensure your matchmaker is not a choke point, with backfill capability to fill games fast ➔ Try new match rules quickly and easily to keep your game fresh and exciting
// Unity Matchmaker Features and Benefits ● ● ● ● ● Simple player separation with queue and pool functionality Advanced player segmentation based on configurable filters Rule-based matchmaker gives you complete control over your matchmaking logic Custom data provides your matchmaker with information to make the perfect match Game Server Hosting integration helps your game to scale and achieve worldwide success ● Flexible backfill connects players to ongoing matches ● Quick time-to-match ensures that players spend less time waiting ● Configure the Matchmaker via the SDK or via API With almost limitless customizability, matchmaker is ready to grow and adapt with your game.
// Core principles and components -> Unity Dashboard -> Workflows in the Unity Dashboard to easily get started, and quickly configure the matchmaking queues, pools and rules. -> Flexible A rich, declarative, rule engine can support complex game loop logic. A queue and pools system allows for multiple variations and modes. Unity Matchmaker SDK The Matchmaker SDK makes it easy to integrate the game client with the matchmaking service, facilitating the management of matchmaking tickets, QoS, auth, etc, leveraging Unity’s UAS. -> Game Server Hosting (Multiplay) Works with Game Server Hosting (Multiplay) out of the box, generating server allocations for you, with all the information needed to start the game quickly. -> Scalable infrastructure Built to scale, so that each game can support an arbitrary number of queues and pools.
// User Flow Unity Matchmaker Environments Queues -> Matchmaker Accessible in the Dashboard, the Matchmaker can be enabled for a Unity project. -> Queues Queues typically represent a game mode, e.g.: “2v2”, “3v3”, “battle royale”, etc. -> Environments With the provided support for environments, it is easier to experiment with development/test configurations, without affecting production. -> Pools Pools are a way to further segment the player population, to optimize for quicker match times. (e.g.: “game client version”) -> Additional resources: Concepts and definitions Pools
Unity Netcode for GameObjects
Netcode for GameObjects delivers a netcode foundation that’s customizable and extensible to meet the needs of your next multiplayer project Unity creators have a new set of packages that include Netcode for GameObjects. This is a foundational release that developers can rely on to keep their simulations synchronized, with support for scene management, animation, physics and more. It’s primarily targeted at the needs of small-scale cooperative games. A reliable co-op solution Built in the open Use our reliable Transport layer Build the small-scale co-operative game of your dreams on a reliable netcode foundation. Our development work is open source to ensure complete transparency with our community. Unity Transport Package (UTP) provides the network layer to balance byte delivery with performance and reliability.
Current UGS Solutions
// What is Voice and Text Chat (Vivox)?_ Voice and Text Chat (Vivox) is the leading provider of communication services for online games We deliver the best, most scalable, and most efficient voice and text chat service in the world for the largest developers and publishers.
// Why Voice and Text Chat (Vivox)?_ Drive engagement and retention by engaging players ➔ Players that communicate in-game play more and stay longer ➔ Players using in-game voice play twice as much ➔ Retention for social players is 5x that of players who don’t chat ➔ Keep your players in your game ➔ Poor-quality in-game voice drives players to third party apps ➔ Third party apps consistently upsell players out of your game ➔ Features that enhance player experience ➔ Player control over their voice experience (PTT, volumes, etc.) ➔ Industry’s best 3D positional chat to increase immersion ➔ Mute and report and moderation functionality helps maintain a positive community
// Why Voice and Text Chat (Vivox)?_ Cheaper and easier than building and operating in-house ➔ Development takes time and resources ➔ Time to market for a new, Voice and Text Chat (Vivox) level solution is ~1 year, with three more months of development every year to deliver scale improvements and customer-requested features ➔ Voice chat is not the focus of the game studio, and uses critical design and engineering resources ➔ Voice and Text Chat (Vivox) constantly invests in the technology to deliver a better experience to all customers ➔ Operations are complex and costly ➔ 24/7 ops team needed to monitor and ensure service remains available, and experts are scarce ➔ Full geographic coverage required for lag-free multiplayer support ➔ Optimized, quick scaling (up and down) is highly complicated
// Why Voice and Text Chat (Vivox)?_ Ahead of the competition ➔ Proven at bigger scale ➔ ➔ ➔ ➔ 99.9% SLA 10M + concurrent users on live customers Quickest scaling service Works at any scale, massive or indie ➔ Superior voice technology ➔ Lowest latency, lowest packet loss, highest quality codecs ➔ Small footprint, efficient compute, doesn’t take resources from the endpoint ➔ Unique in our cross-platform capabilities (seamless crossplatform communication and integrations)
// Why Voice and Text Chat (Vivox)?_ Feature rich technology with the most attractive roadmap ➔ Voice and Text Chat (Vivox) is building business critical features ➔ Moderation tools to tackle toxicity ➔ Next-gen platforms support (Stadia, XSX, PS5) ➔ Engine agnostic technology ➔ The best voice comms user experience to boost inmersion and engagement ➔ 3D positional ➔ Cross-play ➔ Legal compliance features ➔ Continuous investment to assure regulatory compliance with accessibility, privacy, and security laws
Unity Relay
Enable great multiplayer experiences with Relay The Relay service allows you to connect your players and provide great multiplayer gaming experiences without the need for a a complex dedicated game server. Our service enables easy and secure peer-topeer, listen-server UDP communications between players. A cost-friendly solution The peer-to-peer client server model hosts games on your player’s devices at home, saving you the cost of renting or maintaining dedicated servers. Simple and automatic scaling Secure communications with DTLS Let Relay do the heavy lifting of automatic scaling for users, scaling to meet your capacity requirements in a multi-tenant fashion Relay supports DTLS encryption of all UDP communication to and from the Relay servers, this enables your users to deliver data that is securely encrypted and authenticated.
Unity Lobby
Connect your players for great multiplayer experiences with Lobby Lobby allows your players to connect before or during a game session. Players create public lobbies using simple game attributes which other players can then search, discover, and join. Invite-only lobbies also allow players to create private spaces for select participants only. Custom lobby management and discoverability Out-of-the-box "Quick Join" functionality Players can create public and easily discoverable hangout lobbies with customized criteria. Empower your players to find their ideal lobbies within one call, ensuring a quick and enjoyable match. Invite-only lobbies Players can create private hangout lobbies and invite their friends or select participants.