方向音痴ゲーマーのテップウ(@teppu_game)です!
突然ですが僕は以前、ゲーム好きが高じてノリと勢いだけでシューティングゲームを制作したことがあります。

プログラミングなんて一切分からない超素人でしたが、なんとかゲームとして遊べるものを作ることができました。

Twitterでも多くのコメントをいただき大満足だったのですが、制作に半年ほどかかってしまったため、その間積みゲーがたまりまくってしまいました。

積みゲー全部重ねたら月まで届くくらいたまりました(激ウソ)
それから半年間、積みゲー崩しの日々を送っていたのですが、突然ゲームのアイデアがビビっとひらめきました。
しかも「このアイデアのゲームなら1カ月くらいで作れそう!」と思ったので、またしてもノリと勢いでゲームを作り始めたのでした。。。
ということで今回は、「僕がどんな感じにゲームを作ったのか」をゆるーく書いていくので、ぜひ軽い気持ちで読んでくださ~い!
- ゲームがどうやって作られるのか気になる
- プログラミングとかよく分からないけどゲーム作ってみたい
- Unityでゲーム制作を考えている
ゲーム作りを開始するまで
高難易度育成ゲームのアイデアをひらめく
まずはゲームを作り始めるまでの経緯について、もう少し詳しく書いていきます。
僕はブログやTwitterで、自分で描いたビーバーの絵をアイコンに使用して活動しています。

ボクはタヌキじゃな~い!
前回シューティングゲームを制作したとき、自分のアイコンを広めたいというゲスな思いもあり、自機をビーバーにしました。
せっかくならビーバーの特徴をゲームに活かしたいと思い、「ビーバーと言えば前歯!」という発想で、自機のショットで歯を飛ばすゲームが完成しました。

もし次ゲームを作るときも、主人公はビーバーにしようかな~と思いつつ、しばらくゲーム制作から離れていました。
それから半年後・・・そこにはゲーム制作のことをすっかり忘れたテップウの姿が!

ゲーム楽しいなあグヘヘグヘエヘ
ゲームはプレイする専門に戻っていたのですが、テレビを見ながら歯磨きをしている最中に、突然超おもしろアイデアがビバビバッとひらめきます。
「ほっとくと前歯がどんどん伸びていって、地面まで到達するとゲームオーバーになる」ゲームを作ればおもしろいんじゃないか・・・?

ハードル上げた割にショボいアイデア!
このアイデアで最初に思いついたのが、ボタンを連打して前歯が伸びるのを阻止するゲームです。
ボタン連打中に何か邪魔が入って、そっちに気を取られていると前歯が地面に突き刺さってしまうというゲームを考えたのですが、、、
「どうやって邪魔をするか」のアイデアが思いつかなかったうえに、すっごいつまらなさそうだったのでやめました。(英断)

マウスも壊れそう!
次に考えたのが、ビーバーの育成ゲームです。
お腹がすいたらエサをあげるような感覚で、前歯が伸びたら「かじり木」をあげればいいのでは!?とひらめきました。
かじり木を無限にあげることができたら意味がないけど、お金の概念を設定すれば良さそう!
たったこれだけのアイデアで、ゲーム制作を始めることにしました。
ちゃんとしたゲームを作る場合は企画・設計から始まると思いますが、ちょっとした個人ゲームの場合はノリで作り始めることができます。

なんだか気軽に始められそうでしょ?
Unityを起動して絶望の巻
僕はUnityというゲームエンジンを使用してゲームを制作しています。
めちゃくちゃ優秀なゲームエンジンでして、Unityのおかけでプログラミングがサッパリな僕でもゲームを制作することができました。

直感的に操作してゲームが作れます!
ゲーム初心者の強い味方なわけですが、Unityはプロも使用しています。
「Fall Guys」や「ポケモンGO」など、Unity製の有名なゲームは多数あります。

