方向音痴ゲーマーのテップウ(@teppu_game)です!
僕はゲームが大好きで、ゲームレビューメインのブログを運営しています。
先日、ゲーム好きが高じて初めてオリジナルのシューティングゲームを制作しました!
開発環境は、Unity(ユニティ)というゲームエンジンの無料版です。
この記事では、素人がゲーム制作に初挑戦した感想をゆるーく書いていきます!
- 個人のゲーム開発に興味がある
- Unityでゲーム制作を考えている
- 未経験者の勉強方法が知りたい
ゲームを制作しようと思った経緯
まず、僕がなぜ突然ゲーム制作をしようと思ったか、その経緯を書いていきます。
僕がゲーム制作をしようと思った理由は主に以下の3つです。
- 単純にゲームが大好きだから
- ゲームレビューの記事を書くにあたって、製作者側の苦労も知った方がいいと思ったから
- 友人にプレゼントするため
1番大きな理由は、単純にゲーム好きが高じて制作してみたくなったからです。
ゲームが好きな方なら1度は考えたことがあるんじゃないでしょうか?
自分の好きな要素を詰め込んだ「僕が考えた最強のゲーム」を作ってみたい!と。
しかし、実際に作ってみよう!と行動に移す人は少ないのかもしれません。
苦労するのが目に見えてますからね、、、
そんな中僕は無謀にもチャレンジしてみました!!
果たして苦労したのか!?していないのか!?
(もちろん苦労しました)
ゲームエンジンにUnityを選んだ理由

そもそもゲームって何でどうやって作るんだ?
そんな疑問から僕のゲーム開発はスタートしました。(そこからかい!)
分からないことはもちろんネットで調べます。
いろいろ調べた結果、PCにゲームエンジンをインストールする必要があることが分かりました。
ゲームエンジンはいくつか種類がありますが、その中でも僕はUnityを選択しました。
Unityを選んだ理由は以下の3つです。
- 初心者向けである
- 基本的に無料で利用できる
- 個人開発で広く使用されている
初心者向けである
Unityについて調べていると、「初心者向け」という言葉をよく目にしました。
「初心者向け」という言葉に弱い僕は、この時点でUnityの利用をほぼ決めました。
基本的に無料で利用できる
Unityは基本的に無料で利用することができます。
途中で挫折するかもしれないのに、有料のゲームエンジンを購入する勇気はないですからね。(挫折前提)
「基本的に」と書いたのは年商の条件があるからですが、初心者の個人開発の場合は無料版でほぼ問題ありません。
個人開発で広く使用されている
Unityは個人開発で広く使用されているようです。
広く使用されているということは、その分ネットの記事も多いわけです。
ゲーム開発に行き詰まったときに、情報が大量にあるのは心強いと思います!
Unityの勉強方法
早速Unityをインストールして絶望の巻
勢いで突っ走るタイプの僕は、ゲームエンジンをUnityに決めた後、早速PCにインストールしました。
インストール自体は割とすんなりと完了しましたが、ソフトを起動してみて絶望しました。

なにこれ?
何も分からないんです。ええ、さっぱりと。
いくら初心者向けとはいえ、勉強せずにゲーム開発なんて無理なんですね(そりゃそうじゃ!)
しぶしぶ勉強することにした勉強嫌いの僕ですが、どうやって勉強しようかを考えました。
勉強方法としては以下の4つが考えられます。
- ネットで初心者用の記事を調べる
- 初心者向けの本を購入する
- 初心者向けの動画を視聴する
- プログラミング講座を受ける
ネットでUnity初心者の勉強方法を調べていると、プログラミン講座を受ける方法と、少し難易度は上がってしまうが初心者向けの本で独学する方法が多く挙げられていました。
あまりお金をかけたくなかった僕は、とりあえず本で勉強をすることにしました。(後ほど苦労することに・・・)
独学が苦手な方や、苦労せずにゲーム制作をしたい方は、プログラミング講座を受けることをお勧めします。

