メイクング メイキング。
今回も一週間ゲームジャム(#unity1week )に参加してみました。
作ったゲームはこんな感じです。
コロコロボンボン | ゲーム投稿サイト unityroom
一週間ゲームジャム
一週間ゲームジャムは、一週間の空いた時間を使用してゲームを作るイベントです。 詳細についてはこちら。
tsubakit1.hateblo.jp
なんと登録された作品は前作の倍の134…いや、136…、と思いきや140…と思ったら148…
で、先程確認したら151作品 152作品 でした。実際凄い。
下のURLから全て無料でプレイ出来る他、幾つかのゲームのメイキングも見れます。
Unity 1週間ゲームジャム | ゲーム投稿サイト unityroom
一時はTwitter のハッシュタグ がトレンド入りしたという噂もあるので、更に凄い。
さて、何を作ろうか
さて、テーマが転がるな訳ですが、これは中々に難しい問題です。
とりあえず思い浮かぶのは塊魂 的な奴や、IQ、XI等のゲームですが、何というかビビっと来ません。
転がるではなく回転なら色々思いついたんですが、ぐぬぬ
VIDEO www.youtube.com
VIDEO www.youtube.com
みんな凄い
そうこうしている間に面白そうなゲームが出揃い始め…
い、イカ ン完全に出遅れた感…!!
色々考えるがしっくりこない
作るイメージが…降りてこない…!
色々と考えてはみますが、ビビっと来る物が来ません。
XIっぽい動きでステルスゲーム を作る…?
CUBEで動かすと動きをシームレスじゃなくてターンベースに変更できそうだから、それなりに面白いんじゃないか…?
「超巨大な転がる戦車」を作って迫りくるインベーダーを迎撃してもらう?
面白そうではあるけど、イメージしたゲームは操作が複雑すぎ。
ラグドール を付けて吹っ飛ばす…?
ゲーム性は兎も角、ラグドール で予測不可能な動きを見るのは面白い…?
むむむ…アイディアが、アイディアが降りてこない…!
仕方ない、とっておきの策を発動する。
いくぞ、力押しだ!
案ずるより産むが易し作戦
とりあえず「ラグドール を付けてふっ飛ばして坂道を転げ落ちる」案を作って、それから考えてみます。
ラグドール 付けたぞ、転がれー!
それなりに転がってくれますが、何か足りません。
そうだ、数を増やそう!
んんー…思いの外面白くありません。
数が足りない?WebGL ではPhysX のマルチスレッドとSIMD による最適化が効きにくかったハズなので、ラグドール を増やすのは出来ればやりたくない…
このネタは駄目かな…?いや、何か、何か良いアイディアが…
ジャンプ…コロコロ…
ジャンプ…コロコロ…
ジャンプ…コロコロ…ボンボン
ジャンプ…コロコロ…ボンボン!!!
そうだ、転がってきた奴を爆発させよう。
作ってみよう
早速作ってみます。
その綺麗な球をふっ飛ばしてやる
とりあえずゲーム内容は決まったので、次に方向性を考えます。
撃つという考えで行くと、二つの方向性が考えられます。
前者はスナイパー的な感じで、狙い撃つぜ…という感じです。成功した時の演出が重要になりそうです。後者はガトリングガン で弾をばら撒く感じ。
元々は前者で、倒した対象が爆発 して周囲の敵を巻き込む …という感じを考えてましたが、レーザーで直線状を同時キルするほうが好みだったので、そちらを採用。
プチプチやクッキー割りのようにクリックするだけで面白い を目指します。
リスキルは基本…は避けたい
ここで問題になったのが、敵が生成されるポイントを撃ちまくるのが最強 という問題です。基本的にこのゲームは上から的が転がってくるので、上を撃ち続けていれば楽が出来ます。
確かに楽は楽なんですが、同時キル数が面白いゲーム を目指しているので、それを体感出来ないプレイは極力排除したいです。
対策に動く障害物や殺してはいけない的等も考えましたが、色々考えて撃たなければいけなくなるので、クリック時の爽快感が減りそう です。
で、色々と考えましたが、とりあえず画面外で殺されなければ良いや という、割と微妙な対応にしました。上に壁を置いて対応終了です。
死んだらコインをばら撒け演出
このゲームは前作と違い「キル」をいかにして気持ちよくするか…という事が重要になります。なので、殺した時に色々とジャジャラする事だけを考えます。
基本的に撃てば当たるので、特に気にせず画面を盛大に汚します。
ここでは二種類のパーティクルを使用しています。
一つ目は手前のコイン、二つ目は倒した敵と同じ色の弾です。飛ばす方向はレーザーの向きを元に決めてましたが、面倒なので一律右に飛ばすようにしました。
狙う先を汚しても良いので、コインはコインと分かるように的の手前に配置します。ただ、そのままだとキャラク ターの上にかぶさりすぎるので、実はコインの当たり判定は階段の少し右にあります。
またコインの動きはパーティクルのCollisionで動いています。Spriteを大量に配置するよりも安いですし、何よりUnity 5.6でかなり高速化された機能だったとと思うのでとりあえず使ってみようかな的な。
ちなみにコインのパーティクルは、一つのParticleSystemに場所指定してEmitで生成しています。この方がメモリ的にもCPU的にも優しいです。
レンダリング 負荷的には(Simulation SpaceがWorldになってなければ)Bounce が予測出来てカリングが聞くObjectPoolingの方が良さそうですが、今回はカリングなにそれ美味しいの状態なのでEmitでやったほうが圧倒的に安いです。
それと、同時キル数に応じてコインの正整数を動的に設定できるというメリットもあります。これは、Twitter の感想で気づいて設定したんですが、かなり良いです。
実はそれ以外は特に最適化は殆どしていません。最低限の構造でオブジェクト生成コストはかなり安いので、それで何とかなってます。GC が偶に来ますが、まぁゲームジャムです。
スコアを増えたら数値が増えるよ!をちゃんとアピール
数字が増える事は非常に重要です。今回のゲームではユーザーにとってゲームが進行した事を示す物がスコアしか無い ので、スコアはちゃんと強調します。
やってる事はログと、変化が合ったときに一気に変化しないという点です。あと拡縮とか。
上の数値は殆ど動きっぱなしなので、実は別Canvas です。
下のログは、レイアウト構造を使用しています。これは良いスコアが出た時に文字を拡大(強調)表示してもレイアウトを破綻させない 為です。
ただ、この大きな文字を表現するためにリッチテキストを使用したんですが、これのせいでUI更新にかなりの負荷が確認されました。 というか、このゲームでカクつく原因はコレでした。
まぁ、ゲームジャムですし、モバイルでもそれなりにフレーム出てるので良しとします。クリック時に負荷が上がる程度。
色々あって完成
その後も、まぁ色々あって完成です。
ゲームは下のURLからプレイ出来ます。WebGL なので、Firefox 推奨、Chrome は動きます。
コロコロボンボン | ゲーム投稿サイト unityroom
良ければ評価や感想を残してもらえると嬉しいです。*1
一応Touch対応したので、モバイル(Firefox x Android )でも動くには動きます。
そして、イベントが終わった後にアイディアが出るっていうね。
まぁ、ロスタイムで結構みんなゲームを出してますし…ちょっと作るくらいは(ゴクリ
宣伝
せっかくなのでntny氏と一緒に #unity1week に上がってるゲームをプレイする配信します。どのゲームをプレイするかは、その場のノリで。
関連
tsubakit1.hateblo.jp
tsubakit1.hateblo.jp