【Unity】大学生でも無料でオンライン通信するゲームが作れるアセット『PUN2』を紹介 by 大学生ゲーム制作者
おはようございます。
中2の頃はWindowsのメモ帳でJavaScriptを書いていた大学生ゲーム制作者の村人Uです。
あれでブロック崩しが作れたのは、シンプルに驚きです。
さて。
先日書いた、僕らの開発環境についての記事の反響が良かったので、今日は記事で触れたアセットの1つ『PUN2』(Photon Unity Networking 2) に焦点を絞って紹介してみようと思います。
ちなみにアセットっていうのは、Unityというゲームを作る事ができる机の上で使う、工作道具のようなもので、
今回の場合Unityには本来オンラインゲームを作る機能は無いけれど、PUN2を使えば出来る用になるよって感じです。(実は最近はUnityだけでも出来るらしいけどまだ不安定)
PUN2を使うと何が出来るのか
PUN2を使えば↓のような事が出来るようになります。
- ネットワーク通信をして、キャラクターの位置やHP、スキルの発動タイミング、オブジェクトの同期などが出来る
- リアルタイムで全国の人と一緒に遊ぶことができる。
- マッチング機能を使うことが出来る(ランクを考慮したマッチングや、フレンドとのマッチング、ランダムマッチングなどが可能)
- チャットができる
- モンストや白猫プロジェクト、シャドウバースのようなゲームを作る事が出来る
ざっくり言うと、オンラインで通信をしなきゃいけないゲームは大抵PUN2で作れます。
しかし、1つのルーム(1回のゲームに必要な人数)が数人規模のものしか出来ません。(出来なくは無いかもしれませんが、やめた方が良いと思います)
なので、PUN2では↓のような事は出来ません。
- 荒野行動のような同時に100人規模の接続は出来ない
- 同様に、メイプルストーリーやラグナロクオンライン、黒い砂漠のようないわゆるオンラインゲームも作れない
このようなゲームを作りたい場合、サーバーというものを立てる必要があります。
使うのは難しいのか
PUN2は通信を行う分、普段のプログラミングに比べると考える事が増えるので、初心者の方には少し難しいと思います。
ですが、↑でも少し触れたように、普通、オンラインのゲームを作ろうと思った場合、サーバーを立ててサーバー側の仕組みを作って、Unityと通信しないといけません。
こういう勉強をして、実際に使えるようにするのに比べればPUN2は、はるかに簡単だと思います。
分かる人のために具体的な話をすると、PUN2はP2Pのようなシステムで出来ています。(P2Pではない)
ユーザー自身がホストとクライアントに分かれて処理を行い、両者の処理を同じスクリプト内で書くことが多いです。
サーバー側のスクリプトは一切書かず、既にローカルだけで動いているゲームをオンライン化する場合には、そのスクリプトを多少書き換えるだけで様々な同期処理を行うことが出来ます。
使ってみたい人へ
↓の記事はめちゃくちゃ丁寧に書いてくれていて、分かりやすく初心者でもすぐにPUN2が始められます!(丸投げ)
↓は公式のチュートリアルですが、かなり詳しく書いてあるので困ったときはこちらもおすすめです。(公式なので絶対正しいはず)
また、PUN2はPUNの後継で、ほぼ同じ事が出来るのですが、一部コードの書き方が変わっている部分があります。
分からない事をGoogleで検索する事があると思いますが、この時にPUNについての情報を見てしまうとうまく動かない可能性が高いです。
PUN2に移行されたのは2018年8月25日なので、それ以前に書かれた記事は既に100%古いので気をつけてください!(マジでハマります)
それ以降でもPUN2についての記事なのかPUNについての記事なのかは確認した方が良いと思います。
ただ、プログラミングに慣れている人であれば、↓のPUNの移行情報を見て頭の中で置き換えて読めば、古い記事も結構有用だったりします。
今日は無料でオンラインのゲームを作る事が出来るアセットの紹介でした。
趣味や個人開発でやっている人にとって、オンラインのゲームを作るというのは大変かもしれませんが、やりたいことがあるなら是非挑戦してみてください。
無料で簡単なので、まずPUN2を使ってみるのはおすすめです。
些細ながら、僕はあなたの挑戦を応援しています。
PUN2は↓のリンクから導入できます。