Unityの教科書を購入
Unityの初心者向けの書籍はいくつかありますが、僕は「Unityの教科書」という本を購入しました。
理由はAmazonのレビューが非常に良かったのと、「教科書」といういかにも初心者向けのワードに信頼感を覚えたからです。
こちらの本をもとに勉強を開始するわけですが、結果、購入して大正解でした。
サンプルのゲームを作っていく形で勉強を進めていくんですが、段階的にプログラミングの基礎やUnityの機能を学ぶことができます。
カラーで見やすく、かわいいネコのイラスト付きなので楽しく学ぶことができました。

とにかく初心者に寄り添った内容になっています!
ゲーム制作開始
制作するゲームのジャンルを決める
「Unityの教科書」という偉大なる書籍で確実に成長を実感した僕は、早速オリジナルゲーム制作に取り掛かろうと思いましたが、重要なことを思い出します。

何のゲームを作るか決めてなかった・・・
特に良いアイデアがあったわけではなく、「ゲームを開発してみたい!」という勢いだけで行動していたので、この時点で制作するゲームのジャンルを決めていませんでした。
好きなゲームジャンルは「ローグライク」「メトロイドヴァニア」「ノベルゲーム」ですが、さすがの僕でも初心者には作れないことが分かります。
好きなゲームと作れそうなゲームを天秤にかけた結果、横スクロールシューティングゲームを制作することに決めました。
シューティングゲームにした1番の理由は、セーブの仕組みを考えるのが大変そうだったので、アーケードタイプのゲームにしようと思ったからです。
シューティングゲーム制作に関するネットの記事も大量にありそうなので、「まあ、作れるっしょ!」という軽い気持ちで制作をスタートさせました。
ドット絵を描き始める
ジャンルがシューティングゲームに決まったので、いよいよ制作開始です。
さあ!プログラミングじゃ!!!と意気揚々と作業を開始しますが、敵を導入しようとしたところで作業がストップしてしまいます。

敵キャラクターの素材がないじゃん・・・
ゲームを作るためにはプログラミングだけでなく、キャラクターやアイテム等のイラスト、SEやBGMなど様々な素材を準備しないといけないんですね!そりゃそうじゃ!(アンコール)
Unityには「アセット」と呼ばれるゲームの素材が大量にあります。(有料・無料どちらも大量です!)
無料のアセットだけでも、クオリティの高いゲームが作成できるようですよ!!
ただ、無駄にオリジナリティを出したかった僕は、ほとんどアセットを使わないでゲームを制作することにしました。(爆発のエフェクトにだけアセットを使用しました)
普段イラストを描くわけではなく、ペンタブは持っていなかったので、『edge』というドット絵を描けるフリーソフトを使用して、マウスでポチポチとイラストを描きました。
敵の数だけドット絵を描かないといけなかったので非常に大変でしたが、微妙にドット絵を描くのがうまくなっていきました(笑)


ドット絵はまとめて描いたわけではなく、敵を実装するたびに描いていきました。
序盤の敵と終盤の敵でドット絵のクオリティが変わる、長編漫画のようなゲームになりました。
プログラミング開始
ドット絵の作成と並行してプログラミングも開始していましたが、やはりここが1番苦労しました。
偉大なる教本『Unityの教科書』で基礎は学んでいましたが、いざオリジナルゲームを作成しようとすると分からないことがどんどん出てきます。
ネットで調べると記事が大量に出てくるので、都度調べながらプログラミングしていきました。
ここからはプログラミングで苦労した点を書いていきます。
プログラミングで苦労した点
三角関数を覚えていない
ゲームを作成していると、詳しい説明は省略しますがプログラムで「三角関数」を使うことが多くあります。
みなさん、三角関数を覚えていますか・・・?
あのサイン、コサイン、タンジェントってやつですね!
残念ながら僕は全く覚えていませんでした!!
学生時代に、「大人になったらこんなの絶対使わないだろ~」と思っていたツケがまさかのここに回ってきました。
さすがに三角関数をイチから学びなおす気力はなかったので、なるべく使わないようにしました。
その結果、弾の軌道がほぼ直進する残念なシューティングゲームになりました・・・
もし学生の方がこの記事を読んでくれていたら、勉強はちゃんとしましょうね!

