■ [Unity][Left 4 Ships]Unityで一週間で全方位シューティングを作ってみた(1)
最近よく話題になっているUnityっていったいどんなものなんだろう?と気になったので、今回は一週間で完成形まで持っていけそうなゲームを一本作ってみた。
リンク先に、ブラウザ上でそのまま動くものが置いてあります。
http://nao838861.sakura.ne.jp/UnityTest/UnityTestWeb.html
今回作ってみたのは、過去の自分と協力しながら戦う全方位シューティングゲーム。
死亡後に前回の自分のゴーストが現れ、最大4体までの過去の自分と協力しながら戦っていく。宝石を連続で取ると高得点になり、一定点数ごとにレベルアップして、攻撃を強化できる。
Unityでのゲーム制作は、基本的に空間にオブジェクトを配置して、そのオブジェクトにスクリプトを割り当てて動きを記述しながら組み上げていくような作業の繰り返しで作っていくことになる。
なんとなく.NetやCocoaなどのGUI環境のプログラミングに近い感覚で、Unreal Engineなどと比べると、根っこはすごくシンプルなので比較的とっつきやすい印象。
当たり判定は物理エンジンがそのままやってくれるし、丸影を描いたりパーティクルを出したり音を鳴らしたり、などの自前で用意するのがそれなりに面倒な要素も、あらかじめエンジンに組み込まれているので気軽に使える。
描画はモデルを配置すればシステムが勝手にやってくれるし、敵のアルゴリズムも物理計算にちょっと手を加えるだけでそれっぽく動いてくれた。
面倒な部分はほとんどUnityのエンジンがやってくれるので、大半の時間をゲームのロジックやバランス調整に費やすことができて、とても効率よくゲーム制作が進む。
パーティクルエンジンやサウンド、HUDを表示するための仕組みなどもあらかじめ用意されているので、ある程度ゲームが形になってくれば、かなりお手軽にいろいろな演出も強化できる。
素材もAsset Storeから落としてくれば手間をかけずに用意できるし、追加のコンポーネント なども簡単に組み込んで拡張することもできる。
ゲームに必要なものを適当に見繕って配置して、短いスクリプトを書くだけでもわりと簡単にゲームっぽい枠組みが作れるようになっていて、触っていてほんとうによくできているな、と感じた。
今後、Asset Storeや各種追加コンポーネントなどが充実してくれば、部品を組み合わせるだけである程度ゲームが組み立てられるような状態になっていくんじゃないかと思う。
実際にゼロからでも一週間でそれなりに形になるところまで作ることができたので、生産性はすごく高い。今回みたいなアイデアの検証のようなゲームであれば、自前のエンジンを使うよりもずっと手軽で効率的に作れそう。
結果としてスコアアタックができるようなゲームになったので、Twitterにスコアを投稿できるような仕組みを入れられないかと思って調べてみたのだけど、いいやり方が見つけられなかったのがちょっと残念。ランキングとかを作るのはどうしたらいいんだろう。