テラシュールブログ

旧テラシュールウェアブログUnity記事。主にUnityのTipsやAR・VR、ニコニコ動画についてのメモを残します。

【Unity】Tanksデモのインターネット対戦対応版「TANKS! Networking Demo」で”遊ぶ”方法

AssetStoreにある「Tanks!」のネットワーク(uNET)対応版、TANKS! Networking Demoを起動し、対戦を行う方法について紹介します。

f:id:tsubaki_t1:20151019214507p:plain

http://u3d.as/jH7

目次

TANKS! Networking Demo

今回遊ぶ「Tanks」のデモは、二人対戦のゲームです。お互いに戦車を動かし大砲から砲撃し、先に相手のHPを0にした方が勝ちとなります。

f:id:tsubaki_t1:20151016221044p:plain

まあ、つまり以前紹介したアレです。

tsubakit1.hateblo.jp

今回のTANKS! Networking Demoはキーボードを左右に分けていたTanksと違い、ネットワークごしに対戦を行うゲームです。

またTanksと違い、二人以上のプレイヤーの参戦も可能です。

f:id:tsubaki_t1:20151019220111p:plain

(LobbySceneシーンを)起動すると、ロビー画面が表示されます。ここで最初のプレイヤーは「部屋を作る」もしくは「ホストになる」事を選択します。

f:id:tsubaki_t1:20151019214850p:plain

この画面では戦車の色や名前を設定します。

部屋に参加者が集合した後、全員がJoinを選択(Readyに変わる)するとゲームがスタートします。

f:id:tsubaki_t1:20151019215332p:plain

操作は「WSAD」か「上下左右キー」で移動、スペースで砲撃です。砲撃の距離はスペースを押した時間に依存します。
(距離というか角度)

f:id:tsubaki_t1:20151019215524p:plain

ローカル対戦

まずはローカルで対戦する方法です。

ローカル対戦を始めるにはまずホストが必要です。ホストとなるPCは「PLAYER AND HOST(プレイヤー兼ホストとして参戦)」もしくは「DEDICATED SERVER(サーバーとして従事)」を選択します。

その際、ホストのIPアドレスを取得しておくと良さそうです。場合によってはファイアウォールも解除しておきます。

127.0.0.1は自分自身のIPアドレスです。

f:id:tsubaki_t1:20151019220341p:plain

次にクライアントとなるプレイヤーを起動します。以前紹介したエディタを複数開く方法でも良いですし、単純にゲームをビルドして起動しても良いです。

tsubakit1.hateblo.jp

とにかく起動したら、先ほどホスト/サーバーを起動したデバイスのIPアドレスを「JOIN A GAME」の下に記入し「JOIN」を選択します。

自分自身に接続する場合は127.0.0.1を入力します。

f:id:tsubaki_t1:20151019220841p:plain

あとはロビーに参加者が続々と追加されます。全員Readyに設定するとゲームスタートです。ヒャッハー

グローバルな対戦

次にインターネット越しのグローバルな対戦を行います。

この設定の場合、同一のネットワーク空間内にいないプレイヤーとも対戦する事が可能です。ただしネットワーク速度やPINGがローカル戦と比較して厳しいです。

 

インターネット越しで対戦する場合、UnityのuNETがサーバーを用意します。なので、まずはuNETにサービスを登録します。

雲マークをクリックしてサービスを表示します。エディタにサインインしていない場合はサインインが必要です。

f:id:tsubaki_t1:20151019221927j:plain

まずはプロジェクトをUnityサービスに接続します。

New Linkを選択し、Createを選択Multi Playerを選択しマルチプレイヤーのサービスに追加します。

f:id:tsubaki_t1:20151019222315j:plain

f:id:tsubaki_t1:20151019222445j:plain

f:id:tsubaki_t1:20151019224546j:plain

あとは「Go to dashboad」を選択しダッシュボード(ブラウザ)を起動し、Max Player Countに最大接続数を入力して「SAVE」です。

f:id:tsubaki_t1:20151019224723j:plain

f:id:tsubaki_t1:20151019224925j:plain

 

これで準備が整ったので、今度はゲームをプレイします。

ゲームへの参加の流れとしては、ホストとなるプレイヤーが「部屋を作成」し、他のプレイヤーが「参加」する流れです。

まずは部屋を作ります。
「Create A GAME」の下に部屋の名前を設定し「CREATE」をクリックします。

f:id:tsubaki_t1:20151019225207j:plain

次に参加するプレイヤーは「List SERVERS」を選択し部屋の一覧を表示します。部屋があれば一覧を表示されるので、JOINを選択します

f:id:tsubaki_t1:20151019225639p:plainf:id:tsubaki_t1:20151019225607p:plain

なお、部屋が無かった場合はNO SERVERS FOUNDと表示されます。

この「部屋が無かった」場合で良く起こりそうなのが、サービス接続前に(もしくは別のIDとしてつなげてる状態で)ビルドした場合です。その場合、異なるサービスへ接続しているので「部屋があるけど無かった」となります。

f:id:tsubaki_t1:20151019225431j:plain

あとはローカル接続と同じように全員JOINからREADYへ変更して決闘<デュエル>開始<スタート>です。

ちなみにデモ自体はローカルレベルの通信を前提にしているのか、超カクカクです。もう少し真面目に作っても良いんじゃよ?