こんにちは、やまだたいし( やまだ たいし@ソシャゲプログラマ (@OrotiYamatano) | Twitter )です。
unityroomというゲーム投稿サイトにて第14回目Unity1Weekというゲームジャムがあり私も参加しました。
毎回300ほどの作品が投稿される大きなイベントです。
今回はその時の反省です。自戒を込めて書きます。
目次
今回の成果
発掘せよ!ジェム!
ブログ用 pic.twitter.com/21znVtERSg
— やまだ たいし@ソシャゲプログラマ (@OrotiYamatano) October 29, 2019
ジェムこと宝石を探すゲームを今回は作りました。
14日から開発をはじめて27日に投稿。
音も無いし、1週間ゲームジャムのくせして1週間遅刻してるので、もはやUnity2WeekJam。
音も入れられなかったし、正直言って駄作です。
次回へ活かすには、どう駄目だったか、どうすれば良くなるか考えて書き出して行こうと思います。
ゲームジャム中、どうやって過ごしたか
序盤
- Jenkinsの構築
今回はあまり時間が取れないと分かっていたので自動ビルドを行うためにJenkinsの構築を進めていたのですが、予想以上に時間が取れず、環境構築作業がゲームジャム中にずれ込んでしまいました。
- ゲームを考える
1日目でどういうゲームにするかは思いつきました。
- オーディオ、キーインプット周りの準備
他のUnityプロジェクトで使っているものや使おうと思っていた機能を持ってきた。
- Tilemapでゲーム画面を作る
Tilemap機能を使ってゲームを作っていました。
中盤
- キャラクターの動きの制御
意外とUnityのRigidbody2Dが曲者で思ったように動かない
- 残業
お仕事が忙しくて日に1、2時間ほど残業していました。
- 爆睡
土曜とか18時間寝てました。
後半
- 勉強会へ行く
期限が過ぎているにも関わらず、勉強会に行ってました。コレはコレで大事なので。
- 読書
岩田さんを読んでました。コレはコレで大事なので。
- asmdefについて調べる
気になったので……。
反省点
1.風邪をひいていた
風邪というか風邪を拗らせて気管支炎になっていました。
9末頃に前のプロジェクト退散して環境が変わり、どたばたしていたんですが、CEDEC行きました。
CEDECで疲れてたのに、(確か)土曜とかも休まず、ピクサー展行って、翌週TGSへ行きました。
軽く咳をしていましたが大丈夫だろと、高を括っていたら、風邪を拗らせて気管支炎になって咳が止まらなくなりました。
咳って意外と疲れるもので体力を持っていかれます。
そのせいでゲームジャム中にも関わらず休日に爆睡したり平日も早く寝てしまったのだと思います。
正直今回の一番の失態だと思います。
どうすればいいか
疲れたら休む。当たり前だけど、今回に限っては、それぐらいしか無いと思います。後はエアコンに気をつけるとか?(クーラーで喉を痛めて風邪引いたので)
「楽しいし、まぁ大丈夫だろう」じゃなくて、ちゃんと休む。
頑張って風邪ひくのとしっかり休んで作業するのとではコストパフォーマンスがかなり違います。しっかり休むことを優先したほうが結果的に成果が出る……かも知れないです。
「あの人が同じことをして大丈夫なんだから自分も大丈夫だろう」とかではなく、自分の体力に合わせてしっかり休むことを心がけたいです。
(明らかに疲れていることは分かってるのにピクサー展行った後、誘惑に負けて友達と遊んでしまったのは良くなかったかも知れない……)
2.残業していた
ぶっちゃけた話、作業が多く残業することになるのは分かっていました。しかし、それにしても、もう少し早く帰宅出来る日があったような気がします。
作業のきりが悪いから、と残っていた日もありました。きっぱり切り上げるようにしたいです。
どうすればいいか
前もってゲームジャムに参加する旨をプロジェクトメンバーに言っておく。
恥ずかしい思いをすることになるかも知れないですが勉強すること(ゲームジャムに参加すること)自体は悪いことじゃないです。前もって言って協力して貰ったほうが良かったかも知れないです。
前もってゲームジャムの準備をしておく。
今回も準備しようとしましたがJenkinsの構築やインプット周りの実装がゲームジャム中にずれ込んでしまいました。
アクションゲームを作るならUnityの2Dや3Dでキャラクターを動かすための基礎アルゴリズムは用意してゲームジャムに備えたら良い結果が残せたのではないかと思います。
3.Tilemapで詰まった
Tilemapを使ったことが無いのに今回初導入し、思った様に実装できず詰まった点があった。
やはり調べながらの実装だと時間がかかった。
どうすればいいか
触ったことのない機能は触れない。
短い期間で仕上げるためには触ったことのない機能を使って実装するのは避けたほうが素早く実装できます。
しかし、触ったことのない機能は触らないと言っても実際にゲームを作るまで、どんな機能を触るか分からないと思います。
ゲームジャムへ参加する前にリハビリがてら何か作ってみるのも、ありかも知れないです。
(ゲームジャムでは触ったことのない機能の検証に使う人もいるので使ったことのない機能を使うこと自体は否定しないです)
4.ゲームループが早めに完成しなかった
ゲームループを完成させる前にキャラクターのドットとかをやっていました。
悪いことではないが、後でも良かったかも知れないです。
どうすればいいか
早めにゲームループだけを作る。
早めにゲームループを作るだけでボリューム感をつかみやすいと思います。
どんなに杜撰(ずさん)でもゲームループを早めにつくった方が良かったかも?
5.他のことが気になっていた
1週間を過ぎたあたりで半分どうでも良くなって、他の気になっていたことを調べたりしていました。
コレばかりは「期限内に作業を終わらせろ」って話ですが、それでも集中できていたら日曜日とは言わず金曜日には仕上がっていたと思います。
どうすればいいか
一旦気になったことは書き留めておいて、作業に集中する……とか?
別のことに興味がわき、自己抑止力が働かないのは、すでにその時点で疲れていると思われるので早々に休む……とか?
気になってしまうのは仕方ないので時間を決めてやるとか?
良かった点
1.Jenkinsの構築
去年Unity1Weekに参加したときは最後の最後で上手くビルドが出来ず苦戦しました。
今回は動作確認とまでは行かないが、上手くビルドが通ってるだけで心理的に安心しました。
後、別PCでビルドすると凄い捗りました。
ゲームジャム中にメインマシンを触れる時間帯が増えるはありがたい。
2.Tilemapについて学べた
Timemapを知らなかったがゆえに時間がかかったところもありますが、機能として知ることが出来たのは良かった様に思えます。
Timemapに限らず実装することで「力がついた」「理解が深まった」部分があったので、その点に関しては、とても良かったと思います。
3.普段の足りない部分を理解できた
良かった点2にも関係しますが、普段の業務だと自分の担当箇所ばかり作業することになります。(例えば私だと実装済み箇所の修正や2DUIの実装や環境設定周り)
しかし、ゲームジャムだと全てを自分で担当することになります。
出来ると思っていても、実際に実装してみると思ったように出来ない箇所も多く、自分の出来ないところを把握することが出来ます。
最後に
今回Unity1Week中Twitterで「ちょっと初心者じゃ入り込めない雰囲気だ」と言っている人を見かけました。
因みにUnity1Weekはハッシュダグを付けてTwitterで作品作成過程を投稿したりします。
それを見てで作品レベルが高かったからでしょうか?実際の初心者が「敷居が高い」と感じているかは分からないですが、私は「敷居が高いと感じていても気にしなくても大丈夫だ」と声を大にして言いたいです。
(そうじゃないと本職ゲームプログラマなのに完成すら出来ていない私の立場がない……)
ぶっちゃけ途中経過なんて晒せる人はだいたいが上位陣なので気にせずにやりましょう。
ゲームジャムは普段のゲームづくりとは違った能力を求められますが、
普段のゲームづくりにおけるプロトタイプ作りの訓練や基礎力を上げるための良いトレーニングになると思います。
上に上げたような利点もあるので参加すること自体に意味があると思います。
挑戦できずに一喜一憂することすら出来ないのは、もったいないです。
この記事を見て、なんだ、1週間でゲーム作れないなんてゲーム開発本職のプログラマーってショボいんやなってどんどん殴り込みに来てほしいです。
きっとその方が楽しいと思います。