オススメ機能
Twitter
お気に入り
記事履歴
ランキング
お気に入りタイトル/ワード

タイトル/ワード名(記事数)

最近記事を読んだタイトル/ワード

タイトル/ワード名(記事数)

LINEで4Gamerアカウントを登録
[GDC 2024]ネットゲームに必要なあらゆる要素をまとめたUnity用サンプル「Megacity Metro」が公開に
特集記事一覧
注目のレビュー
注目のムービー

メディアパートナー

印刷2024/03/20 21:36

イベント

[GDC 2024]ネットゲームに必要なあらゆる要素をまとめたUnity用サンプル「Megacity Metro」が公開に

画像集 No.002のサムネイル画像 / [GDC 2024]ネットゲームに必要なあらゆる要素をまとめたUnity用サンプル「Megacity Metro」が公開に
 米国時間2024年3月19日,ゲームエンジン「Unity」を手がけるUnity Technologiesは,GDC 2024にて,Unityの最新版である「Unity 6」について解説する「Unity Dev Summit」を開催した。この中で同社は,「Multiplayer Development 101 with Megacity Metro」と題したセッションを行い,サーバー・クライアントシステム型のマルチプレイゲームの実装事例として,「Megacity Metro」(関連リンク)を公開したので,その概要をレポートしよう。

画像集 No.003のサムネイル画像 / [GDC 2024]ネットゲームに必要なあらゆる要素をまとめたUnity用サンプル「Megacity Metro」が公開に

セッションを担当したUnityのHersh Bansal氏(Technical Product Manager)と,Erick Boulay氏(Staff Software Developer)
画像集 No.004のサムネイル画像 / [GDC 2024]ネットゲームに必要なあらゆる要素をまとめたUnity用サンプル「Megacity Metro」が公開に 画像集 No.005のサムネイル画像 / [GDC 2024]ネットゲームに必要なあらゆる要素をまとめたUnity用サンプル「Megacity Metro」が公開に


Megacity Metroとは何か


 Megacity Metroとは,2023年に行われたUnity開発者向けカンファレンス「UNITE 2023」で,リリースが予告されていたものだ。セッションを担当したUnityのHersh Bansal氏によると,Megacity Metroデモは,2018年当時のUnityが発表したゲーム風技術デモ「Megacity」の世界観をモチーフとして開発したものとのこと。ただ,Megacity Metroの開発にあたっては,3Dモデル素材はすべて新規に制作したそうだ。


 グラフィックスシステムについては,Unityが互換性重視のグラフィックスパイプラインとして提供している「Universal Render Pipeline」(以下,URP)を,あえて選択しているという。Unityには,表現力重視のハイエンドグラフィックシステム「High Definition Render Pipeline」(以下,HDRP)もあるが,URPを選択したのは,Megacity Metroを「Windows PCだけでなく,MacやiOS端末,Android端末とのクロスプレイサンプルとして実現したかったから」と,Bansal氏は説明していた。
 スマートフォンでの動作もターゲットとしている場合,たしかに軽量で互換性の高いURPを選ぶのもうなずける。

 まずは,最近公開となったMegacity Metroの紹介動画を見てみよう。


 リリースされたランタイムは,128人以上の同時プレイに対応しており,その実現にあたっては,Unityが提供する「Unity Cloud Services」や「DOTS」(Data-Oriented Technology Stack),「ECS for Unity」(Entity Component System)などの技術が活用されているとのことである


サーバー・クライアント型オンラインゲーム向けのネットコードを提供


 Megacity Metroでは,ゲーム世界で起きていることのさまざまな同期処理を,DOTS上で構築したサブシステム「Netcode for Entities」で行っている。
 マルチプレイヤーゲームでは,ひとつのゲーム世界に対して,複数のプレイヤーがアクセスしてさまざまな行動をとるわけだが,それぞれの行動は,ゲームに参加しているプレイヤーにとって,「理不尽ではない納得できるもの」である必要がある。

ゲーム世界で起きていることの同期処理を行うサブシステム「Netcode for Entities」
画像集 No.006のサムネイル画像 / [GDC 2024]ネットゲームに必要なあらゆる要素をまとめたUnity用サンプル「Megacity Metro」が公開に

 こうしたサーバー・クライアント型のオンラインゲームでは,各プレイヤーが同じサーバーに接続されているとしても,それぞれの行動がサーバーに送られてデータが更新されるタイミングは,まったくバラバラになる。たとえばMegacity Metroでは,プレイヤーがそれぞれの宇宙船(空飛ぶクルマ)を操縦しているわけだが,宇宙船の座標や向きのデータは,それぞれまちまちのタイミングでサーバーに送られるわけだ。
 たとえば,プレイヤーAがプレイヤーBの宇宙船を狙って銃撃した場合,プレイヤーAの位置座標や向き,銃撃した時刻がサーバーに送られるタイミングと,プレイヤーBの最新の位置座標や向きがサーバーに送られるタイミングは異なる。これをサーバーが,何の工夫もなくそれぞれの情報が届いたタイミングで衝突判定(≒物理シミュレーション)を行ってしまうと,プレイヤーは遅延を感じたり,あるいはゲーム判定に理不尽さを感じることになりかねない。
 プレイヤーAとBは,サーバー側で進行している絶対時間のゲーム世界でプレイしているつもりでも,同じ時間にそれぞれが見ているゲーム画面ですら,サーバー側からすれば遅延したゲーム世界の状態だからだ。

 こうしたサーバー・クライアント型ネットワークゲームの高品位な同期進行システムは,各プレイヤー(クライアント)の高度な状態予測と,遅延補償の仕組みを実装しなければならない。だが,その設計と実装には,かなりの専門知識が必要になる。
 今回,発表となったNetcode for Entitiesは,そうした難解な同期,遅延の問題をシステマティックに対策できて,しかも,その処理系をチューニングすることもできるというものだ。