あのファイナルソードもUnity製!
有名企業も使用しているUnityですが、個人制作の範囲ならほぼ間違いなく無料で使用することができます。
つまり、超頑張れば無料で「Fall Guys」のようなクオリティのゲームも作れるってことです!
そんな超優秀なUnityでさっそくゲーム制作を開始しようと鼻息を荒くしていたわけですが、起動して絶望しました。


どうやって作るんだっけ・・・?
見事にUnityの使い方を忘れていました。
昨日何食べたかも覚えていないのに、半年前のゲームの作り方なんて覚えてるわけなかったぜ!
そこで取り出したのがこちらの本。
僕が前回シューティングゲームを制作した際は、こちらの「Unityの教科書」で基礎を学び、後は都度ネットで調べるという方法で作りました。
サンプルのゲームを作りながら楽しくUnityの基礎を学ぶことができるので、プログラミング知識ゼロの僕でもゲームを作ることができました!
Unityの教科書を最初から読み返してだんだんとUnityの操作を思い出したので、今度こそゲーム制作に取り掛かり始めました。
ゲーム制作開始
開始早々心が折れかけるの巻
まずは、ビーバーの前歯をじわじわ伸ばすプログラムを書くところから作業を始めました。
ここでいきなり心が折れかけます。(早っ)
Unityで画像全体を伸ばすプログラムは簡単にできるのですが、前歯だけを伸ばす方法が分かりませんでした。

普通に伸ばすとちょっとホラーになりますw
試行錯誤した結果、前歯だけの画像をビーバーの画像の上に重ねて表示させて、前歯の画像だけを伸ばす方法を思いつきました。
しかし、普通に伸ばすと前歯が上下に伸びてしまい、前歯が脳天に突き刺さってしまいます。
なので、上側を固定して下側だけに伸ばす方法を考える必要がありました。

これが意外と大変・・・!
更に試行錯誤た結果、Pivotを固定する方法で、前歯が下側にだけ伸びるプログラムが完成しました。
前歯を伸ばすプログラムを書くだけで、2時間もかかりました・・・!

開始早々、心と前歯が折れかけました
ゲーム性を考えながらUIを配置していく
さて、無事に前歯を伸ばすというゲームの肝の部分が完成しましたが、この時点ではどんなゲームにするかほとんど考えていませんでした。
この時点で決まっていたのは以下の要素だけです。
- ジワジワと前歯が伸びていき、地面に到達するとゲームオーバー
- ゲームオーバーになるまでの秒数がスコアになる
- かじり木を与えることで、前歯を短くできる
- かじり木を与えるにはお金が必要

これだけじゃゲームにならないね!
次はボタンやスコア表示などのUIの部分を作成していこうと思ったので、このタイミングで詳しいゲーム内容を考え始めました。
この時点で考えたのは以下の要素です。
- 前歯が伸びているのを忘れてしまう要素
- どうやってお金を稼ぐか
アハ体験みたいに前歯がジワジワ伸びていって、気づかないうちにゲームオーバーになるようにしたかったので、前歯から気をそらせるような要素を組み込みたいと思いました。
そこで、ビーバーの満腹度の要素を組み込んで、ゼロになったらゲームオーバーになるようにしました。
次にかじり木代やエサ代に使うお金の稼ぎ方ですが、ここが1番迷いました。
「ボタン連打してる間お金が増える」という案を考えましたが、普通につまらなさそうだったのでやめました。

困ったらすぐボタン連打を考えるよ!
次に考えたのが、プレイヤーの行動ゲージを用意して、溜まったら「働く」ボタンを押してお金を稼ぐという案です。

