Games

Netcode for GameObjectsで、すぐに制作可能なマルチプレイヤーゲームを作ろう

SAMUEL BELLOMO Netcode Engineer
Apr 5, 2023|5 分
Netcode for GameObjectsで、すぐに制作可能なマルチプレイヤーゲームを作ろう
このウェブページは、お客様の便宜のために機械翻訳されたものです。翻訳されたコンテンツの正確性や信頼性は保証いたしかねます。翻訳されたコンテンツの正確性について疑問をお持ちの場合は、ウェブページの公式な英語版をご覧ください。

Unityでマルチプレイヤー協力型ゲームを作っていますか?そんなあなたにぴったりのオンデマンド・リソースをご用意しました:マルチプレイ・チームによる4回にわたるウェビナー・シリーズがYouTubeで公開中。このシリーズでは ボスルームサンプルゲームに潜入し、UnityとNetcode for GameObjectsを使用して、制作可能なマルチプレイヤーゲームを構築する方法を探ります。

目次基本的なゲーム実装とサーバー権限を理解する

マルチプレイヤーゲームの制作は、適切なAPIを使うことだけではない。シリーズ最初のエピソードは、マルチプレイヤーゲームを開発する際に、プレイヤー間にインターネットのような混沌とした技術を導入する際のベストプラクティスとアドバイスを提供します。

第1回目のエピソードでは

  • GameObjects(NGO)とUnity Gaming Services(UGS)のNetcodeとは何ですか?
  • NetworkVariablesとRPCの比較と、それぞれの機能でどちらを選ぶべきかの理由
  • オーソリティーと、ゲームプレイのほとんどにサーバーのオーソリティーを選んだ理由
  • ラグに対処するためのクライアント・オーソリティのような動きと代替モデル、パスファインディングに基づく動きの最適化トリック
  • 基本的なゲームの実装とステート(netvar、ネットワークリスト)とRPCの使い方
2.キャラクターの能力、スポーン、シーンオブジェクトを作り上げる

エピソード2では、ボスルームにおけるキャラクター能力の実装と、ゲームにおける能力実装のアプローチ方法について取り上げます。

私たちはそこに飛び込む:

  • サーバー駆動型能力実装の一般的な流れ
  • 信頼性とRPCが信頼できないことの意味
  • 近接攻撃とアニメーションの問題の予測
  • タンクシールドの機能性と環境との相互作用
  • アーチャーのパワーショットとエリア・オブ・エフェクト(AOE)。
  • メイジ・ファイアボルトと帯域幅の使用
  • 我々の能力システムの一般的なアーキテクチャ

私たちはまた、こうも考えている:

  • 動的に生成されるオブジェクト
  • 静的なシーン内配置オブジェクトの生成
  • 破壊可能なシーン内配置オブジェクトの生成
  • 遅れて参加したときのゾンビインプに関する教訓
  • プールのようなカスタムスポーンロジックとNGOとの統合方法
3.多人数参加型ゲームをプレイヤーに強くする

セッション3では、マルチプレイヤーゲームをプレイヤーに強くする前に、ゲームの実装についてもう少し詳しく説明します。

私たちは探求する:

  • 物理学インタラクション、オブジェクトとペアレント、シーンとシーン管理
  • Relayと Lobbyを使用してゲームをオンラインにする。
  • NGOとカスタムシリアライゼーションを使用したプレイヤー間のキャラクター選択画面の同期
  • プレーヤーの出入り、再接続フロー、レイトジョイン対応、切断、タイムアウトに強いゲームを作る。
  • レース・コンディションの処理と各種テスト
4.帯域幅とゲーム開発プロセスの最適化

シリーズ最終回となる第4回は、マルチプレイヤーゲームにおけるゲーム開発のベストプラクティスを探る。

このエピソードで取り上げるのは

  • 帯域幅の最適化とプロファイルツール、NetworkTransformの最適化、その他のヒント
  • ネットワーク状態シミュレータ、統計モニタリング、カスタムデバッグフローなどのデバッグツール
  • プロジェクト・アーキテクチャ(アクション・システム、プレーヤー・アーキテクチャなど)
  • ボスルームの未来
マルチプレイヤー開発を始めよう

シリーズを見る?今後より良いセッションを企画できるよう、ご意見をお聞かせください。

UnityとNetcode for GameObjectsを使って次のマルチプレイヤープロジェクトに飛び込む準備ができているなら、ここに役立つリソースがあります:

Unityでのマルチプレイヤーゲーム開発に関するご質問やご意見はございませんか?Discordや フォーラムで気軽に議論に参加しよう。