chronote

ゲーム創作活動の備忘録、日々の雑記など。

制作進捗9 ~通信対戦の検討~

 

今回は、UNET について追いかけているうちに、それほど情報が出てこなくて、

あらためて他の通信手段を検討したらそちらの方が都合がよかった、

という備忘録です。。

 

 

UnityNetwork - MasterServer

まずは Unity オリジナルの通信機能をおさらい。


ここでいう MasterServer というのは、

Client/Server 通信における、マッチング用のロビーのことです。

Server 役となるホスト端末はこのロビーに接続し、部屋を作ります。

クライアント端末は、ロビー内の空き部屋を検索し、

その部屋のホストである Server に接続します。


Unity がデフォルトで用意しているロビー接続先はテスト用途に使えます。

(製品版で使ってはいけないのかは不明)

(テストでどの程度の負荷に耐えられるのか、なんてスペックも不明)

アドレス指定により自分で用意したサーバが使えるので、

最終的にはこちらの方法を利用することになりますかね。

・・・つまり、Unity の Network 機能をそのまま使うとなると、

自前でサーバを立てる必要があるため、当然ですが費用と手間がかかるわけですね。

参考

 

 

UNET

日本語の文献が無くて正確な意図がわかりませんが、

旧 UnityNetwork をラッピングして使いやすくしたもの?


登場経緯も覚えていませんが、ホスティング需要がたくさんあるし、

サービスとして内包したら会社の柱になるんじゃ?という空気なのかなと。

実際、オフラインゲームでできることが限られていたり、

チープなゲームでも、対戦できれば意外と熱かったり。

オンライン要素導入の壁が低くなることは良いことです。


6月の Unity5.1 リリースで公開予定(現在β中)ということで、期待は膨らむ一方、

使い方の詳細がわからず、時間が過ぎていく・・・

一応、ドキュメントは Pro βフォーラムにて公開されています。

forum.unity3d.com

 

ドキュメント内にサンプルの項目がいくつかあるので、

それが公開されれば勢いよく実装例が出てきそうな気がします。

しかし今回は時間の都合で UNET 対応を見送り、

PhotonUnityNetwork(以下PUN)を採用することにしました。

(6月にはゲームが完成していないといけない・・・!)


といっても、Unity5.x で旧Network 機能を削除する予定、と書いてあるので、

いずれは 通信系アセットは、仕様変更をせざるを得ないことになるでしょう。

(例えば、新しい iOS に対応するには Unity5.x ビルドが必須で、

 そのバージョンでは UNET しか使えない、といった状況が今後あり得るのでは?)

 

 

Photon Unity Network(PUN)

今となっては採用事例が多く、有名なこちら。

 

自前サーバーを用意しなくて済み、自前実装すべき仕組みも内包されているので、

(技術研究が目的でなければ)使わない手はないサービスです。

個人用途なら雰囲気的に

  1. 導入テストはフリー版で始める
  2. サービス開始前に「15500円で買い切り」購入(PUN+)
  3. 運用中、サーバアクセスが一定数を超えたら月額15300円」プランにのりかえ

となります。


とりあえず買い切りで気楽に初められるのはいいですね。

3段階目になった時点で、運用経費を捻出する仕組みが必須となります。

このアプリはアクセス数これくらいで、こんな風にスケールアップした、

といった具体例があると、さらにいいですね~。

スライドシェアなんかに紹介事例が多々ありますので、

そちらもチェックすると参考になります。

 

参考

doc.exitgames.com

 

 

まとめ

 

  1. 今すぐオンラインゲーム作りたいなら、迷わず PUN オススメ。
  2. 6月の Unity5.1、9月の Unity5.2(予定)まで待てるなら、UNET も視野に。
  3. 全部自作しないと気がすまない!という方は、UnityNetwork+自前サーバ。

 

自分の場合、手が空いてる期限が6月中旬までなので、ちょっと待てませんでした。

ようやく方針が決まったので、今後は PUN を使った通信対戦を、実装していく予定です。