Game A Week 振り返り (2024.11.10〆 ねこクッキーサバイバー)
毎週ゲームを作る、Game A Weekの振り返り記事です!
作ったやつ
アイデア
前回、前々回はテキスト面で面白さを出していこうと思ってたのですが、うまくいかず。
ということで、今回はシステム面で面白さを出していくことにしました。
システムが面白いと言われてパッと思いつくのがローグライク。
ゲームオーバーで最初からになっても、ランダム性と自分の実力のはざまで、次はもっと上手くいきそうと思えてればローグライクになってるはずなので、メインの遊びはなんでもいい。
実装の都合的に操作が簡単な、クリッカーを組み合わせることにしました。
本家(?)のクッキークリッカーはクッキーの数が増えるのを楽しむゲームですが、ゲームオーバーが存在しないため、
クリックによって積み上げたクッキーで、上昇する海面から逃げることに。
最初は人間のつもりでしたが、身長に対してクッキーが小さすぎるので、猫を主人公に。
これでもだいぶクッキーに比べて猫がでかいのですが、いろんな猫がいるのと、人間に比べて猫は見慣れていないため、うまく収まりました。
うまくいったところ
ゲーム全体
まず、かなりゲームらしいゲームにできたことに手ごたえを感じてます!
・遊び方がわかりやすい。ほぼテキストなしで、操作方法は何か、何をすればうまくいくのか、ゲームオーバーの条件が何かがわかる。
・ピンチの演出と、そこへの対処。途中で思いっきり海面を引き上げるのと、沈んでも5秒は耐えられるというルールで、わかりやすいピンチとその回避が明確に提示できました。うまくいくと海面を引き離して、画面に変化がなくなってしまうという問題の解決手段にもなっていて、大変良かったです。
・クリア演出。無重力になって海面上昇から解放されたという設定付けと、宇宙猫モチーフの1枚絵で、達成感出せたと思います。
・ねこのカード。3択すべてを効果があるカードにしてしまうとバランスが崩れたり効果をつけるのが大変になるところを、かわいげのある外れカードを用意することで解決できたのがよかったです。
プログラム面
前の記事に書いた、
・購読を意識してMVPデザインパターン使う
・便利ツール導入する
これらはできました。ちゃんとVSのテンプレートを整備したので、クラス作成のやりやすさが段違い! ではかどりました。
今回はカード表示の関係でポーズ実装が必要になりましたが、ZenjectのSignalを使って疎結合でPauseとResumeを呼ぶやつもできてよかった。
Sea,Cookieなどのモデルからパラメータを分けて、スキル側からそのパラメータを編集できるようにしたのはよかった。
課題
ゲーム全体
・本来は強化の方向性を3軸用意したかったのですが(クッキー、モチ、鳥)、実装の時間的に鳥は用意できず。
そして、モチ軸と比べてクッキーが強すぎて、選択になってなかった
・最初、BGMと一緒にSEとともに海面が上がるのが微妙
プログラム面
前回の記事に書いたものだと、
・今回作った便利関数や機能を使いまわす
-> あまりできなかった、時間の都合的にRPGに必要っぽい要素は必要になったときに取り出そうと思った
・抽象クラス使ってみる
-> まったくやってない。そもそもなんで使おうと思ったんだっけ? [SerializeField]にアタッチできないとか、同じInterfaceを持っている別クラスの共通機能をまとめたいとか? 次は要チャレンジ
・Zenjectの機能使う
-> Signalなどで多少つかったが、次からVContainerに乗り換えるつもりなので無し
その他は、
・Presenter,Model,Viewの参照が逆
・表示するとき、消すときのプロパティがそれぞれ別で、統一したものになっていない。まあでも表示するときにそれぞれのクラスで引数が違うのは当たり前なので、しょうがないかも
辺りか。
イラスト面
元々デザインスキルがないのでクオリティアップは難しいのだが、
全部が子供っぽいデザインで統一されていることに意味があると思うので、
ゲージ類も手書きで書けばよかった。たぶん15分くらいで作れたので。
広報関連
・キャッチーな題材なのでXに投稿してみたが、全然バズらなかった
思うに、
・クリックカーソルが小さすぎて、クッキーをクリックしていることが分かりづらい
-> わざわざカーソルを大きくして画面録画でとったのに、なぜか小さいまま…解決方法さがす
・そもそもクッキーをクリックすることで目を引くと思っていることが愚か。感覚が古い
-> これかも
・宇宙猫を出すべき?
次回に向けて
まず第一に、期限超過が続いているので、超ざっくりしたやつを出して、ペースを戻したい。
そのうえで下記のプログラミング課題にも取り組む。
・Presenter,Model,Viewの参照順序を正しくする
・PostProcess使う
いつかやりたい課題
・IDisposable完全に理解する
・VContainerに乗り換える