Unity + C# でゲームを作るのは意外と簡単だというお話

本記事は、何か布教したいエンジニア AdventCalendar 3日目の記事です！！！
周りの人に声をかけまくってみたものの、既に2度目の私の出番が到来してしまいました。
僕は皆の頭の中を覗きたくてこのカレンダーを作ったんだ……！
お願いです！誰か記事を書いて！！！！

## 概要
ゲーム好きな人であれば、1度は「ゲームを作ってみたい」と思ったことがあるのではないでしょうか。
かく言う私もその1人です。
大昔は、プログラムで1から、描画やBGMを鳴らすといった機能まで作らなければならず、
ソフトウェア面、ハードウェア面、数学、物理の知識など、幅広く、深い知識が求められていたとかいないとか。
ですが、現在はUnityやUnreal Engineといったソフトウェア達に基本的な機能や処理は全て実装されていて、
自分はゲームの仕組み作りに熱中できるのです！
本記事では、自身がゲーム作りに挑戦した時の事を振り返りながら、
意外とゲームを作るのは簡単だぜっていう事を広められたらと思います。

## 1. 参考書を読む
最初は、いきなり作りたいものに取り掛かるのではなく基礎を固めようと参考書に手を出しました。
ネットにもチュートリアル記事は沢山ありますが、体系的にまとまっているものは多くありません。
今の時代、本のほうが逆にかかる労力が少ない…！と思って、以下の本を読みました(1勝2敗)

### Unityの教科書 Unity 2018完全対応版
初心者向けに画像を多く、出来るだけ平易な言葉でゲーム開発について教えてくれます。
ゲーム開発に必要な素材もダウンロード出来ますし、手堅い一冊でしょう。
この本の特徴ではありませんが、この本の著者は、Unityの開発者を手助けするようなブログを書かれています。その内容が結構使えました。
まず、Unityを扱う上で必要な考え方の基礎は、しっかりとこの1冊でついたと思います。

