Unity開発者のためのマルチプレイヤーネットワーキングに関する新しいテクニカル電子ブックを入手する

シングルプレイヤーゲームの開発経験があり、Unityで初めてのマルチプレイヤープロジェクトを計画していますか?そして、マルチプレイヤーネットワーキングに関する新しいテクニカルEブックをぜひご覧ください。
このまったく新しいガイドの目的は2つある:まず、マルチプレイヤーネットワーキングの中核となる概念について、基礎的かつ詳細な説明を提供する。2つ目は、Netcode for GameObjectsをベースにしたサンプルマルチプレイヤープロジェクトを通して、Unityのネットワークとマルチプレイヤー機能の使い方を説明することです。
マルチプレイヤーデベロッパーの道を歩み始めたばかりの方には、避けるべき一般的な落とし穴や、プロジェクトに最適なマルチプレイヤーソリューションの選び方など、役立つヒントが見つかります。また、次のステップとしてUnityネットワーキングのサンプルも多数紹介しています。最終的には、独自のマルチプレイヤーゲーム機能のプロトタイピングと開発を、可能な限り効率的に開始していただきたいと考えています。
このガイドは、あなたがUnityとC#の開発に精通しているが、ネットワークに慣れていない、または始めたばかりであることを前提としています。

マルチプレイヤー開発を始めるのは少し難しく感じるかもしれないが、まずコアとなるネットワーキングのコンセプトを理解すれば、その道のりは簡単になる。
クライアントとサーバーの役割や、UDP(User Datagram Protocol)のような標準的なインターネット・プロトコルを使ってデータ・パケットをやりとりする方法など、ネットワーク・アーキテクチャの最も単純な部分を説明することからガイドを始める。ティック、アップデート、レイテンシーとは何かを学ぶ。状態同期、リモート・プロシージャ・コール(RPC)、帯域幅管理など、ネットワーク同期のテクニックが紹介されている。
マルチプレーヤー環境におけるデバイスの接続と通信方法を定義する、さまざまなネットワーク・トポロジー・モデルについての説明があります。トポロジーは、ゲームのアーキテクチャ、パフォーマンス、および全体的なプレイヤーエクスペリエンスに影響を与える可能性があります。ゲームの種類、ゲーム状態の制御レベル、およびサーバーインフラに利用可能なリソースによって選択します。したがって、このガイドは、あなたが正しい選択をすることができるように考慮すべき要因についての情報を提供するのに役立ちます。
ローカル・テスト、ネットワーク状況のシミュレーション、クライアント接続の管理、デバッグ・ツール、コマンドライン・ヘルパーの使用などに焦点を当てた、ネットワーク・プロジェクトのワークフローをガイドに沿って進めることができる。
また、ネットワーク同期がすべてのプレーヤーにとって一貫した、そして公平なゲーム体験を維持するために不可欠である理由についても見ていきます。プレイヤーがゲーム環境の一部と相互作用するようなゲームプレイアクションのためのクライアント・サーバー通信のセットアップ方法を学びます。これには、ネットワークに接続されたゲームステートを実装し、サーバーとの間でリモート・プロシージャ・コール(RPC)を送信することが含まれる。このガイドで扱われているその他の概念には、以下のようなものがある:
- RPCとNetworkVariablesの比較
- マルチプレーヤーのためのデザイン
- ネットワーク遅延とパフォーマンス
- 待ち時間のシミュレーション
- Unityトランスポートデバッグシミュレータ
- クライアント側の補間
- クライアント側の予測と予測
- なぜサーバー権限なのか
- クライアント側予測の仕組み
- 照合とロールバック
- Netcode for GameObjectsにおけるクライアントサイドの先読み
- 決定論的物理学
- Netcode for Entitiesにおけるクライアント側の予測
最後に、Unityのマルチプレイ開発ツールとソリューションを紹介します:Netcode for GameObjectsと Netcode for Entitiesフレームワーク、Game Server Hosting (Multiplay)、Relay、Vivoxfor Voice and Text Chatなどのサービス。また、統合、イテレーション、デプロイメントをこれまで以上に確実かつ迅速にする、マルチプレイヤーゲーム向けのUnity 6機能の紹介も含まれています。

この電子書籍では、最初のUnity Netcode for GameObjectsプロジェクトをセットアップして作成する方法について、実践的で実践的な例を提供することで、理論を行動に移します。このサンプルは、Starter Assets - ThirdPerson パッケージのアセットを使用したシンプルなサンプルプロジェクトです。これは、ユニバーサルレンダリングパイプライン(URP)を使用して、人型キャラクターによる3Dゲームプレイをシミュレートします。このゲームには、小さなテストプレイグラウンドシーンと、設定可能な三人称視点コントローラーが含まれている。例題に従えば、次のような概念に慣れるだろう:
- GameObjects用Netcodeのインストール
- NetworkManagerの追加
- NetworkObjects
- 選手ネットワークオブジェクト
- プレーヤーNetworkObjectの作成
- Multiplayer Play Mode
- 独自のUIスタートボタンを作成する
- NetworkBehaviourの追加
- 権限と所有権
- NetworkTransformとNetworkAnimatorを使った同期
- クライアント権限の適用
- オーナー権威モード・コンポーネント
- サーバー権限との同期
- シングルトン設計パターン
電子書籍と同時に、GameObjects用Netcodeを使ったマルチプレイヤーゲームのセットアップの重要なステップをカバーする新しいチュートリアルもご覧いただけます:

最後に、Unityの最新サンプルプロジェクトを詳しく紹介しています。サンプルは、Netcode for GameObjectsとNetcode for Entitiesを使い始めるためのものです。これらには、新しいVR Multiplayerテンプレート、更新されたLearnチュートリアル、Bitesizeサンプルリポジトリ、ECS Netcodeサンプル、Megacity Metroサンプルが含まれます。
新しいマルチプレイヤーイーブックと追加のサンプルリソースが、Unity 6でのマルチプレイヤーゲーム開発を効率的に始めるのに役立つことを願っています。質問やコメントがあれば、このディスカッション記事に投稿してほしい。最後に、unity.com/how-toで他の最新のUnityリソースをチェックしてください。