ビーバーとの約束だよ!
新しい要素を組み込むとバグる
最初から構想を練ってゲーム制作を開始したわけではなく、作っていくうちにどんどん要素を足していくような形でゲームを制作しました。
素人がネットで調べながら勢いで作成しているので、プログラムコードはめちゃくちゃです。
そこに思い付きでコードを追加すると、ほとんどの確率でバグります。
ゲームが実行できないようなバグだと案外原因を探しやすいんですが、中途半端にバグると原因を探すのが非常に大変です。
1つのバグを修復するのに3時間以上かかったこともありました。

だいぶ根気は必要です!
難易度調整が難しい
ゲーム制作で1番難しかったのは難易度調整でした。
ゲームというのは簡単すぎても、難しすぎてもおもしろくないものです。
更にプレイする人によって難易度の感じ方は変わってくるので、万人向けのゲームを制作するには難易度を選べるようにするしかないのかもしれません。
僕は難易度選択まで作る気力がなかったので、1つだけの難易度に絞った結果、高難易度のゲームが完成してしまいました。
高難易度になってしまった理由は3つあります。
- テストプレイを重ねていくうちに、自分が上手になって難易度が分からなくなる
- 少ないボリュームをごまかすために難易度を上げたくなる
- 簡単にクリアされてしまったらなんか悔しいと思ってしまう
インディーゲームに高難易度の作品が多いのも、この3つの理由ではないかな~と思います。
シューティングゲームの場合は、敵が出てくるタイミングなどのバランスを調整するのも難しいです。
バランス調整に頭を抱えた僕は、敵の出現をランダムにする力技で解決?しました。(自称ローグライトシューティングゲーム)
一応、時間経過とともにランダム生成される敵の数と種類が増えていくようにして、ステージ内でだんだん難易度が上がるようにしました。
バランス調整は非常に難しいことが分かったので、今後難しいゲームを購入してしまっても、「こんなのクリアできるか!ムキー!」とはならないと思います。(今までもムキー!とはなってませんでしたが笑)
シューティングゲーム完成
度重なるバグに遭遇して途中心が折れかけましたが、なんとかゲームを完成させることができました!!
途中何回か期間が空いてしまったので正確ではありませんが、半年ほどかかったと思います。
▼完成したゲームがこちら!

無料でプレイできるので、ぜひプレイしてみてくださいね!(Windowsでプレイできます)
このゲームの見どころは、途中で力尽きてクオリティがガタ落ちする背景です(笑)
完成後、早速鼻息荒くしてツイートしたところ、ありがたいことに「おもしろい!」「個人でつくれてすごい!」というコメントをいただきました!

感想コメントが本当にうれしいです!!
こんな素人が作成したゲームをプレイしていただいたことに感動です!!ありがとうございます!!
しかし、予想していた通り「難しい」という声も多数いただいたので反省ですね。
ゲームを制作した感想まとめ
ゲーム制作は苦労した部分が多かったですが、それ以上にプログラミングが楽しかったです。
最初はキャラクターが動くだけだったのが、弾を発射するようになって、当たり判定ができて、ボスが登場して・・・と、だんだんゲームらしくなっていくことに感動しました!
また、Unityが初心者向けだと言われる理由もよく分かりました。
本来であればプログラムコードを何行も書かなければいけないような処理を、Unityでは簡単に組み込むことができます!
割と直感的に操作できるので、楽しくゲーム制作ができますよ~!
本当はもっと詰め込みたい要素もあったのですが、自分の気力と素人スキルではこれが限界でした。
やはり本格的なゲームを作りたい場合は、プログラミング講座を受けるべきだったのかなと思います。

クオリティはひとまず置いといて、一応ひとつのゲームを完成させたのはいい経験だったと思います!
製作者側の苦労がよく分かったので、今までよりも愛のあるゲームレビューが書けるような気がします。
ぜひゲームレビュー記事も読んでいただけたらうれしいです!!

シューティングの後もゲーム作ってます!
