ディープディッシュダンジョンUnityでの3プレイヤーオンライン協力プレイ

Oct 19, 2026|8 分
Game designMade with Unity
Behold StudiosのDeep Dish ダンジョンのキー、Raw Fury。Made with Unity。緑のフードと赤いチュニックを着た人物が、薄暗い地下室で松明を高く掲げている。骸骨がその人物の左の後ろに潜んでいる。ゲームのロゴは右側に表示されています。

このウェブページは、お客様の便宜のために機械翻訳されたものです。翻訳されたコンテンツの正確性や信頼性は保証いたしかねます。翻訳されたコンテンツの正確性について疑問をお持ちの場合は、ウェブページの公式な英語版をご覧ください。

Behold Studiosの2人チームが、Netcode for GameObjects、Lobby、Relay、Vivox、Unity 6.3を使用してオンライン協力アドベンチャーDeep Dish Dungeonをどのように構築したかをご覧ください。

専任のネットワークワークエンジニアがいない2人チームは、どのようにオンライン協力型ゲームをビルドするのでしょうか?

ブラジルのブラジリアで設立され、現在はカナダのトロントを拠点とするBehold Studiosは、10年以上にわたりUnityでゲームを制作しています。彼らの最新のリリースであるDeep Dish Dungeonは、1人から3人での協力型ダンジョンクラローラーです。開発の大部分において、Deep Dish Dungeonにはたった2人の人間が取り組んだ。スタジオヘッドのサウロ・カマロッティはデザイン、プログラミング、ビジネス、マーケティングを担当し、アーティストのカロリーナ・バウムガルテンはコンセプトアートから3Dモデル、テクスチャ、UIなど、すべてのビジュアルを作成しました。

Deep Dish Dungeon は発売前に50万件以上のSteamウィッシュリストを獲得し、大きな期待を集めていましたが、現在SteamとXbox Game Passでクロスプレイ対応でプレイ可能です。ケーススタディを読んで、Behold StudiosがUnity ServicesとUnity 6.3でどのように時間とリソースを節約したか、そしてこの野心的なプロジェクトを可能にした設計上の決定事項を理解してください。

Deep Dish ダンジョン | Behold Studios | Raw Fury

成果

  • ローンチ前に50万以上のSteamウィッシュリストを獲得、発表トレーラー後数日間で6万5千件を達成
  • 開発初日からPlayableなオンラインマルチプレイヤープロトタイプ
  • 余分なネットワーキングコードなしでのSteamとXbox間のクロスプレイ
  • 11言語へのLocalization
  • 遅れて参加したプレイヤーは、共有ダンジョン内のすべての敵、アイテム、オブジェクトについて最新情報を受け取る
ディープディッシュダンジョン 発売予告編

マルチプレイヤーの制約を強みに変える

Behold Studiosは、2011年のFacebookゲームや2020年のOut of Spaceなど、マルチプレイヤーゲームをリリースしたことがあります。ディープディッシュダンジョンでは、サウロは意図的にチームを小さく保った。彼は、多分野にわたるアーティストである彼女が3D、2D、ロゴ、イラストレーション、コンセプトアートをカバーできるため、カロリーナをそのプロジェクトに雇った。

唯一のプログラマーであるサウロは、プロジェクトを範囲内に収めるために余分に注意を払わなければならないことを知っていた。「Multiplayerはプロジェクトに多くの複雑さを加えるので、通常はそれらの問題に取り組む専任のエンジニアがいる」と彼は言います。それは二人だけのチームというわけではなく、プログラマーである私一人です。そこで、マルチプレイヤーの制約をデザイン要素として利用するゲームを作成する必要がありました。

Deep Dish ダンジョン | Behold Studios | Raw Fury

これが、これらの限界を強みに変える一連の意図的な選択につながりました。

  • 協力プレイのみ、PvPなし:プレイヤーは同じチームのFriendsであるため、ゲームは各クライアントを信頼できます。
  • ピアツーピア、Dedicated Serverなしゲームを作成したプレイヤーがホストとして機能します。
  • 待ち時間に耐性がある:高Pingは体験を壊さないので、ゲームに複雑な移動予測は必要ありません。
  • 意図的にシンプルな外観そのゲームは、Behold Studiosのスキルセットに合ったピクセル化されたスタイルを採用し、重いVFXやシェーダー作業を避けるために、出力解像度の3分の1でレンダリングされています。

