
Unity Netcode でマルチプレイヤーゲームを制作

NetCode ソリューションとカジュアルな協力型ゲーム
カジュアルな協力型マルチプレイヤーゲームの制作には、Netcode for GameObjects パッケージがお勧めです。クライアントオーソリテーティブとサーバーオーソリテーティブのどちらのモデルを採用していても、さまざまなクライアントやプラットフォームの間でシーンやゲームオブジェクトのデータを同期できます。再生モードでもランタイムでもネットワークのプロファイルを確認できるツールが揃っているので、ゲームの最適化にも役立ちます。
また、Unity Gaming Services の Relay も便利です。Relay は、専用ホスティングに対する投資が不要で費用対効果に優れたピアツーピアのコンパニオンサービスであり、テストプレイのスケールや、マルチプレイヤーゲームの制作に役立ちます。

NetCode ソリューションと対戦型アクションゲーム
対戦型マルチプレイヤーアクションゲームの制作には、Netcode for Entities パッケージです。Netcode for Entities は、ECS をベースに高いパフォーマンスとスケーラビリティを目指したパッケージです。予測、補間、ラグ補償に対応した意欲的かつサーバーオーソリテーティブなゲームプレイを実現できます。
また、専用のサーバービルドターゲットを使えば自動でアセットを削除できるので、コスト管理にも便利です。Unity Gaming ServicesのMultiplay Hostingは、ゲームインフラの回復力と拡張性を維持するための合理的なアプローチです。

Unity ゲーミングサービスでゲームをレベルアップ
Netcode for GameObjects を使用して小規模な協力型のゲームを構築し、Relay と Lobby を使用してプレイヤー同士をつなげます。
さらに、ゲームをビルドして管理し、成長させるのに使用できる、超大作のゲームで実証済みの Unity のソリューションにアクセスできます。

トランスポート層をきめ細かくコントロール
Unity Transport Packageは、パフォーマンスと信頼性を重視した低レベルのネットワークレイヤーを提供する、ネットコードにとらわれないライブラリです。Unity Relayサービス、UnityTLS、パイプラインなどの高度な機能をサポートし、従来のUDPを拡張した、モダンでセキュアでポータブルなトランスポートライブラリです。
Netcode for GameObjects と Netcode for Entities はどちらも、デフォルトでは UTP をトランスポートとして使用しています。もっとも、ネットワークをきめ細かくコントロールしたい場合には、スタンドアロンのライブラリとして UTP を利用することもできます。

NetCode のサンプルでネットワーキングのコードを学ぶ
マルチプレイヤーゲームの開発方法を学べるサンプルコードを各種ご用意しています。
- ボスルームは、Netcode for GameObjectsで構築され、LobbyとRelayと統合された、プロダクションレベルのコードを持つ3DカジュアルCo-opゲームです。
- 銀河の子猫たちは、Netcode for GameObjectsで作られた2D協力型スペース・アドベンチャーのサンプルで、ネットワーク・オブジェクトの同期方法を学べるように設計されています。
- ネットワーク・レーシングは、クライアントサイドの予測、補間、ラグ補正を例証する、Netcode for Entitiesで構築された、事実ペースの対戦レースサンプルです。

コミュニティの中で学び、制作する
かつて誰かが一人で行くのは危険であると言っていたことから、私たちは皆さんがこれを必要としていると考えました。Unity のドキュメントには、ネットワーキングを開始するにあたって役に立つテクニカルリファレンスやコンテンツが揃っています。
さらに、ご質問があれば、私たちのチームはMultiplayerフォーラム、Discord、GitHubで活発に活動しています。
マルチプレイヤーネットワーキングの詳細を見る

一口サイズのサンプル
Bitesize Samples リポジトリでは、ゲーム内で使用できる一連のサンプルコードをモジュールとして提供し、Netcode for GameObjects (Netcode) の理解を深めます。

ゲームオブジェクトのネットコード・チュートリアル
このチュートリアルでは、GameObjects用Netcodeの基本的な理解を深め、カジュアルな協力マルチプレイヤーゲームを作成する際にNetcodeを使用する方法を学びます。

小規模対戦マルチプレイヤー・テンプレート
このテンプレートは、Netcode For GameObjectsとUnityのゲームサービスを使用してMultiplayerプロジェクトを作成し、出荷するための出発点を提供します。

エンティティのためのネットコードを始める
このオンデマンド・ウェビナーでは、Megacity Metroのデモを深く掘り下げ、Unityのゲームサービスとともにプロジェクトでエンティティを有効にする方法を学びます。

Unity のマルチプレイヤーソリューションをインストールして、次回のプロジェクトで有利なスタートを切りましょう。