AssetStoreにある「Tanks!」のネットワーク(uNET)対応版、TANKS! Networking Demoを起動し、対戦を行う方法について紹介します。
目次
TANKS! Networking Demo
今回遊ぶ「Tanks」のデモは、二人対戦のゲームです。お互いに戦車を動かし大砲から砲撃し、先に相手のHPを0にした方が勝ちとなります。
まあ、つまり以前紹介したアレです。
今回のTANKS! Networking Demoはキーボードを左右に分けていたTanksと違い、ネットワークごしに対戦を行うゲームです。
またTanksと違い、二人以上のプレイヤーの参戦も可能です。
(LobbySceneシーンを)起動すると、ロビー画面が表示されます。ここで最初のプレイヤーは「部屋を作る」もしくは「ホストになる」事を選択します。
この画面では戦車の色や名前を設定します。
部屋に参加者が集合した後、全員がJoinを選択(Readyに変わる)するとゲームがスタートします。
操作は「WSAD」か「上下左右キー」で移動、スペースで砲撃です。砲撃の距離はスペースを押した時間に依存します。
(距離というか角度)
ローカル対戦
まずはローカルで対戦する方法です。
ローカル対戦を始めるにはまずホストが必要です。ホストとなるPCは「PLAYER AND HOST(プレイヤー兼ホストとして参戦)」もしくは「DEDICATED SERVER(サーバーとして従事)」を選択します。
その際、ホストのIPアドレスを取得しておくと良さそうです。場合によってはファイアウォールも解除しておきます。
次にクライアントとなるプレイヤーを起動します。以前紹介したエディタを複数開く方法でも良いですし、単純にゲームをビルドして起動しても良いです。
とにかく起動したら、先ほどホスト/サーバーを起動したデバイスのIPアドレスを「JOIN A GAME」の下に記入し「JOIN」を選択します。
自分自身に接続する場合は127.0.0.1を入力します。
あとはロビーに参加者が続々と追加されます。全員Readyに設定するとゲームスタートです。ヒャッハー
グローバルな対戦
次にインターネット越しのグローバルな対戦を行います。
この設定の場合、同一のネットワーク空間内にいないプレイヤーとも対戦する事が可能です。ただしネットワーク速度やPINGがローカル戦と比較して厳しいです。
インターネット越しで対戦する場合、UnityのuNETがサーバーを用意します。なので、まずはuNETにサービスを登録します。
雲マークをクリックしてサービスを表示します。エディタにサインインしていない場合はサインインが必要です。
まずはプロジェクトをUnityサービスに接続します。
New Linkを選択し、Createを選択、Multi Playerを選択しマルチプレイヤーのサービスに追加します。
あとは「Go to dashboad」を選択しダッシュボード(ブラウザ)を起動し、Max Player Countに最大接続数を入力して「SAVE」です。
これで準備が整ったので、今度はゲームをプレイします。
ゲームへの参加の流れとしては、ホストとなるプレイヤーが「部屋を作成」し、他のプレイヤーが「参加」する流れです。
まずは部屋を作ります。
「Create A GAME」の下に部屋の名前を設定し「CREATE」をクリックします。
次に参加するプレイヤーは「List SERVERS」を選択し部屋の一覧を表示します。部屋があれば一覧を表示されるので、JOINを選択します。
なお、部屋が無かった場合はNO SERVERS FOUNDと表示されます。
この「部屋が無かった」場合で良く起こりそうなのが、サービス接続前に(もしくは別のIDとしてつなげてる状態で)ビルドした場合です。その場合、異なるサービスへ接続しているので「部屋があるけど無かった」となります。
あとはローカル接続と同じように全員JOINからREADYへ変更して決闘<デュエル>開始<スタート>です。
ちなみにデモ自体はローカルレベルの通信を前提にしているのか、超カクカクです。もう少し真面目に作っても良いんじゃよ?