イメージはFF7のアレ!
働くボタンに気を取られている間に、満腹度がゼロになったり前歯が伸びたりしてゲームオーバーになる感じですね!
ただ、それだけだと作業的でつまらなさそうです。
僕は個人的に、ランダム要素があるゲームが好きです。
ランダム要素が強すぎると、「運ゲーじゃねーか!」ってゲームになってしまいますが、ある程度ランダム要素があった方が毎回プレイが変わるので、ドキドキ感が味わえると思います。
それにランダム要素があると「運」のせいにできるので、「いやー、運が悪かったわー。この運なら高橋名人でもゲームオーバーになるわー。」と言い訳ができます。

↑ここ重要!
ということで、ゲーム中にいろいろなランダムイベントを発生させて、その中でお金も稼げるようなイベントも組み込むことにしました。
しかし、ランダムイベントだらけにすると「運ゲーじゃねーか!」となってしまうため、行動ゲージがたまったときに、「働く」か「ランダムイベントを発生させる」か選べるようにしました。
これである程度ゲーム内容が固まってきたので、ボタンなどのUIを配置してみました!

まだバランス調整前なので、完成版とエサ代などが異なっていますね。
この時点ではただボタンを配置しただけなので、押しても何も起きません。
ここから本格的にプログラムをしていきます!

バグ祭り開幕!
プログラミング開始!
Unityでは、「C#」というプログラミング言語を使用します。


なにこれ?呪文?
プログラミング未経験だと見ただけで頭が痛くなってきそうですが、先程ご紹介した偉大なる教本「Unityの教科書」で、C#の基礎も楽しく学ぶことができます。
僕はC#の基礎中の基礎しか分かっていませんが、それでも簡単なゲームなら作れますよ!
ある程度プログラムを書いてからゲームを実行させようとすると、だいたいエラーになります。
なので、一気にプログラムを書くのではなく、機能を少しづつ足しながらこまめに実行してみるのがコツなような気がします。
エラーになるとUnityくんが「何行目のコードがおかしいよ!」と教えてくれます。

一気に何十行もエラーになると滝汗がでます
分からないところはググって、エラーと戦いながらプログラムを書いていきました。
実行できないようなエラーはだいたいプログラムの入力ミスや書式のミスなので、修正もすぐにできるのですが、怖いのがエラーにならないバグです。
エラーにならないバグはプログラムとしては成立しているので、コードの何行目がおかしいのか探すのがめちゃ大変です。
素人がテキトーにネットで調べながらプログラムしてるので、バグ祭りになります。

気持ちはロックマン!
ウンチくん爆誕
さて、バグと戦いながらもなんとかプログラムが完成したので遊んでみたのですが、、、

うーん、クソゲー
簡単なうえに単調すぎて全然おもしろくないんです。
何か要素を足そう!と考えました。
育成ゲームとして何かが足りないと薄々感じていたのですが、重要なアレが足りないことに気づきました!!

育成ゲームといえばウンチ!
ビーバーにウンチさせなきゃ!(使命感)
ただウンチさせるだけでは意味ないので、ウンチをクリックで消せるようにして、5個溜まったらゲームオーバーという案を考えました。
あと、ウンチをクリックしたら爆発エフェクトを発生させることを心に決めました。(無駄なこだわり)
これでちょっとしたアクション要素も増えたので、ゲームが単調じゃなくなる気がしますね!

さあ、ウンチを搭載しよう!(ウンチウンチうるさい)
と、ここで今更ですが、ゲームを作るためには「画像」「音」などの素材が必要になります。
ウンチを出現させるためには、もちろんウンチの画像が必要です。
商用可能なフリー素材もネットにたくさんあるのでそちらを使用してもいいのですが、僕は無駄にオリジナリティを出したかったので自分で描くことにしました。
僕は絵心ナシナシですが、EDGEというフリーのドット絵エディタで絵を描いてます。

なんか味がある(下手とは言ってない)感じになるよ!
描いてるうちに楽しくなって、無駄に12種類もウンチの絵を描いちゃいました。(テヘッ)
ウンチを組み込んだ結果がこちら!


晴れて見た目もクソゲーになりました
バランス調整に苦しむの巻
無事ウンチくんも出現させて大満足なのですが、ここからが一番大変な作業です。