Megacity Metroはサーバークライアント型オンラインゲームの実例として開発された。Unityユーザーは本作をテンプレートとして,自作のオンラインゲームを開発できる
画像集 No.007のサムネイル画像 / [GDC 2024]ネットゲームに必要なあらゆる要素をまとめたUnity用サンプル「Megacity Metro」が公開に


ユーザー認証やマッチメイクのサブシステムも提供


 ネットワークゲームと言えば,面倒なのがユーザーアカウント作成だ。
 プレイに参加するゲーマーにとっても面倒な手間だし,オンラインゲームを開発する側にとっても同様だ。ハイペースでさまざまなオンラインゲームがリリースされている現在,ユーザーアカウント作成が面倒だと,プレイ前に離脱されてしまう可能性だってある。

 というわけで,UnityはMegacity Metroにおいて,クロスプラットフォーム対応のユーザーアカウント作成サブシステムも提供している。GoogleアカウントやApple IDといったメジャーなアカウントシステムから連携認証させることで,手軽にオンラインゲームのアカウントを作るサブシステムが付属しているのはありがたい。

Unityが提供するアカウント作成支援システムの特徴
画像集 No.008のサムネイル画像 / [GDC 2024]ネットゲームに必要なあらゆる要素をまとめたUnity用サンプル「Megacity Metro」が公開に

 オンラインゲームの開発で,もうひとつ「面倒ごと」があるとすれば,マッチメイキングだ。要は対戦相手だったり,一緒に冒険するパートナーを,各プレイヤーに割り当てる(マッチングさせる)サービスだ。アカウントデータベースを参照して,同じ腕前のプレイヤーと引き合わせる仕組みを,ゼロから作ろうとすると骨が折れそうである。
 というわけで,UnityはMegacity Metroで,マッチメイキングのサブシステムも提供している。もう1人の講演者であるErick Boulay氏によると,プレイヤー同士のネットワーク遅延状況や,ゲームのプレイ実績,ゲームコミュティにおける評判などを吟味して,マッチメイクができるように設計してあるとのことだ。

マッチメイキングサブシステムも提供する
画像集 No.009のサムネイル画像 / [GDC 2024]ネットゲームに必要なあらゆる要素をまとめたUnity用サンプル「Megacity Metro」が公開に

 そのほかにも,Unityが運営するクラウドサービス上にゲームサーバーをホスティングさせるためのガイドラインや,プレイヤー同士が自由なコミュニケーションを楽しめるようにするためのロビーサービスなども提供する。

マッチメイキングサブシステムが,マッチングしたプレイヤーを特定のゲームサーバーに誘導する仕組み
画像集 No.010のサムネイル画像 / [GDC 2024]ネットゲームに必要なあらゆる要素をまとめたUnity用サンプル「Megacity Metro」が公開に

オンラインゲームのロビーシステムのサンプルもあり
画像集 No.011のサムネイル画像 / [GDC 2024]ネットゲームに必要なあらゆる要素をまとめたUnity用サンプル「Megacity Metro」が公開に

 ゲームに参加しているプレイヤー同士のボイスチャットやテキストチャット機能,フレンド登録を始めとしたソーシャル機能,サーバー運営側の管理システムなども用意されている。

ボイスチャットサブシステム(左)とサーバー管理システム(右)の提供する機能の例
画像集 No.012のサムネイル画像 / [GDC 2024]ネットゲームに必要なあらゆる要素をまとめたUnity用サンプル「Megacity Metro」が公開に 画像集 No.013のサムネイル画像 / [GDC 2024]ネットゲームに必要なあらゆる要素をまとめたUnity用サンプル「Megacity Metro」が公開に

 Megacity Metroは,「ネットワークゲームのサンプルプロジェクト」として提供されるわけだが,オンラインゲーム単体だけではなく,オンラインゲームを取り巻く周辺のサブシステムまでを手広く網羅したサンプルになっているのが興味深い。オンラインゲームを開発するに当たっての「面倒ごと」のひととおりを,サンプルの形で実装したうえで提供してくれるのは,オンラインゲーム開発経験がそれほど多くない開発者にとっては,ありがたいことだろう。

 インディーゲームの開発においては圧倒的な採用率を誇るUnity。今後は,ユニークなUnityベースのサーバー・クライアント型オンラインゲームがいろいろと登場してくるかもしれない。

UnityのMegacity Metro登録ページ(英語)

Unity公式Webサイト


4Gamer「GDC 2024」掲載記事一覧

  • 関連タイトル:

    Unity

  • この記事のURL:
4Gamer.net最新情報
プラットフォーム別新着記事
総合新着記事
企画記事
スペシャルコンテンツ
注目記事ランキング
集計:04月14日〜04月15日