アートスタイルもプレイヤーの期待値を設定する役割を果たした。「美学でさえ私たちをヘルプてくれる」とサウロは説明する。「全てが完全に滑らかになることを期待するわけではない。」

Deep Dish ダンジョン | Behold Studios | Raw Fury

コードの最初の行からマルチプレイヤーを設計する

サウロはPhotonのような専用のマルチプレイヤースタックでの経験がありました。それでも、彼はUnity 6のエンドツーエンドのマルチプレイヤースタックが機能するかどうかをテストするために、3ヶ月のプロトタイプバジェットを自分に与えた。

「Netcode for GameObjectsを見たとき、それはまさに私たちの得意分野だと気づきました」と彼は言います。「Unityのコアロジック、つまり物を作成しオブジェクトを管理する方法を利用し、その上にマルチプレイヤーレイヤーを追加することができます。」

彼はUnity DocumentationのLobbyとRelayのコードサンプルから始め、急速に進歩しました。「最初のコード行で、マルチプレイヤーのLobbyとRelayシステムがすでに実装されていた」と彼は言います。初日に、私はすでにマルチプレイヤーゲームをプレイしていました。

開発の最初からマルチプレイヤーを考えていたため、リファクタリングすべきシングルプレイヤーのコードベースが一度も存在しなかった。サウロは、他のチームが既存のプロジェクトにマルチプレイヤーを追加するのに1ヶ月から6ヶ月を費やしているのを見てきた。

Unityでマルチプレイヤーを始める

Deep Dish ダンジョン | Behold Studios | Raw Fury

プレイヤーをLobbyとRelayで接続する

プレイヤーにとって、フレンドに参加するのはワンクリックです。ホストはSteamのFriendsリストからFriendsを選び、Lobby IDを含む招待を送ります。友人は承諾し、同じLobbyに参加し(ホストがパスワードを設定している場合はパスワードを入力し)、Relay経由でホストに接続します。

より難しい部分は舞台裏で起こる。友人は進行中のセッションに途中参加できるため、ダンジョン内のどの敵が倒されたか、残りのヒットポイント、どのアイテムが拾われたかなど、ネットワーク上のすべてのオブジェクトを追いつく必要があります。サウロはカスタムシーン管理を構築することを避けたいと考えていた。代わりに、Deep Dish Dungeon はセッションが開始されるとシーンをセーブファイルにシリアル化します。誰かが参加すると、シーンオブジェクトは削除され、ホストの同期されたステートから動的にロードされます。復帰したプレイヤーは、最後に保存されたスポーン地点に再出現します。

サウロは、プレイヤーを接続させることではなく、ステートを扱うことが最も困難だったと言っています。

「シングルプレイヤーゲームでは、物事が特定の順序で起こっていることは確かだ」と彼は言う。マルチプレイヤーでは、誰かが途中で参加した場合に、変数やオブジェクトのステートが正確にどうなるかを知ることは決してできません。オブジェクトは、間違ったステートで呼び出された場合に何をするべきかを知っている必要がある。

Deep Dish ダンジョン | Behold Studios | Raw Fury

Vivoxで声をメカニズムにする

多くの協力プレイプレイヤーはすでにDiscordのようなツールをボイスチャットに使用していますが、Sauloは、ボイスをダンジョン探索の体験そのものに埋め込みたかったためVivoxを選びました。

「プレイヤーにダンジョンを、そしてダンジョンの孤独を感じてほしかったんです」と彼は言います。彼らのFriendsが置き去りにされていると感じてほしかった。

Deep Dish Dungeon の音声は位置情報があり、各プレイヤーの周囲のスペースによってフィルタリングされます。ダンジョン全体に設置されている約15台のインターホンスピーカーを使用して、プレイヤーの声を全員に放送することができます。これにより、一人の友人がキャンプで料理をしている間に、もう一人が食料を採集し、補給のために無線で連絡を取ることができます。話すことも、敵が反応するノイズの一つに数えられます。ジャンプしたり、松明を振ったり、鎧をカチャカチャ鳴らしたりする場合と同じです。

「今やプレイヤーたちは、その特徴をどのように、いつ使うかを考えています」とサウロは言います。それはインタラクションに多くのレイヤーを加えます。

ゲームにVoice and Text Chatを追加する

Deep Dish ダンジョン | Behold Studios | Raw Fury

Analyticsによるゲームプレイの改善

