Unity1WeekGameJam お題「逆」
お久しぶりです。
皆さん元気ですか?自分はとりあえず元気です。
前回の投稿からなんやかんやあり、コロナウィルスの影響でリモートワークになってから、少しずつ自分の時間が出来てきたので、自分のペースでまた書いていきたいと思います。
UnityRoomさん( https://unityroom.com/ )で開催されているゲーム制作イベント Unity1WeekGameJam の「お題:逆(2月24日~3月1日)」、急遽GW前に開催となった「お題:密(4月27日~5月3日)」にそれぞれゲームを投稿していました。
今回は、「お題:逆」に投稿したゲームについて触れたいと思います。
1.どういうゲームを作ったのか
お題が"逆"なので、これまで主に作っていたシューティングゲーム(以下、STG)のルールを逆にしたものを作ろうと考えました。
基本的なSTGのルールは以下の通り。
a. 敵の攻撃を避けつつ
b. 敵を倒し
c. より多くの点数を手に入れる
これらの逆は何になるのか?以下のように考えてみました。
a'. 敵の攻撃に当たりに行く
b'. 敵を倒さない
c'. 出来る限り点数を手に入れないようにする
このうち、 b'. と c'. は組み合わせの相性がよさそう、 a'. はSTGらしさを残すために変えない方がよさそう、ということで最終的には以下のようになりました。
a''. 敵の攻撃を避けつつ
b''. 出来るだけ敵を倒さずに
c''. 出来る限り点数を手に入れないようにする
2.工夫したところ
ここまで考えて、ゲームとして面白くなるかイメージしてみたのですが、ただひたすら逃げまくるだけのSTGってあまり面白くなさそうでした。
もう少しゲーム的な要素が欲しいと考えたところ、目標が「c''. 出来る限り点数を手に入れないようにする」なので、点数が加算される要素を追加すると良いのでは?と思い、以下の仕様を追加しました。
d''. 移動するごとに点数を加算する
e''. 制限時間を設けて、やられたときの残り時間を点数として加算する
これで、ただ避けるのではなく「極力動かず倒さず、制限時間いっぱいまで攻撃を避け続ける」というゲームの仕様が出来上がりました。
3.移動距離を点数に換算する
今回新しい取り組みとして、「移動距離を点数に換算する」という仕組みを作りました。
と言っても「移動した距離に応じて点数を加算する」といった難しいことはしておらず、単純に「移動中は常に一定の点数を加算する」という方法で対応しました。
その他の仕様は過去に作成した作品の流用、ランキングを「点数の多い順」から「点数の少ない順」に変えるだけで出来ました。
4.公開後の評価で気付かされたこと
ゲーム自体は結構良い評価をいただきました。その中で特に印象に残ったのが、「最小限の動きで避ける行為が、自分がSTGが上手いと思わせてくれる」というものでした。確かに、弾幕系STGでは雨あられの敵の攻撃の中を避けていくことが求められるのですが、それに近い操作感を得られやすい作りになっていたのかと気付かされました。
参加するたびに新しい発見を得られて、毎回勉強させられます。
次の「お題:密」については、次の投稿で書きたいと思います。
今回はここまで。読んでいただき、ありがとうございます。
【おまけ】
自分が投降した作品:InfiniteBullet
( https://unityroom.com/games/infinitebullet_v100 )
作品のソースコード
( https://github.com/acmz/InfiniteBullet )