本日はUnity調査記事です。
Unityではマルチプラットフォームでゲームを開発することができます。 近年のゲームではオンライン対戦や通信など、ネットワークを使用して他者とのやり取りが行えるものが多いです。
Unityでは自身でサーバーを構築する方法やAzureやAWSなどを使用する方法、様々な実装方法があります。今回はその中の一つであるPhotonのチュートリアルを行います。
〇Photonとは?
一言で表すとUnityでのマルチユーザーアプリの実現のためのSDKとその仕組みを指します。
〇チュートリアル
オリジナルのチュートリアルは下記になります。
Photon Cloudによってマルチプレイヤーアプリの開発とPUN(Photon Unity Networking)を使用したアプリ開発を学びます。
〇準備・導入
①Unityで新規プロジェクトを作成します。
今回はUnity2019.3.9f1を使用しました。
②シーン名を[Launcher]にして、ヒエラルキーウィンドウから[Launcher]という名前の空オブジェクトを追加します。
③ウェブブラウザからPhotonのサイトにアクセスしダッシュボードを開きます。
④マイアプリからアプリケーションIDをコピーします。
アプリケーションを作成していない場合は新規で作成します。
③Unityに戻りAssetsStoreから[Pun2]と検索バーに入力します。
④[Pun2]のアセットを見つけ[Import]を行い自身のプロジェクトにPhotonのアセットを導入します。
⑤アセットが導入されるとウィザードが起動します。④でコピーしたIDを貼り付けます。
エンターキーを押すことでウィザードが閉じます。
以上で準備が完了しました。
〇PhotonCloud
photonCloudは上記の手順で使用したウィザードを含むマルチプラットフォームを簡単に開始するためのセットアップのことです。
PhotonクラウドはPhotonサーバーの実行されている数多くのマシンの集まりを指し、Exit Games社のメンテナンスを受け動いています。 プレイヤー人数を増やすこともできますが、無料プランの場合同時接続20人となっています。
上記手順で導入したPUN2(Photon Unity Networking)はPhoton Cloudを管理しています。
次の流れで処理が行われています。
①各アプリが「ネームサーバー」に接続する。
②クライアントが使用する情報をチェックする。
③マスターサーバーに転送する。
マスターサーバーとはリージョンサーバーのハブ(中継)です。
〇ルーム
ルームはphotonを使用して同期したユーザー同士がコミュニケーションや対戦といった相互通信を行うための環境を指します。
ルーム外では相互のやり取りを行うことができません。
Photon Cloudはルームベースのゲームを念頭に開発されています。
〇ロビー
ロビーはユーザーがルームに接続するまでのローカルのコンテナを指します。
実装次第でロビーから複数のルームの中から一つのルームを選択して入ることができます。
〇チュートリアルの流れ
①ロビーシーンの作成
②UIを使用しロビーを改善
③ゲームシーンの作成
④レベルのローディングの実装
⑤複数のユーザープレファブの作成
⑥カメラのプレイヤーへの追従
⑦ネットワーク機能の追加
⑧シーンの切り替えとプレイヤーの初期化
⑨プレイヤーユーザーインターフェース
それぞれ1記事で勉強していきます。