[Unityの教科書 Unity 2018完全対応版 2D＆3Dスマートフォンゲーム入門講座](https://www.amazon.co.jp/Unity%E3%81%AE%E6%95%99%E7%A7%91%E6%9B%B8-Unity-2018%E5%AE%8C%E5%85%A8%E5%AF%BE%E5%BF%9C%E7%89%88-2D%EF%BC%863D%E3%82%B9%E3%83%9E%E3%83%BC%E3%83%88%E3%83%95%E3%82%A9%E3%83%B3%E3%82%B2%E3%83%BC%E3%83%A0%E5%85%A5%E9%96%80%E8%AC%9B%E5%BA%A7-%E5%8C%97%E6%9D%91-%E6%84%9B%E5%AE%9F-ebook/dp/B07FGG9LGB/ref=dp_kinw_strp_1)

### Unity&宴「ノベルゲーム」開発入門 (I・O BOOKS)

ノベルゲーム及び、ゲームの会話部分を自分で開発するのではなく、パッケージに任せてしまおうと思って、宴を購入しました。
紹介している参考書は、その宴の入門本です。
中身は、公式サイトで紹介されていることがそのまま載っているイメージです。
今まで開発をやったことが無い人間、例えばシナリオライターが宴を利用して文字起こしを担当するような事があれば有用かもしれません。

[Unity&宴「ノベルゲーム」開発入門 (I・O BOOKS)](https://www.amazon.co.jp/gp/product/4777520528/ref=ppx_yo_dt_b_asin_title_o09_s00?ie=UTF8&psc=1)

### ゲーム作りのはじめかた　Unityで覚える企画からレベルデザインまで
あまりにも内容が薄くて倒れるかと思った一冊。
本書のサブタイトルは、「Unityで覚える企画からレベルデザインまで」である。
つまり、ゲームの企画部分からゲームを開発して、その難易度調整までの一連の流れ全てを解説してくれる本という訳だ。
ゲーム開発を行っていく上で、どのように企画を練って実装に落としていくのか知りたかった私にはうってつけの本だと思って当時は購入した。
しかし、だ。本書は解説する部分が広すぎて、何もかも浅かった。
全てにおいて、「何故、どうしてそうするのか？」といった部分がおいてけぼりになっていて、言われるがままに「こうした方が面白そうですよね！」的な言葉で企画を作った気になり、「おまじないとして覚えてくださいね！」で全て流されているから、気付いたら言われたままのゲームが出来た。でも何故どうしてそうなったのかは全く分からない。といった状態に陥る。
小学生や中学生くらいの時点で、プログラムを利用してゲームを作りたい子が居れば有用かもしれない。
ただ、もし最初のステップとして本書を選ぼうとしているのであれば、RPGツクールなりなんなりを利用して、まずは形のあるゲームを完成させる所から始めたほうが良いと思う。

[ゲーム作りのはじめかた](https://www.amazon.co.jp/%E3%82%B2%E3%83%BC%E3%83%A0%E4%BD%9C%E3%82%8A%E3%81%AE%E3%81%AF%E3%81%98%E3%82%81%E3%81%8B%E3%81%9F-%E3%81%82%E3%81%99%E3%81%AA-%E3%81%93%E3%81%86%E3%81%98/dp/4797377364/ref=sr_1_1?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&keywords=%E3%82%B2%E3%83%BC%E3%83%A0%E4%BD%9C%E3%82%8A%E3%81%AE%E3%81%AF%E3%81%98%E3%82%81%E3%81%8B%E3%81%9F+Unity%E3%81%A7%E8%A6%9A%E3%81%88%E3%82%8B%E4%BC%81%E7%94%BB%E3%81%8B%E3%82%89%E3%83%AC%E3%83%99%E3%83%AB%E3%83%87%E3%82%B6%E3%82%A4%E3%83%B3%E3%81%BE%E3%81%A7&qid=1575283765&sr=8-1)

## 2. Unityの公式チュートリアルを行う
遠回りもしたものの、Unityの基礎は固まった。
ただ、今までの参考書では本当に簡単なゲームしか開発していなかったため、
実際に自分がゲームを開発していくビジョンが見えなかった。
その為、Unity公式が出しているチュートリアルに手を出しました。
今後開発していくにあたって、3Dゲームの場合は素材の入手が大変だろうということで2Dのチュートリアルです。
また、ゲーム開発においてシューティングゲームは入門に丁度いいと聞いたことがあったので、シューティングゲームを選びました。
残念な事に、Unity公式のアップデートによって私が触れたチュートリアルは無くなってしまったようです。
もし貴方がチュートリアルを行うのであれば、自分が漠然と開発してみたいと思っているゲームジャンルに近い物を選ぶと、オリジナルゲームを開発する時の大きな助けになるでしょう。

1つ開発に関するアドバイスをしておくと、作成したゲームをビルドすると文字が表示されない現象が発生します。
文字を出力するオブジェクトには、フリーでダウンロードしてきたフォントを選択することをオススメします。

## 3. 実際にゲームを作ってみる
実際に作成したゲームがこれです。
[ブラザーを救え！](https://unityroom.com/games/help_brother)

私はバーチャルYoutuberの富士葵さんが大好きで、またゲームを作ろうとしていた当時は彼女の活動1周年と丁度近い時期だったこともあり、彼女にまつわるゲームを作ろうと思い立ちました。

[【富士葵】なんでもないや/RADWIMPS 『君の名は。』 【2018 Cover】](https://www.youtube.com/watch?v=aDnSbeC_kyw&list=PLFPYP7GcgzUQD-sMeyh_OO1DGIA4ez52A&index=54)

歌劇団と呼ばれる、同じく富士葵さんが好きな知り合いも多くいましたが、成功するかも分からない初めて作成するゲームに彼、彼女達を巻き込めないと思い、素材を始め全て自身で作成しました。
絵だけではなく、ゲームバランスも皆無の内容に今見ると笑ってしまいますが、当時は結構真剣でした。
敵ごとに移動パターンやライフ、射撃パターンを用意したり、ボスっぽい演出方法を考えたりなど、結構工夫を凝らすのは楽しかったですね。
チュートリアルで作成したのも、実際に作成したのもシューティングゲームだったこともあり、作品自体は1,2週間程で完成しました。

## 4. 制作してみて思ったこと
オブジェクトに動作を割り当てていく感じなので、感覚としてはクラスにメソッドを作成していっているような感じでした。
ただ動かすだけなら簡単ですが、ゲームにおいて何が面白い要素なのか考えることが面白かったと同時に非常に難しかったです。
また、目立たない、自分が当たり前だと思っているオブジェクトの動作が意外と難しいというか、実現できなかったりで、もどかしい。
ゲーム規模が大きくなってきたら、60FPSを保つために創意工夫したりしないといけないし、様々な能力が要求される世界なんだなぁと思いました。

## 5. まとめ
端的にまとめると、
1. 読みやすいUnityの入門書を1冊読みながら手を動かす
2. Unityのチュートリアルを1本やる。

上記の2STEPさえ踏めば、簡単なゲームは作れるようになってるハズ。

## 6. あとがき
シンプルなゲームを作成するだけであれば、少し本を読めば結構簡単に作成出来るんだ。というのが、一連の制作を通してみての感想でした。
ただ、世の中に出ているようなゲームを作成するためには、やっぱり非常に高度な技術が要求されるし、イラストやBGMなど自分一人で賄うのは非常に大変でしょう。
しかし、大変だと分かっていても、周りをなんとか巻き込んでもっとゲームを作ってみたいと私は思いました。
まだシンプルなゲームの制作を続けていて、あまり人も巻き込めていませんが、少しずつ前に進んでいきたいです。
本記事の情報を通して、僅かな人数でも手を動かしてみようと思って、その中のたった1人でもゲーム開発をしてみようと踏み出すことが出来たのであれば幸いです。