ねこの惑星 振り返り(Game A Week & Unity1week 2024.12.29〆)
毎週ゲームを作るGame A Week 兼、定期開催の1週間ゲームジャム、Unity1week振り返り記事です!
作ったやつ
アイデア
今回は自分含めて3人のメンバーで参戦。
最初の30分をブレストに使って案だし。
次の30分〜1時間くらい? で、良さそうな案を絞る。ゲームとして成立しそうなものはバルトロ風ゲームだったが、グラフィック的な意見との折衝との末、地図で何かする系のゲームになった。
タイルを置いて人間の数を増やすゲームは楽しそうだしゲームとして成立しやすいのでは? となり、人間がネコになって制作開始。
カードから地形を選択して置くなど、はじめはもう少し複雑なゲームを想定していたが、置ける箇所がいっぱある×カードの選択肢もある だと、考えることが多すぎてハードルが上がってしまうので、簡略化した。
ゲームの終了条件も決まってなかったが、それほど考えなくてもちゃんとゲームクリアできる+上手くいったときの達成感も得られる ことを目的に、ターン数制限+スコアで称号つく、ということにした。
上手くいったところ
ゲーム全体
ちゃんと期限に間に合った!! 本当にすばらしい。
チーム制作を最後まで完遂できたのもよかった。
UnityRoomの人気の新着4位にもつけていて、露出としてもよい。
企画面
頭を使わないで置いても楽しいし、頭を使って置いても楽しくなるように設計できたのがとても良かった。
前者に関しては、もちろんグラフィックやサウンドの力がかなり大きいのだが、それを邪魔しない仕様にできたし、後者はうまく設計できたと思う。
プログラミング面
マス目を管理するにあたって、TileMapをModel側が参照するのでなく、Model側で情報を持っておいたため、実装の混乱がなかった気がする。
アセンブリ分けはModel,Presenter,Viewの粒度にしたうえで、フォルダはTerrain,Grid,Catくらいの粒度で分け、Presenterもそれくらいの粒度で作った。
1週間規模ではそんなに混乱は起きなかった。
イベント発行のためにVitalRouterを導入した。UIを出したり消したりするにあたって、コードをきれいにまとめられるようになった。
グラフィック面
自分はほぼ何もしていないが、撮影したUnityRoom用のアイコンは結構よかった。タイトルが書いてあるとなんか締まる。
課題
タイトルのスキップの挙動がややおかしい。
元々デバッグ用に付けた機能ではあったが、本実装されることがほぼ確実だったので、ちゃんと実装しておくべきだった。
マスターデータの入力にバグがあり、一部タイルの挙動が想定通りでなかった。ランキングに悪影響が出ないよう、上方修正だけした。(なので大岬の効果が10倍になっている)
マスターデータのチェックか、デバッグをちゃんとすべきであった。
任意のタイルを持ってくるコマンドを作るのがよかったかな。
アニメーション周りを他の人にやってもらうのは想定できていたので、しっかりクラスを分けるべきだった。
自分で定義したDecideとかのコマンドに、マウスのクリックが対応してなく、汚い実装になってしまった。
得られたもの
・ライト向けとヘビー向け両方に刺さる仕様にできると強い
・マス目系ゲームのModelの使い方
・1wでのアセンブリ分けの粒度
・VitalRouterの使い方。イベント発行の勘所
UIの出し消しや、ポーズ周り、インプット制御に使える
・アイコンにタイトル書いてあると締まる
・実装チェックのためのデバッグコマンドをケチらない必要性
・他の人が触る可能性あるか、本実装に入る可能性があるかを考える必要性
・Hexのクリック判定
結果気合いでいっぱい数式を書いて解決した
次回に向けて
・バグの出た回数と原因をメモっておきたい。(再掲)
いつかやりたい課題
・DomainLoad無効化してバグが出ないようにする
- なんか出たり出なかったりになった
・IDisposable完全に理解する
・タッチ機能スマホ対応