Unityのパッケージ機能の「Netcode for GameObjects」を使って、簡単にオンラインのマルチプレイ可能なゲームの作り方を解説します。
作るまでの手順など
マルチプレイのゲームを作るには以下の手順で行いたいと思います。いきなりオンライン化はしないのでそこの所よろしく!
全体の流れについて
実際にオンラインマルチプレイを作る手順として、いくつかのステップに分けます。といってもオフライン的な作業は最初のみ。Netcode for GameObjectsを使った動機処理を実装し、それをオンライン化する流れになります。ローカルでテストできるから安心!それがほとんどコードを変更せずにオンライン化させることができるのが優秀ポイント!
機能 | 内容・補足 |
---|---|
ローカルでのNetcode for GameObjects | 同ローカルネットワーク内で接続できるようにする この実装が基本で、後のRelay版に変更することでマルチプレイ化が可能に! |
Relayを使ったオンラインマルチプレイ | UnityService機能を利用して、オンラインでのマルチプレイ 事前に作成したローカルでのNetcode for Gameobjectsを利用します。 |
NetworkVariableを使う | ゲーム内で利用する各プレイヤーのパラメータなどを同期させる |
Lobbyの実装 | Relayでも軽く触れるロビーをもう少しちゃんと作る |
LobbyとRelayを連携 | 仕上げ |
Unityのバージョンについて
Netcode for GameObjectsを使うため、Unityは2021以上のものを推奨します。一部パッケージが表示されない場合はGit経由で入手する必要があります。よくわかんない場合は新しめのUnityを使うようにしてください。
Unityのダッシュボード的なもの
直ちに必要ではないですが、オンライン化を行う場合Unity Gaming Serviceを利用する必要があります。下記リンクからログイン&ページが確認できるか見ておくと良いかも。Organization(組織)やProject(各ゲーム)の設定などはのちほど。
https://dashboard.unity3d.com/gaming
下図はデビダンアプリのページ。左側の「Multiplayer」タブからマルチプレイヤー関連の機能を有効にすることが出来ます。今回取り扱うのはRelayとLobbyかな。Matchmakerは時が来たらやろう。