ゲームジャムに参加しました。
unityroomのunity1weeksというゲームジャムに参加しました。 お題は「跳ねる」で月曜から本日(日曜)の20時までにアップロードする、という流れです。
ちなみに完成品がこちら。 HaneShoot | 無料ゲーム投稿サイト unityroom - Unityのゲームをアップロードして公開しよう 見ればわかりますがかなりシンプルなゲームです。
このゲームジャムに参加するに至った経緯ですが
#unity1week
— ベコタイジ@gamedev (@bekotaizi) April 30, 2017
やばい間に合わない( ^)o(^ ) pic.twitter.com/bKFHMIUcpV
こちらのツイートを見て存在を知りました。このツイートが本日の15時56分。 この時私は外出中(帰宅中)でした。
この時点で残り時間が約4時間。家に付くまでに30分程度。 つまり3時間半ほどの時間があることに気付いたのです。 僕は思いました。
「3時間半もあるじゃん」
こんな感じで参加を決めたわけです。 その3時間半でやったことをまとめていこうと思います。
企画を決める
3時間半と書きましたがその前に移動時間が30分ほどあります。 3時間半フルでプログラムを書くためには企画を決めておく必要があります。 そこで移動中に企画を決めました。方針としては「シンプル」「定番」「簡単操作」です。 「定番」から決めるのがかなりやりやすかったです。 物理挙動のゲームで、壁に当たると跳ねて、引っ張りアクション。 で出てきたのが例のゲームです。
過去のプログラムをインポート
さて、肝心要の3時間半で行けるだろうと思った理由がここにあります。 このゲーム以外にも色々ゲームを作っているのですが、その中で「あ、よく使うな」というものはライブラリ化しているものがちらほらあります。 良くあるので言うとSingletonBehavior的なやつとかDontDestroyObject的なやつとかです。 これを他のプロジェクトから放り込みました。
加えて「Game Jam Template」というアセットをインポートしました。 これは簡単にタイトル画面を作れるすぐれものです。タイトル通りゲームジャムで使うことを想定しているのでしょう。
この作業だけで数百行のプログラムが一瞬で書き終わったのと同じ状態になるのでかなり時間短縮になりました。 書いててよかった汎用コード。
諦める所は諦める
アセットをインポートしたわけですが、もちろん新規に描いたコードもそれなりにあります。 玉が画面外に出た時の処理やステージ選択何かがそれにあたります。 その中で妥協していった部分が幾つかあります。
最適化しない
例えばキャッシュした方が良さそうなものとかありますが基本的にしていません。
不具合出そうなところを許容する
簡単に言うとNull踏みそうな箇所を気にせず描いています。 少ないコードで書くのでそう簡単には踏まないし踏むとしてもすぐわかるだろうという判断です。 実際なんとか動いてます。これはリスクを背負って時間短縮をした感じになりました。
演出はこだわらない
演出ってなんだかんだ時間がかかるものです。クリア時とか画面の切り替えとか。。。 そこもライブラリ化できていれば良かったのですがしていなかったので無くしました。 ここは時間があればやった方がゲームとして面白いので少し後悔しています。
仕様を落とす
最初の想定ではステージクリア型で徐々にステージが解放されるものを考えていました。 ですが、ステージって普通ステージ1から順番にやりますよね?殆どの人がそうだと思います。 そこは人の心理を信じてごっそり削りました。
リリース
実はunityroom使うのが初めてでした。普段はWindows向けかスマートフォン向けに開発をしているのでUnityのWebGL向けBuild環境も入って居ませんでした。 これを急いで入れつつビルド、アップロードという感じでリリースしました。 リリース方法に関してはunity1weeksのページにまとめられていたので迷うことはなかったです。 開発が〆切15分前とかに終わったのでここが一番焦ってましたw
感想
こんな感じで紆余曲折を経て冒頭に紹介したゲームが完成しました。 ゲームジャム参加は初めてだったのですがこれまでの経験もといコード資産をフル活用した感じになりました。 完成した瞬間の達成感とその後色々な人が作ったゲームを遊ぶのがとても楽しかったので何かあれば、また参加しようかなと思います。
明日は余裕あれば遊んだゲーム紹介していきたいな。