その名もバランス調整
このゲームでは主に、以下のバランスを考える必要があります。
- 満腹度が減るスピード
- 前歯が伸びるスピード
- ウンチが増えるスピード
- エサ代やかじり木代などの値段
- 良いランダムイベントと悪いランダムイベントのバランス
前回制作したシューティングゲームは、「難しすぎるだろ!」と多くのアツい声援?をいただきました。
自分一人しかテストプレイしてないので、難易度が分からなくなってくるんですよね。。
ゲームは簡単すぎても難しすぎてもつまらないうえに、プレイする人によって難易度の感じ方が違うので、どの層をターゲットにするかを考えて難易度を調整するのが理想だと思います。
今回はあまりゲームをしない人にもプレイしてほしかったので、難しくしすぎないように調整したつもりです。
ただ、簡単すぎると無限にプレイできてしまうので、徐々に難易度が上がるようにしました。
ゲームが楽しくなる音を足していく
なんとか自分なりにバランス調整を終え、公開したときに「また高難易度かよ!」とアツい声援が来ないようにお祈りもしたところで、続いて「音」を足していきます。
ゲームの「音」は非常に重要で、ゲームの爽快感や楽しさに直結します。

試しに音を消してゲームをすると、重要さがよく分かるよ!
さすがに作曲するのは敷居が高すぎるので、BGMや効果音は今回もフリー素材をお借りすることにしました。
ウンチをクリックしたときの効果音は、無駄にたくさん用意しました。

ウンチへのこだわりが怖い!
あと、ビーバーのボイスは前作に引き続き、僕の奥さんにお願いしました。(自称フルボイスゲームです)
音を足したことで、いよいよゲームの完成が近づいてきました!
無駄にオンラインランキングを搭載してみる
ここまでだいたい一週間ちょっとで作りました。
当初1ヶ月くらいかけて作ることを想定していたので、意外といいペースで作業が進んでいます。
もうちょっとだけやる気が持続しそうなので、オンラインランキングを導入してみることにしました。
難しいんだろなと思っていましたが、naichi様が作ってくださった神アセットのおかげで、簡単に導入することができました!大感謝!
オンラインランキングが過疎ったらどうしようと、不安で足と前歯がガクガクになりましたが、思い切って搭載することにしました!
ゲーム完成とまとめ
ゲーム完成!
こうして制作開始から約2週間でゲームが完成しました!

思ったより早くできた!
ゲームのタイトルはギリギリまで悩みましたが、「ドブ川で発見!!てぷっち」という、超斬新なタイトルが頭に降りてきました。
そして完成したゲームがこちら!

無料でプレイできるので、ぜひ遊んでみてくださいね!(一応スマホでも遊べます!)
早速鼻息を荒くしてTwitterにアップしたところ、想像以上に多くの反応をいただくことができました!
オンラインランキングも想像以上に賑わったので、搭載して本当に良かったです!

ランキング上位は僕のテストプレイよりもスコア高いです
ゲーム制作の感想とまとめ
2作目のゲームを制作して思ったことは、「やっぱりゲーム作りは楽しい!」です。
バグにハマると心が折れかけますが、解消したときに自分の成長を感じることができます!(たまに諦めてガサッとコード消すけど)
自分が制作したゲームが動くことに感動しますし、プレイした感想をいただけると涙が出ます!

涙が出るは言いすぎました
この記事で僕が1番伝えたかったことは、意外とテキトーなプログラムでもゲームは作れるよ!ってことです。
たぶん僕が作ったゲームは、プロの人が作るとコードが半分以下になると思います。
もしこの記事を読んで「自分でもゲーム作れそう!」と思った方は、ぜひ「Unityの教科書」を手にとってみてください〜!
その後、、、今度は一週間でシンプルアクションゲームを作りました!


また積みゲーが・・・