第22回Unity1週間ゲームジャム、お題「そろえる」に参加しました。
参加は六回目?です。たぶん。
『アラインファイブ』を公開しました!ジャンプして動き回って同じ色のブロックを五つ揃えるゲームです。第22回Unity1週間ゲームジャム、お題「そろえる」参加作品です。#unity1weekhttps://t.co/VhZGJR7ntR pic.twitter.com/wxRu76dzRH
— がむしゃら (@GMshara_) May 8, 2022
このゲームを作りました。振り返ります。
1日目
そもそも参加するかどうか決めていなかった。というか、わりと参加しない方向に傾いていた。前回参加したのは、unity1week投稿作品を遊ぶモチベーションを得るためだった。今回はそういうのなくてもちゃんと遊ぼうと思っていたわけで…
しかし「そろえる」かぁ。そういえば敵を揃えてレーザーで一掃するゲーム考えてたことあったなぁ。
アハハめっちゃつまんないやこのゲームww pic.twitter.com/QG9x4CEvbZ
— がむしゃら (@GMshara_) July 25, 2021
このネタをあらためて消化しようかなぁ。つらつらと考える。
しかし結局このネタは使わないことに。
そしてふとした拍子に、ゲームのイメージ映像が脳内に流れる。
- ループ部屋
- プレイヤーがブロックを踏んづけると重力反転
- ブロックを一列に揃えて消す
あーなんか面白そう。これ作ってみよう。
しかし、実装に苦戦。もともとイメージ映像を元に作ろうとしていて詳細を検討しておらず、さらに自分はプログラマーではない。二重苦。うぎゃー。
しばらく格闘してなんとか形にした──正確には細かい粗が無限にある状態──んだけど、これがまぁ当然のようにまったく面白くない。重力反転じゃなくてふつーにジャンプにしてみるか?これも当然のように面白くない。ダメそう。
あらためてこの思いつきを一言で表すなら、
- 「踏んづけてブロックを動かして揃えたら面白くね?」
だった。ふーむ……じゃあ……
- 「踏んづける以外に壁キックで横から動かす」
- 「さらに下から叩いて上に動かせるようにしてみたらどうだろうか?」
とノリで付け足してみる。再び実装をがんばる。
作ってみて、これでブロックをどうするのがいいだろうか?と考えた。この時点では完成版にある【連なったブロックをいっぺんに押す仕組み】が入っていなかったので、ブロックを重ねるような挙動になっていた。そのため、
- ブロックを一つに重ねていく
- ブロックを一列に並べる
のどっちがいいかなぁと考えるポイントが生まれていた。ちょっと考えたあと、これは後者の一列に並べる仕様にすることにした。だって「そろえる」だもん。「かさねる」じゃダメだよね。もともと思いつきで適当に作っているので、面白いかどうか──正確には目指しているゲームに適しているのはどんな仕様か?──を考えられる状態ではなく、あまり深く考えずにお題を遵守する仕様に舵を切った。
この時点では完成版とは違って、アクションパズル形式×ステージクリア型タイプのイメージだった。提示されるラインにブロックを並べてクリア、それを一定数繰り返してスコアを稼いで時間が来たら終了。この前に考えていたレーザーのゲームがそういうイメージだったので、このときはそのイメージに引っ張られていた。
このとき「ムズすぎるから二段ジャンプ欲しいな」とか考えていた──が、当然これも浅すぎる思考で、二段ジャンプていどでは難しさ|めんどくささは変わらない。本当に必要なのは無限ジャンプだった*1。
「明日のオレがなんとかしてくれるだろ」と放り投げて一日目終了。
2日目
とりあえずルールを成形しようと考えて二日目スタート。
明確な完成形がうすぼんやりとしか見えていないので、かなり無意味な寄り道をしていく。さらに、この時点でもまだ参加すると決めていないのでモチベも低い。ふつーに大乱闘*2を遊んだり、ツイッターフレンズ*3の配信を見たりしていた。
以下、この日の主な実装内容(メモを見ながら)
- 上下ループ+二段ジャンプ
- ブロックのランダム配置──各列に一個ずつ置く
- ブロックが揃ったら一体化して長いブロックになる仕組み*4
- 四角型に四つ密集したら一つの四角ブロックになる仕組み
- フィールドを5×5に決定
これらのうち、一番最後のフィールド5×5以外は完成版に残っていない。無駄な作業をして迷走しているのがよく分かる。
3日目
『Nuclear Throne』がめちゃくちゃ楽しい。難易度に慣れて完全に楽しんでいる。
仕様をなんとかまとめようと考える。ここで、
- ブロックを二色にする
- プレイヤーがループするときにブロックを補充
- ブロックが揃った時点で消滅
- 揃えるラインをゲーム側が指定するのではなく、自由に縦横組んでOK
といった完成版に残る仕組みを思いつき始める。
この辺りで、だいたい今の完成版に近いゲームをイメージしていた。とはいえ、この時点ではフィールドのサイズだとか、ブロックのより正確な挙動などは一切詰められていなかったし、想像もついていなかった。
このときの主な懸念点として、「ブロックの生成どうするの?」があった。ざっくりイメージでもここだけは手強そうな感触が既にあった。
- プレイヤーと重ならないように生成しないといけない
- でもプレイヤーは自由に動き回れちゃうよ?
- 生成→運良くなにもしなくても揃って消滅とかしちゃうよ?
- ランダムっつったってどうやるのよ
いろいろヤバそうなのがこのときから想像がついた。特に自分はプログラマーではないので、スマートに解決できる気がまったくしなかった。
しかし一方で、まだ
- 四つ固まると消滅
- 空中でジャンプボタンを押して重力を反転させる
- 消滅でコンボ倍率増加→一定時間消滅しなかったらコンボ倍率が戻る
といったどうでもいいことも考えていた。
そしてこの日はかなりの時間、大乱闘をやっていた。やりすぎて疲れた。
一応、なんとかブロックをランダムな位置に生成する仕組みを作って終了。
4日目
『Nuclear Throne』ハードモード解禁──3周目突入成功!やった~!
最初のエリアのボスが同時に4体出てきて笑っているうちに殺されてしまう。
以下、箇条書きでこの日起きたこと。
- 無限ジャンプがシンプルで分かりやすいことに気付く
- 赤ブロック青ブロック両方五個維持するような仕組みにする
- ↑にした結果「二色よりも一色のほうが面白くない?」と一色にする
- 連なったブロックいっぺんに押したい
- そうなると領域外で消滅にすれば実装できそう*5
ここでようやくブロックをいっぺんに押せる仕組みが登場。実装できるかどうか分からなかったのであまり深く考えていなかったが、やはりこれが必要そうなのを認識した。
5日目
実装しつつ、さらに仕様の詳細を詰めていく。
- 赤五つ消しで青が一個混ざっていく
- 青五つ消しで高得点→溜めたいけど邪魔!
この辺り、完成版に近づいていく。一方で、
- 揃えるとボーナス発生→利益増大していく
- 時間経過でボーナス消失して最初から
- 単発で出すとボーナス消失までの時間経過が一時的に止まる
といっためんどくさいわりに面白くない仕組みを考えていた。これはUIを作ってまで試して、めんどくさいことが判明してやめた。今思うと、ただでさえ【2Dプラットフォーマー×アクションパズル】の仕組みでちょっとめんどくさいのに、スコアシステムを複雑にするのはバカの極みである。
結局【ブロックを領域外に出してしまうと倍率低下】とシンプルにした。ここまで来ても体感としてまったく面白くなかったうえに、プログラミング技術不足による挙動の粗を感じたが、さすがに〆切りが迫っているので仕様探求はここで打ち切った。5日目終了。
6日目
『ペンギン・ハイウェイ』を観た。心の中に美しい風が吹いた。
グラフィック作業に全振りすると決めていた。ここまで全部矩形でやってた。
まず、色を決める。いろいろ考えたが、シンプルなのがやっぱり好きなので、慣れた白と黒の画面構成にすることに。
フレーバー的には、【宇宙の倉庫管理】みたいなイメージだった。上下ループや無限ジャンプの仕組み的に宇宙の科学力とかそういうことにしとけばそれっぽいかなと。荷物を揃えてワープ運送している。ただし指定の外に荷物を押してしまうと消失して怒られる──スコア倍率が下がる。宇宙科学で本当ならもっとラクできるんだけど、操作キャラクターは暇をもてあましてこういう遊びをしている不良社員的な。もしくは、ブラック過ぎて本当なら機械で全部やることを人力でやらされている。
と、ぼんやりと妄想していたが、これらを表現する力と時間が無いので全部カット。抽象化した。最初はブロックの画像をコンテナっぽく描いていたが結局無地のシンプルな見た目に。やっぱりシンプルなほうが好き。
アニメは三枚にするのを厳守して速度を重視した。結果として、速度を確保しつつ三枚でよくなるようにとちゃんと描けたように思う。ただジェットパックエフェクトはもうちょい盛ったほうがよかったかも。ちょい優先度ミス。
獲得スコアをプレイヤー頭上に表示する発想が出たのはよかった。最初は上のほうに出そうとしていたが、ユーザーの注視点を考えるとおのずとプレイヤー頭上が最適解になった。
カメラは可能な限り揺らす。限界まで揺らせ!!!
7日目
サウンドとブラッシュアップ。調整作業とビルド作業。
効果音をリストアップすると意外と少なかったので、バリバリ慢心した。
効果音|音楽ともに使い回しまくった。効果音は新規作成ゼロ。音楽は途中まで作って分からなくなって放置してたヤツを無理矢理持ち出した。これは微妙だったかも。
サウンドが終わったらグラフィックを弄る。崖際でおっとっとってなるヤツとか調子に乗って入れだす。よしそろそろプレイヤーの挙動調整とか、もう少し面白くなりそうな仕様を模索して、細かな不具合っぽい挙動の穴を塞いで……あれ?時間もう無いな…
うーん、とりあえず青一個追加よりも青二個追加したほうが面白くなりそう?
そろそろビルドしないと…
あ、しまったunityroomに上げるためのアイコン作ってねえ。
告知ツイート用のGIF画像用意してねえ。
あ、ぇていうかビルド終わらない。もう20:00なる…あ。
unity1week、初遅刻!w
20分後くらいになんとか提出したが、とんでもない慢心だった。
感想
遅刻すな。時間配分のミスというか、油断しすぎ。参加初めてのド素人か?
ていうか期間中にゲーム遊びすぎだろ!!!まぁこれはゲームが面白くならなそうだったからこその低いモチベがもたらしたものではあるんだけど……あと、今回迷走を繰り返していたのはプログラミング技術力の無さも大きい。ほとんどの仕様が【面白いから】ではなく、【技術的にそうじゃないと実装できないから】で決まっている。
それにしても、絵と音が入ると微妙なゲームでも多少は遊べるモノになるね。完成後に「まぁまぁ面白いな」とか言いながらしばらく遊び続けていた。
■問題点|修正案
ゲーム投稿後にしばらく遊んでみて、『アラインファイブ』だいたい理解した。
- ブロックを外に出すと倍率低下
これ完全に要らなかった(笑)
- 青が赤五つ揃えで追加
- 青のほうが得点が高い
- 揃えるほど倍率増加
この三つで、ハイスコアを狙う場合、青を出さないようにしつつ溜め込むプレイを誘発できる。わざわざ倍率低下させる必要まったくない。なんなら倍率低下消せば、【微妙な位置にある赤をあえて出して再抽選する】みたいな戦術も出てくる。絶対こっちのほうが面白いだろ。完全にミスである。ノリで作るとロクなことにならない。意図せずブロックを動かしてしまう──暴発が多く、スコア倍率低下と組み合わさってストレスフルなゲームになっていた。
結局、投稿後にバグを見つけたので修正ついでに倍率低下の仕様も削除した。しかし根本的な問題──ブロック小さくてすぐぶつかっちゃう問題の解決や、プレイヤーの挙動をチューニングしているわけではないので、評価はお察しだろう。
暴発を防止しようと思ったら、【ブロックをもっと大きくする】でよさそう。少なくとも今のサイズの1.5倍くらいは欲しいか?その場合、五つ揃えるのは冗長かな?四つ揃えればOKとか、そもそも直線じゃなくて四つひとかたまりとかでもOKにするか。領域外消滅も要るかどうか怪しい*6。フィールドは4×4にするべきかは分からない。ここまでは見えてない。とにかくブロックを大きくすれば暴発は減るだろう。プレイヤーの挙動調整ももちろんしつつ。
あとは壁ズサしてるときに「いま壁キックしたらこのブロックが動きますよ」っていう表示を付けるとか。
……最終調整の重要性を知っているハズなのに、完全にミスってるのふつーに猛省すべきでは…?ほとんどのプレイヤーが見ないであろう【崖際でおっとっとってなるアニメ】とか入れてる場合じゃねえだろ…^^;ド素人がよぉ!?いつもどおりゲーム作り下手なのが判明している。n回目。
しっかし、やっぱ思いつきでゲーム作っていくとロクなことにならんね。よくゲームっぽいものに仕上げられたわ。ふつーに奇跡が起きたかもしれない。
このゲームを作ったことには、実はかなり満足している。別にそこまで面白くないし、めちゃくちゃミスってるし、発想自体も先人が大量にいそうなゲームシステムなんだけど、自分で試せたのとその形の一つを提示できたのがよかった*7。ゲームジャムに適したゲーム作り──実験ができたなーと。
なんだかんだで、しばらく遊んでると自分が遊ぶ分には楽しめるゲームだなと感じている。趣味ゲーム制作で最も大事なのはやはり自分が満足できるかどうかであり、その点では今回は成功だったと自信をもって断言できる。失敗だったのはunity1weekに参加したことだろう。プレイヤー層とゲームの難易度がまったく合っていない。自分だけで楽しむか、内輪で限定公開すればよかった。ランキング評価されるっていう点にどうしても釣られてしまう。承認欲求を別の箇所で満たせていないからだろうな。これはなんとかしないといけない。
2Dプラットフォーマー×アクションパズル、これはメインにするのは正直微妙かもしれないけど、2Dプラットフォーマーのゲームで寄り道要素とかサブクエストとかのミニゲームとして用意するのがイイかもしれない。ちょうどよい変化球でゲームのボリュームを増やしてくれそう。
というわけでゲームが完成してよかった。
おしまい
おまけ:反響
評価期間終わったので加筆。
■いただいたコメントとかプレイの様子とか
まぁだいたい予想どおりな感じ。消したとき気持ちいいとか、もどかしいとか、ムズいとかムズいとかムズいとか。やっぱムズいんだろうね。自分にとってはチャレンジしがいがあって楽しいけど。フリーゲームで、大量に遊ぶゲームの一つを難易度に慣れるまで遊ぶプレイヤーはまず居ないので「難しい」以外の感想は出ないだろうなという感じ。
うん……書くことないな…
■評価
#unity1week
— がむしゃら (@GMshara_) May 22, 2022
評価でました。『アラインファイブ』は
総合50位圏外
楽しさ: 3.929(46位)
絵作り: 3.936(圏外)
サウンド:3.865(圏外)
操作性: 3.596(圏外)
雰囲気: 3.763(圏外)
斬新さ: 4.199(13位)
でした。評価ありがとうございました。参加者のみなさんも、お疲れさまでした
うーん、カス!w
u1wに参加したの、じわじわ後悔していたがここで最高潮。ダメだこりゃ。
ランキング評価されることに釣られてつい公開してしまったが、この難易度ならやっぱりダメだよなぁ……自分が遊ぶ用にとっておいて、気が向いたら内輪で限定公開すべきだったな~~。もう後の祭りだけど。
unity1week参加しなくなった理由を忘れてまた参加してしまった報いだなぁ。
自分のゲームへの評価を抜きにしても、投稿作品を遊ぶ中で自分がつまらんと思ったゲームが高評価だったりして気分が落ち込むのでやっぱり参加しないほうがまだマシだよなぁと*8。以前これも相まって参加をやめていたのに忘れちゃっていた。よくない…!
今度こそ断ち切りたい、この連鎖……
とりあえず1週間は呪詛を吐きながら過ごすことになりそう。
*1:四段ジャンプくらいあればいいのだが、四段ジャンプなんか作るくらいなら無限にジャンプできるようにしたほうがシンプルでいい
*2:スマブラではない。ユニブラ。いやそんな略しかたしたことないけど
*3:ネットの友達、的な…?適した言いかた思いつかない
*4:この出来上がったブロックをあらためてどつくと壊せてポイント、という仕組みだった
*5:プログラミング力が無いのでこうなった
*6:プログラミング技術の問題でこうなったけど、【ブロックもループする】とか試してみたい
*7:あと、もっぴんさんがリツイートしてくれたってだけでもう報われている。でもこうなるならもっと全力で磨き上げていればばばばば……
*8:そもそもunity1weekの開催主旨は「ゲーム作りを楽しむ」なのでゲームが面白いかどうかを論ずるのはお門違い(ランキングあるけども!)