Deep Dish Dungeon は、マップもコンパスもなく、ほとんどの障害物に対して複数の解決策を持つ非線形サンドボックスです。それはプレイテストを難しくしました。「誰かが再生するたびに、彼らは違う振る舞いをしました」とサウロは言います。

彼はその自由を中心にUnity Analytics戦略を構築した。それはアイテムがゲーム内をどのように移動するかを追跡し、プレイヤーのインベントリと食事をしたかどうかとともに、各ヒット、戦闘遭遇、死亡を記録します。最後のデータは重要であることが判明しました。

Deep Dish Dungeonでは、食べ物は回復ポーションではありません。「彼は筋肉質だ」と彼は言う。空腹のまま探索しているプレイヤーを多く見かけました。そして、ゲームが難しすぎると報告していたのは、そういったプレイヤーたちでした。

その発見により、新しいゲームプレイシステムが生まれました。それは、食事を長期間摂らないとプレイヤーのHPを減少させる空腹度メーターです。このメカニクスに結果、プレイヤーはダンジョンに挑む前に食事をする必要がある理由をより簡単に理解できるようになります。

ディープディッシュダンジョンデモのAnalyticsダッシュボード

Deep Dish Dungeon デモのAnalyticsダッシュボード

診断によるバグの特定

自社のQAチームがいないうち、パブリッシャーのRaw Furyが参画するまで、サウロは自身のマシンでは再現できないクラッシュやエラーを見つけるためにDiagnosticsを使用した。また、頻度とプラットフォームでそれらをランク付けするのに役立ちました。

あるレポートは、プレイヤーが敵を攻撃できないと述べるところから始まりました。「攻撃はうまく機能している、敵もうまく機能している――何が起こっているんだ?」サウロは言う。診断データは、存在しないアイテムを参照するインベントリから始まった、ずっと以前の一連の事象を示していました。もっとずっと前に問題を掴めたはずだ。

Deep Dish Dungeon デモの診断ダッシュボード

Unity 6.3でのマルチプレイヤーのテスト

ソロプログラマーにとって、マルチプレイヤーのテストセッションを設定するのは多くの時間を要する場合があります。Unity 6.3でのMultiplayer Play Modeは、そのほとんどの作業を削除しました。Sauloは、Unity エディターでダンジョンまたは専用のテストシーンで、2つまたは3つのクライアントを同時に実行する再生モードに入ることができます。

「ボタン一つで、2人か3人でゲームのどこでもテストできます」と彼は言います。ローカルゲームを実行することは、RelayやLobbyを経由して実行するのとほぼ同じです。同じコードです。

Unity 6.3の改善された安定性も同様に重要でした。サウロは古いバージョンではほぼ毎日クラッシュを思い出します。Unity 2023にアップグレードし、その後Unity 6にアップグレードした後、彼は「クラッシュしてから一ヶ月以上経っていたことに気づくのに時間がかかった」と回想する。

Localizationパッケージで翻訳する

Behold Studiosの過去のゲームはサードパーティのLocalizationプラグインに依存していましたが、それらは常に新しいUnityバージョンに対応していたわけではありませんでした。今回はチームはUnity 6のLocalization packageを使用しました。Googleスプレッドシートと同期する文字文字列テーブルと、最初のフォントで言語がレンダリングするできない場合に2番目のフォントを試みるフォントフォールフォールバックチェーンを提供します。Deep Dish Dungeon は11言語でリリースされます:英語、ブラジルポルトガル語、フランス語、ドイツ語、スペイン語、ラテンアメリカスペイン語、ポーランド語、ロシア語、日本語、簡体字および繁体字中国語。

サウロのアドバイスは、できるだけ早く長文の翻訳を計画することです。「早期にLocalizationについて考え開始、それに対応したUIを作成することが非常に賢明だ」と彼は言う。

Deep Dish ダンジョン | Behold Studios | Raw Fury

別れの助言

小規模チームがオンラインマルチプレイヤーを検討している場合、サウロの主なアドバイスは技術ではなくデザインに関するものです。

クライアントを信頼できるゲームを作成する。協力型のゲームを作成する。「待ち時間が問題にならないゲームを作ります。500ミリ秒の待ち時間があっても、設計のおかげでゲームは機能するのです」と彼は言います。「デザイン面と生産面において、実際に使用する技術よりもこちらの方が重要です。」

Unity 6.7ベータ版の新しい機能を試してみてください