Unity~対戦ゲーム開発の知識編~
Unityで対戦ゲームを作る
Unityというゲームエンジンを知っていますでしょうか?
Unityはゲームエンジンの中でも一番使用されていると言われ、2Dゲーム、3Dゲーム開発することが可能です。
ここでは、Unity、Unityにて対戦、協力などのゲーム開発に関するものについて説明します。
Unityとは?
Unityはゲームを開発するためによく使用する機能を簡単に使えるようにまとめたものであるゲームエンジンの1つです。
UnityはiPhone、Android、Mac、Windows、PlayStation4などの様々なプラットフォームで開発が可能となります。
プログラミング言語はC#を使用します。
2Dゲーム、3Dゲームを作成でき、オブジェクトなどを生成する際、コード上から呼び出す必要がなくマウス操作で直感的にオブジェクトを配置することが可能です。
プログラミング能力は必要ですが、他のゲームエンジンと比べると安易にゲーム開発を行うことが出来ます。
Unityにはアセットストアがあり、3Dモデルなどのゲームデータを有償のものもありますが無料で手に入れることができます。
Unityでつくれるゲームジャンル
Unityは様々なゲームジャンル、対戦ゲームを作成することが可能です
対戦ゲームだと格闘ゲーム、レーシングゲーム、シューティングゲーム、アクションゲーム、FPS、また、RPGなど様々なゲームジャンルでゲームを開発することが出来ます。
また、ゲームジャンルに合わせたオンライン対戦、協力ゲーム、オフライン対戦、協力ゲームも作成することができます。
オンライン対戦、協力ゲーム
現在、ゲームはオンラインで他のユーザーとリアルタイムで協力や対戦といったオンラインマルチプレイ出来るものが人気になっています。
協力や対戦といったオンラインマルチプレイのゲームを作成する上でユーザーマッチング、チャット、ボイスチャット、同期通信などの機能が必要となります。
その機能を実装する上で便利なものがあり紹介します。
PUN2(Photon Unity Network2)
PUN2(Photon Unity Network2)はPhotonをUnityで利用するためのパッケージです。
PhotonとはExitGames社が開発しており、マルチプレイを簡単に実現するためのネットワークエンジンです。
PUN2(Photon Unity Network2)は無料プランで20人の同時接続、有償プランでは100人同時接続可能と言われています。
PUN2(Photon Unity Network2)は使用している人が多く実装例を調べると多くでてきます。
Monobit Unity Networking(MUN)
PUN2に使用感が似ており、アセット内に含まれているサンプルや公式のドキュメントを見ながら開発を行うことができます。
Strix Unity SDK
Strix Unity SDKはオンラインゲーム開発に必要な同期機能をコンポーネントやAPIで提供しています。
通信処理を意識することなく、オンラインゲームの開発に役立つものとなっています。
オフライン対戦、協力ゲーム
Unityではオフライン対戦ゲーム、協力ゲームを作成することができます。
ポーカーや大富豪といったCPUと対戦できるカードゲーム、ボードゲームといった様々なジャンルのゲームを作成することができます。
ゲーム内のキャラクターやオブジェクトを動かす際にはキーボード、マウスを使用して動かすことはもちろん、ゲームパッドやPS3のコントローラーなどで動かすことが出来るようにすることができます。
オフライン対戦ゲームのCPUはプレイヤーではないので、どういう動きを行うのかをプログラミングしなければいけません。
例えば、迷路内で敵を倒すゲームを作成するとします。
これには迷路内を適当な位置に向かって動くプログラム、プレイヤーに近づくように動くプログラム、プレイヤーに向かって攻撃を行うプログラム、攻撃を受けたら消えるようにするプログラムなどが必要だったりします。
これらはC#を使用しプログラミングすることが可能であり、Unityでも開発することができます。
まとめ
Unityについて簡単ですが説明しました。
現在ゲームはリアルタイムで協力や対戦といったオンラインマルチプレイ出来るものが流行しています。
0からサーバなどを構築しオンラインマルチプレイのゲームを作るのは大変で、時間などがとても多くかかってしまいます。
ですので、はじめてオンラインゲームを作成したい場合は紹介したPUN2など使用し作ってはいかがでしょうか?
また、対戦ゲームには敵がどのように動くかをプログラミングしなければならない時もあり、プログラミングスキルが必要な場合があります。
Unityでは様々なゲームを作ることができますが、複雑なゲームを作るには様々なスキルや知識が必要となります。