自分史上、最速でアイディア出しからリリースまでを実行したゲームジャム
毎度恒例のUnity1週間ゲームジャム。今回は開発期間1週間、他の人のゲームを遊ぶプレイ期間1週間の2週間構成だった。しかしながら今回は仕事の出張と重なっていたため、私が実際に着手できたのは評価期間の3/20(木)から。
他の人に遊んでもらう時間を考えると土曜日までには出したかったが、開発&公開に宛てられたのは祝日だった木曜と土曜の2日のみ。そのため今回は、「早くゲームをつくる」ことを意識して開発に取り組んだので、備忘録的に考えたことをメモしておく。ちなみに以下が公開したゲーム↓
【アイディア出し編】
まずはお題から連想ゲーム
アイディアを出すのは結構時間がいる作業。そのため、なるべく早めにアイディアを捻りだすために実践した方法をメモ。
実は今回もアイディアに関しては、出張帰りの飛行機の中で何となく考えていた。経験上、とりあえずアイディアを出すには連想ゲームが一番早い。以前のゲームジャムのお題「10PEST」でやったように、「つながる」という言葉から連想ゲームをする。つながる……TUNAがる……ツナ狩る……そうだ、マグロ狩りのゲームにしよう!と、まず第一アイディアはすんなりと決まった。考え始めてたった30秒。イメージは以下のような魚釣りゲームのイメージ。
しかしながら、出張から帰ってから皆さんが公開したゲームを見て思う。「マグロだらけじゃねーか!」と。連想ゲームは着想を得やすいが、その分アイディアが被りやすいのかも。今からマグロのゲームを出しても後追い感が半端無いな……と思い、上記のアイディアはやめることにした。次の手を考える。
最近観た映画や本を思い返す
自分の頭の中でウンウン唸っていてもなかなかアイディアは湧いてこないので、自分の本棚やAmazon Primeの視聴履歴、ブログの記事を見返して、過去の体験からインスピレーションを得る。もちろん自分がプレイしたことのあるゲームでも良い。
私の場合、最近観て印象的だったアポロ計画の映画「ファーストマン」を思い出して宇宙ええやん!と思い、「とりあえず宇宙で何かをつなげるゲームにしよう。宇宙ステーションのドッキングとか、惑星間をつないで航路を開拓するとか、色々考えられそう」というぼんやりとしたイメージが出来てきた。
アセットストアで細部のインスピレーションを得る
宇宙をテーマにすると決めてからは、UnityのAsset Storeに直行。検索で「space」「universe」「cosmo」などと適当に打ちまくり、自分のイメージに合うものを探す。大まかなイメージができたあとの細かい部分のイメージは、アセットを眺めながら考えると実際の動作に落とし込みやすい。その結果、可愛らしい宇宙飛行士のアセットと、綺麗な地球のアセットを発見。
https://assetstore.unity.com/packages/3d/characters/humanoids/free-animated-space-man-61548
https://assetstore.unity.com/packages/3d/environments/sci-fi/planet-earth-free-23399
これらを眺めて「地球から打ち上げられた色々なモノを、宇宙飛行士が集めて繋げて、新しい星をつくる。制限時間内にその星をなるべく大きくしたらスコアが高くなる」というゲームにすることにして、開発に着手した。この時点では、まだ木曜日の夜。
※最終的に出来たゲームとは内容が異なるが、それについては「ゲーム開発編」で経緯を紹介する。
【ゲーム開発編】
必要だと思われるアセットを最初に揃えておく
グラフィックやサウンドも自分でつくりたい派の方にはあまり合わないかもしれないが、私は基本的にアセットを使ってゲームをつくる人なので、まず必須と思われるアセットを揃えておく。おまかなものとしては
- グラフィック関係全般(主人公キャラ、舞台となるフィールド、出てくるモノ・敵など)
- BGM
- 効果音
- フォント
などが必要になると思う。もちろん、ゲームをつくりながら逐次ダウンロードしながら進めてもいいが、経験上、ある程度アセットはまとめてダウンロードして最初に整理しておいた方がすっきりするし、使いたい時にすぐに使えるので効率が良いと思う。
最初のアイディアに固執しない
「アイディア出し編」で書いたように、最初はモノを繋げて新しい星をつくる、メルヘン&ファンタスティックなゲームにするつもりだった。イメージとしては以下のような感じ。地球から打ちあがるモノを宇宙飛行士がキャッチし、吸着機に投げて星を大きくしていく。
しかし、複数のモノを同時に繋げる処理がうまく実装できず、作業がとまってしまう。そこで方向転換し、現在までに実装できている処理の範囲でできるゲームを模索した。
複数のモノを同時に繋げるのはできてないが、主人公にモノを繋げる動作はできている。「この内容でできそうなゲームは……そうだ、大気圏にモノを叩きこんで全て燃やそう」。この発想にはやや飛躍があるが、こういった瞬間的なインスピレーションも取り入れつつ、さっさとゲームの内容変更。最終的に、「宇宙空間のゴミを集めて、大気圏に叩きこんで焼却するゲーム」となった。
最初に出したアイディアが素晴らしい(と自分が思う)ほど固執しやすいが、時間が限られる場合には、現状でできる範囲で考えることが重要かなと。
過去の資産をフル活用
これはある程度、過去につくったゲームがある人が使える手だが、過去のゲームで使ったScriptやSceneなどをガンガン再利用していく。例えば、今回のゲームのタイトル画面は丸々「10PEST」のモノを持ってきて、画像などを差し替えただけである。そのほかにも
- 制限時間のカウントダウン
- 得点の加算
- プレイヤーの移動
など、汎用的なScriptはガンガン再利用した。なるべく早くつくるためには、いかに新規開発部分を減らすかがポイントになる。もちろん、十分な時間があるなら、色々と自分で最初から作ってみるのは良い勉強になると思う。
紆余曲折を経て、何とかゲームを完成することができた。この時点で、土曜日の午後あたり。WebGLでビルドを行い、unityroom公開の準備を進める。
【unityroom公開編】
デバッグの待ち時間やビルド中に必要事項を記入しておく
開発中、ゲーム終了時の処理をデバッグするために、ゲームの終了を待つ時間や、出来たゲームのWebGLでビルドする時間など、ちょくちょく開発中にも待ち時間が発生する(ゲーム終了処理のデバッグの場合は、制限時間などを一時的に変更して待ち時間を減らすのも手だが)。unityroomに投稿する際にはゲームの説明、WebGLの設定、操作方法の説明、使用したアセットなど、記入するべき事項がたくさんある。
こういった待ち時間を利用して上記を記入しておけば、リリース前に「あれ書かなきゃ。これも書かなきゃ。ウワーッ」となるあの感覚を味わなくても済む。
ゲームを作りながらスクリーンショットを撮る
ゲーム制作中、「この画面はこれで完成したな」と思った瞬間に、さっさと公開用のスクリーンショットを撮る。もちろんあとから変更が加わる場合もあると思うが、細かい部分ならあまり気付かれないだろうし、公開してからコソッと差し替えてしまえばいい。公開するときに「画像がそろっている」状態にすることが重要。
これで無事にゲームを公開することができたし、短い期間ながら評価やコメントも頂くことができた。遊んで頂いた方々に感謝。最終的なゲームはこんな感じ↓
おわりに
今回のUnity1週間ゲームジャムは開発期間1週間、プレイ期間1週間の2週間構成だったことは冒頭で書いた。この2週間構成化は本当に素晴らしいアイディアで、多くのゲームの遊ばれる時間が増え、活発にフィードバックが交わされていて大成功だったのではないかと思う。高評価を集めた作品がランキングで発表されるのも良かった。どんな作品が人気があるのかわかるし、「自分も更に腕を磨いてランキングに入るようなゲームをつくろう」というモチベーションにもつながる。
残念ながらまだすべてのゲームを遊べてないが、これからもコツコツプレイさせてもらって楽しみつつ、勉強させてもらいたい。次の1週間ゲームジャムもぜひ参加したい。