はじめに
マルチプレイヤーゲームを構築するのは、挑戦的ながらも報われる経験となります。本記事では、経験豊富なゲーム開発者3名 – トーマス・ウィンクリー、エステバン・マルドナド、ジャクソン・スティーブンス – が、既存のゲームをUnityのネットワーキングツールを使ってマルチプレイヤー体験に変換する過程を追っていきます。
マルチプレイヤーシリーズの紹介
本記事は、2024年8月中に毎週配信される一連のシリーズの第1回目です。目的は、昨夏に開発されたゲームを、マルチプレイヤー体験に変換することです。スピーカーは、これが技術的に非常に困難なプロセスになると認識しており、聴衆とともにこの課題に取り組んでいきます。
ネットワーキングアーキテクチャ
チームはクライアントホスト型のピアツーピアネットワーキングアプローチを採用します。セッションに最初に参加したプレイヤーがホストとなります。このアーキテクチャの長所短所について議論し、パワフルでない端末のクライアントでのパフォーマンスの課題にも言及しています。Unityのリレーサービスを使ってネットワーク接続を実現することにも触れています。
ネットワークマネージャーとUIの設定
チームはネットワークマネージャーのゲームオブジェクトを作成し、Unityトランスポートの使用を設定します。また、ホスト、サーバー、クライアントを起動するボタンを備えたネットワークUIキャンバスも作成します。ゲームオブジェクトの同期には、NetworkObjectとNetworkRigidBodyコンポーネントの重要性について説明しています。
プレイヤーキャラクターのネットワーキング
チームはプレイヤーキャラクターのプレファブをNetworkObjectに変換し、必要なNetworkTransformコンポーネントを追加します。既存の移動スクリプトに問題があり、ネットワーキングシステムに対応するよう、プレイヤーコントローラーを書き換えることにしました。ホストとクライアントのインスタンスを示し、位置と回転の同期を実演しています。
次のステップと今後の計画
次週は、ネットワーキングシステムに対応するようプレイヤーコントローラーを書き換え、NetworkVariablesを使ってUIの情報を同期する準備をする予定です。アニメーションの同期も今後の課題として検討しています。聴衆に対し、Unity MultiplayerのDiscordサーバーや「Intro to Net Code for Game Objects」コースなどのツールやリソースの活用を推奨しています。
まとめ
既存のゲームをマルチプレイヤー体験に変換するのは複雑で困難な課題ですが、適切なツールとリソースがあれば、その取り組みは価値あるものになります。本記事では、チームの取り組みの第一歩を追跡し、今後の展開に期待を寄せています。
ポイント:
- これは週間マルチプレイヤー変換シリーズの第1回目
- チームはクライアントホスト型のピアツーピアネットワーキングアプローチを使用
- ネットワークマネージャーとUIを設定してマルチプレイヤー機能を実現
- プレイヤーキャラクターはNetworkObjectに変換されたが、プレイヤーコントローラーのさらなる改善が必要
- 今後の計画にはUIの情報とアニメーションの同期が含まれる