Unityで初学者から中級者までを駆け抜けるためのおすすめ書籍

# 2024年度バージョンを作成しました
こちらをご覧ください

https://qiita.com/ryo24/items/31964102ad25246205b1

# はじめに
Unityの書籍紹介は色々あるのですが、初学者へのおすすめ書籍まとめという記事が多い印象です。それ自体はいいのですが、
初学者が、一通り読んで学んだ、その先に何ををすればいいのかというところまで幅広くまとめている記事はあまり見かけないなと思ったので作ります。
Life is Tech ! のCampやSchoolで中高生という初学者と日々コミュニケーションをしているので初学者から中級者がやっぱりメインになりますが、頑張って上級者になるための道のりも引いてみます。

### 読む上での注意
基本的には、やっと中級にやってきた筆者がこれまで読んできた書籍が中心です。
上級向けとして、ゲームエンジンのアーキテクチャや、ゲームエンジンに頼らない実力が必要と考えている方もいるかもしれませんが、対象から外れていますのであしからず。

また、個人の好みによって同系統の別の方がおすすめ、ということもあるかと思います。
そして著者が読んでいないUnity本も数多あります。
**「この場合はこの書籍がおすすめ」**ということがあればぜひコメント欄で教えて下さい。
また、書籍画像とリンクはAmazonサイトから主に引用しています。

## 対象者
- **初学者：これからUnityを覚えたい！プログラミングを学んでみたい！という人**
    - いわゆるプログラミング初心者
- **中級者：Unityの基本的な動作は覚えられた。ゲームを作ってみた人**
    - ゲームは作ってみてからの伸びしろが大きいですよね！
- **上級者：自分で1つのゲームはすらすら作れるようになって、さらにレベルアップしたい人**
    - いわゆるデザイン領域もこのあたりから入ってくるのですが、１人で作ることを今回は想定しています。

# 初学者から中級者
初学者から中級者までは一直線に駆け抜けていきましょう！

## 初学者向け（Unityとプログラミングの基本）
いわゆる初心者向けまとめ記事では、この入門教科書を色々紹介してくれていることが多いのですが、
初心者にとって大事なことは、**様々な参考書使うより1冊を信じてしっかりやり遂げること**だと思っています。
その思いを信じて、今回は思い切って1つのみしか紹介しません！

### [Unityの教科書 Unity 2020完全対応版](https://amazon.co.jp/dp/481560665X/)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153766/eca1def9-d037-e8f0-9f2a-a57eb106e124.png)


いわゆる「ねこの本」です。
2Dの内容が多めとなっているが、基本的なUnityの操作からプログラミングまでを覚えることができる。
とくにいいな、この本を紹介したいなと思ったのが、**ゲームの作り方を簡潔に説明している点**。
わかりやすいゲームでのアクションのギミックだけでなく、「監督役、工場」などのわかりやすい単語で、
ゲームを管理する役割までを説明されている点は、自分が人に教えるときに見習いたいと思っています。


## 中級者向け（1冊を信じてやり遂げた人に贈るもう1冊）
初学者向けよりは詳しく記載されているが、UnityやC#についての基本から一気通貫で網羅している書籍をもう一度やりましょう。
いわゆる「強くてニューゲーム」です。ここでの一冊目は著者がまさにUnityを勉強し直すときに信じてやり遂げた書籍から紹介します。

### [Unity5 3D/2Dゲーム開発実践入門 Unity2019対応版](https://amazon.co.jp/dp/480261165X/)

<img width="300" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153766/7e8cd932-0f70-0c6f-aa89-a49f5b66c2b2.png">



去年辺りまで、Unity5の本だったので紹介しづらかったのですが、2019対応版が発売されたのでこれからは堂々と紹介できます。
ゲームロジックの考え方がわかりやすくて有用だったり、GI（グローバルイルミネーション）など演出として有用な部分も
丁寧に説明されているので、もう一冊基本から初めて、だけど基本だけじゃなく更にゲームを作るための方法を学ぶことができる
素晴らしい書籍だと思っています。



## 中級者から上級者になるための三種の神器！
さてさて、**「それでは上級編！」**といきたいところですが、、
Unityは、そしてゲームづくりというものは、とても奥が深いのです。
そのため、もう少しだけ、ゆっくりしっかりとレベルアップをしていきましょう！
それぞれ、下記で紹介する上級向けのジャンルを代表する書籍です。
まずは、この3種類の方向性に進むとといいのかなと思います。


- **[Unityの幅広さを知る：「Unityデザイナーズバイブル」](#unity-デザイナーズバイブル)**
    - まずは、Unityでできる表現の幅広さを体験してみましょう！
        - UIの作り方の記事もあるのでおすすめです。
    - プログラミング寄りが好みなら、プログラミングバイブルもOKです
- **[プログラミング理解のためにC#を学ぶ：「なるほどなっとくC#入門」](#新標準プログラマーズライブラリ-なるほどなっとく-c入門)**
    - 特にプログラミングも一緒に始めたという人に向けておすすめです。
    - UnityとC#を分けて考えられるようになりましょう！
- **[ゲームを面白くするためにゲームデザインを学ぶ：「ゲームプランとデザインの教科書」](#ゲームプランとデザインの教科書-ぼくらのゲームの作り方)**
    - 理論の体型より具体的な例を重視してこちらを紹介します。
    - まずは、自分の作ったゲームを面白くする手法を学んでみましょう。


# 上級者向け
上級編からは、様々なジャンルに分かれて様々な書籍があります。
この記事では、筆者の考えから学びやすいだろうという順番に並べていますが、本質的に順番はないと考えています。
順番を来にせず、興味があるジャンルから学んでいってください。

そして…ここからは遠慮なく物量作戦です。
後半の分量の多さにびっくりさせてしまったかもしれません。
それだけゲームづくりとは複合的で総合的なモノづくりだと思っています。
だからこそ創ることが面白いのです。
それでは上級者への道のりを覗いてみましょう！

## ゲームメカニクス
ゲームメカニクスというのは幅広く様々なな意味を持つ単語なのですが、ここでは主にプログラミングやUnityでの操作を多く含む
ゲームの仕組みづくりというものをゲームメカニクスと表しています。

### [Unityゲーム プログラミング・バイブル](https://amazon.co.jp/dp/4862464130/)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153766/95fb61a5-70ad-8e1d-228f-4305166c09f1.png)

Unity2018までで、できることを利用した、まさに機能のバイブル。
章ごとに完結しているので、気になった技術から試すことができます。使ったことがない機能を使ってみるという点でもおすすめ。
ただ、Unityは最近の進化が早いので、Unity標準でできることがAssetで紹介されていたりするものもあります（Anima2Dなど）。

### [Unity デザイナーズバイブル](https://amazon.co.jp/dp/4862464777/)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153766/16b2996c-654b-02d1-a9d5-9b6918bd6f1e.png)


プログラミングバイブルが出版されたときの感想は上記の説明に加えて実は、「ProBuilderがあればベストだった。。」と思っていました。
が、まさにそのような声に応えるようなカタチで出版されたプログラミング・バイブルの姉妹編が出版されました！
デザイナーと名前にあるように、プログラマーだけじゃなく幅広い人にUnityの使い方を紹介してくれています。
こちらも素晴らしい書籍なのですが、一点だけ注意点があります。
それは、Amazonnoレビューでもある通り、誤植が多い点です。
ここまでいろんな書籍を通して作品を作っていれば自己解決できるレベルなのですが、再販が行われる際にはブラッシュアップされているとうれしいですね！


### [ゲームの作り方 改訂版 Unityで覚える遊びのアルゴリズム](https://amazon.co.jp/dp/B01D1QNN6C/)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153766/0123844a-2193-8d7b-6cec-f8f11dd82831.png)


そろそろ、Unityの基本だけではなく、ゲームメカニクスの作り方も気になってきます。
実際ありそうなゲームサンプルにて以下のようなの実現方法を学ぶことができます。

- タッチ操作
- 迷路のCSVファイル管理
- 複数カメラの利用
- ミスタードリラー的ブロックゲーム
- シューティングのロックオン管理

サンプル的な意味合いが強いので、考え方を理解して自分で作ってみることをおすすめします！


## ゲームデザイン
こちらでは、ゲームメカニクスに比べ、ゲームという仕組みそのものを面白くするための書籍を紹介します。
ゲームデザインという言葉はいろいろな使われ方をしますが、ここではまずはゲームをより面白くするためのゲーム全体の仕組みと考えてみてください。

### [ゲームデザインバイブル](https://amazon.co.jp/dp/4873118018/)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153766/f61ad198-a475-158d-1982-99b6803df851.png)

これまで、ゲームデザインを学びたいというときに紹介する本は迷っていることが多かったです。
ゼビウスの遠藤さんによる[ゲームデザイン講義実況中継](https://amazon.co.jp/dp/4797367849/)や、オライリーによる[レベルアップのゲームデザイン](https://amazon.co.jp/dp/4873115639/)などを伝えてきましたが、2019年についにこの書籍が紹介されました。
バイブルという名前

### [ゲームプランとデザインの教科書 ぼくらのゲームの作り方](https://amazon.co.jp/dp/4798053503/)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153766/99af48c0-beab-91d9-1ad0-5ed50d9afb05.png)

この後出てくる、リーダブルコードの部分でも触れているのですが、日本の書籍と海外の書籍は、本というものの作り方が少し違うなぁと感じる時があります。
これは個人的な意見なのですが、日本の書籍の方がよりストーリー的でリスト的で、より具体的な印象を受けます。
ゲームデザインバイブルはシステマチックすぎるなぁと感じた人には、こちらの書籍を読んでみることをおすすめします。
後半にある実際のゲームクリエイターの方々によるインタビューとノウハウ紹介には、刺激を受けると思います。

### [3Dゲームをおもしろくする技術 実例から解き明かすゲームメカニクス・レベルデザイン・カメラのノウハウ](https://amazon.co.jp/dp/B00U17813K/)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153766/76bc094e-7bb5-bc04-d388-8f0675ef6998.png)

こちらの本には、プログラミングは一切出てきません。
ただひたすらにデジタルゲームをゲーム設計としてのメカニクス（格闘ゲームのタイミング設計など）、レベルデザイン、カメラテクニックなどから
分析しています。このような書籍が他にないからこそ、そして実際のゲームが題材だからこそ自分のゲーム体験を省みることにも繋がります。

### [ゲームメカニクス大全](https://amazon.co.jp/dp/4798164739/)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153766/cb8fb439-7bf5-ff98-46fc-f116c4b5268b.png)

ゲームという長い歴史の中で、デジタルゲームが生まれたのはほんの最近に過ぎません。
ゲームというものは、テーブルゲーム、ボードゲームと一緒に発展してきました。
この本では、そのようないわゆるアナログゲームに現れるメカニクスを網羅し分類に挑戦しているという意欲的な一冊です。

### [おもしろいゲームシナリオの作り方 ―41の人気ゲームに学ぶ企画構成テクニック](https://amazon.co.jp/dp/4873116821/)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153766/beaf951f-b159-cbda-91bb-72360d1c878e.png)

ゲームデザインの中には、もちろんゲームのフィクションというものも含まれます。
この本は、その中でもゲームシナリオだけに注目している本です。
しかし、この中で出てくるヒーローズジャーニーという考え方は確実に学びにつながるのでそこだけでも読む価値があります。
そして、本当に様々な面白いゲームの面白いシナリオを紹介してくれるのであなたのインプットも広げてくれることでしょう。

### ゲームデザインについてその他の書籍
まだまだ紹介したい本はたくさんあるぐらい、ゲームデザインとは奥深いのですが一旦ここまで。

- [HALF-REAL](https://amazon.co.jp/dp/4908124086/)
    - ビデオゲームとは何かを考える
- [ゲームの企画書](https://amazon.co.jp/dp/B07PHNH81D/)
    - ゲームを作ったクリエイター達は何を考えていたのか
- [中ヒットに導くゲームデザイン](https://amazon.co.jp/dp/4862462812/)
    - この本の目的は原題にあらわれています。
    - *Game Design Workshop: A Playcentric Approach to Creating Innovative Games*：革新的ゲームを創るためのプレイ中心アプローチ
        - つまり、ゲーム作りのプロトタイピングについて考えられているものです。


## プログラミングとして、C#を学ぶ

プログラミングは、深く知れば知るほど面白い世界です。
一緒にC#という言語と考え方を知っていきましょう。

### [新・標準プログラマーズライブラリ なるほどなっとく C#入門](https://amazon.co.jp/dp/429710458X/)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153766/0386b87c-e3c6-55d8-938d-cc436433a79b.png)

### [スラスラわかるC#](https://amazon.co.jp/dp/4798154636/)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153766/6fcdfa23-939b-c540-baff-6dbf1e806774.png)

前述のなるほどなっとくなどで、クラスやポリモーフィズムなどを理解したら、もう少し深くC#について学んでみましょう。
匿名関数やデリゲートなど、プロパティなど、もう少し深ぼってC#を改めて知ること画できます。

### [実戦で役立つ C#プログラミングのイディオム/定石&パターン](https://amazon.co.jp/dp/4774187585/)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153766/6eb111d9-e6ac-9a3c-8dc3-14bf74fedb6d.png)

上記2冊でC#という言語を学んだら、一歩進んだC#の書き方を身に着けましょう。
ゲーム制作のための書籍ではないのですが、C#らしいコードを学ぶことができます。

### [UniRx/UniTask完全理解 より高度なUnity C#プログラミング](https://amazon.co.jp/dp/4048930753/)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153766/663b5b0f-60cb-cf8f-5c5c-38917166457a.png)
上級以上のレベルになってしまうと思われますが、ゲーム制作で非常に便利な考え方はリアクティブプログラミングです。
Unityでは、実質的にUniRXが当てはまります。さらには、C#のTaskをUnity向けに拡張されたUniTaskについても合わせられた、とりすーぷ先生の書籍も紹介されてください。
（筆者もこれから読んで、まずは完全理解したと言えるようにがんばります。）

## コーディング一般

### [ゲームプログラマのためのコーディング技術](https://amazon.co.jp/dp/4774174130/)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153766/02885ec2-2dbd-42f6-8bd4-9dca27bca540.png)

そろそろ、コードが煩雑になってきて管理が難しくなってくる頃。
リーダブルコードももちろんおすすめだけど、こちらのほうが実践的内容から始めるので初学者にはわかりやすいと考えています。
（また、リーダブルコードはTHEアメリカン書籍という体裁なため、普段本を読まない日本系の方だと読みづらいのではないかとも感じています。）

この本では、命名の原則からオブジェクト指向のクラス設計などまで、実践的にプログラミングの設計を学ぶことができます。
特にゲーム制作に役立つ形での[SOLID原則](https://postd.cc/solid-principles-every-developer-should-know/)のわかりやすい説明は多くの方に紹介したいです。

### [プリンシプル オブ プログラミング3年目までに身につけたい一生役立つ101の原理原則](https://amazon.co.jp/dp/4798046140/)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153766/6cf026f1-e8d7-5bdd-64df-2621e0f48df9.png)

KISS？DRY？SOLID？YAGNI？疎結合??
などなどプログラミングを調べていると出てくる様々な先人たちの研鑽の結果を手早く知ることができます。
この本にはコードは出てきません。コードを書くプログラマーがどのように考えているのかを学びましょう。


### [リーダブルコード](https://amazon.co.jp/dp/4873115655/)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153766/e99ed5a3-e7bb-2b9f-3e77-a63495a8730a.png)
もちろん、リーダブルコードをおすすめさせてください。この本に関しては、様々な方が紹介をしているので、詳しくは調べてみてください。
命名についての項目などとても有益なことばかりが記載されています。


### [アルゴリズムとデータ構造](https://amazon.co.jp/dp/4065128447/)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153766/a0e14744-e731-0cec-d9d5-644a30ca0e1d.png)

ゲームを作っていると、Webアプリケーションやアプリ開発に比べて早い段階で、数多くのデータやオブジェクトを管理する、アルゴリズムを構築する
必要に迫られると感じています。
（もちろんWebアプリケーションなどでもありますが、ライブラリがとても有用なため中級者あたりまでは意識することが少ないと感じます）
そのため、どこかでしっかりアルゴリズムやデータ構造を学びたいとなった場合はこちらです。
そして、穴掘り法による迷路やA*によるその解法などを実装してみましょう！

## デザインパターン
さて、デザインパターンです。ここまで学習を進めていると、デザインパターンという言葉は様々なところで聞いたことがあるはずです。
デザインパターン自体は、建築家アレグザンダーのパターンランゲージという考え方をモノづくりに応用しようとする試みがあり、
そしてGoFによる[オブジェクト指向における再利用のためのデザインパターン](https://amazon.co.jp/dp/B000SEIBB8/)に繋がります。
（参考：[Wikipedia](https://ja.wikipedia.org/wiki/%E3%83%87%E3%82%B6%E3%82%A4%E3%83%B3%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B3_(%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2))）
デザインパターン自体の歴史が長くなってきていて今のゲーム開発に即時に活用できるかというと難しいのですが、生き残る古典というものにはやはり価値があると思います。

### [増補改訂版 Java言語で学ぶデザインパターン入門](https://amazon.co.jp/dp/B00I8ATHGW/)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153766/8496455a-6dac-1687-4ff3-f748697ac1e3.png)
日本におけるデザインパターンの入門書としてはもはや右に出るものはないかと思います。
非常にわかりやすくデザインパターンを知ることができます。Javaで説明されていますが、基本の部分はC#とはほぼ一緒なので違和感なく読めます。


### [Game Programming Patterns ソフトウェア開発の問題解決メニュー](https://amazon.co.jp/dp/B015R0M8W0/)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153766/8c251c70-e538-2c52-5e22-e699d98c9d8a.png)

デザインパターンを実際にゲームに応用するためにはという視点ではこちらの書籍を紹介させてください。
この本の前半では、書籍内でよく参照するデザインパターンのおさらいから始まるので、この本から読んでも頑張れば読み進めることができます。

## ゲーム数学、物理
ゲームを創る中では数学と物理が非常に多く出てきます。さらには、より高度なことをしたいと考えたらシェーダーというものを実装することもあるでしょう。
そのようなときのために、ゲームで使われる数学、物理、そしてゲームの動かされ方を知っておくことも有用です。

### [ゲームアプリの数学 Unityで学ぶ基礎からシェーダーまで](https://amazon.co.jp/dp/B015IDHRH2/)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153766/5f563cc2-88b5-dde7-ec50-3f82f3c3f8ca.png)
数学や物理の説明を行っている書籍は様々なので、自分が読みやすいと思ったものを読み進めることが重要です。
この書籍では、実際にUnityを使って試すことができるので、手を動かしたいという方におすすめです。

### [ゲームを動かす技術と発想R](https://amazon.co.jp/dp/B0872VWC8B/)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153766/37245942-99f9-43bb-4b85-f70d6c12d539.png)

ゲーム内のための数学だけではなく、Unityを使っているだけならなかなか触れることがない、
ゲームがそもそもどう動いているのかというより低レイヤー名部分までわかりやすく説明してくれています。

### [Unityシェーダープログラミングの教科書 ShaderLab言語解説編](https://s-games.booth.pm/items/660001)
※こちらのみ、Boothです。
ゲームづくりをしている中で、演出を深めようとしたら現れる、シェーダーというもの。
シェーダーとはなにか、そしてどの様に創ることができるのかを知ることができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153766/bc2b4ded-e039-b939-7240-c26d1115f8a1.png)


## ゲーム演出

### [Unity ゲームエフェクト マスターガイド](https://amazon.co.jp/dp/4297106817/)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153766/d647789c-d6c1-067b-ab19-e56ccef8956e.png)



## 備考：ゲームAI
ゲームAIについても色々と触れられたらいいのですが、まだ著者が挑戦できていないので、2021年にご期待ください。
人工知能について、一般とゲーム関係を1冊づつ。そしてUnityの強化学習についてを紹介するに留めさせてください。

- [人工知能は人間を超えるか](https://amazon.co.jp/dp/B00UAAK07S/)
- [人工知能の作り方 ――「おもしろい」ゲームAIはいかにして動くのか](https://amazon.co.jp/dp/4774186279/)
- [Unity ML-Agents 実践ゲームプログラミング v1.1対応版](https://amazon.co.jp/dp/4862464823/)
    - 見た目がほぼ一緒の旧版がありますが、ML-Agent自体が大きく変わっているので必ず1.1対応版か確認しましょう！

## インターネットにもまだまだたくさんの情報が
書籍以外にも様々な情報源があるのが、この令和時代のいいところ！インターネットって素晴らしいですね。
ただ、あまりに情報量が多くなるので、今回は泣く泣く割愛させていただきます。

- [Unity公式ブログ](https://blogs.unity3d.com/jp/)
- [Unity Learning Materials](https://learning.unity3d.jp/)
    - Unity Learnも全て無償になりました！
- [Unity インターハイブログ](http://inter-high-blog.unity3d.jp/)
- UnityProブログ
- [#ゲーム素材の作り方](https://twitter.com/hashtag/%E3%82%B2%E3%83%BC%E3%83%A0%E7%B4%A0%E6%9D%90%E3%81%AE%E4%BD%9C%E3%82%8A%E6%96%B9?src=hashtag_click)
    - Twitterハッシュタグです

# 終わりに
初学者が選ぶべき本は、ここで紹介した書籍である必要はありません。繰り返しますが、
**様々な参考書使うより1冊を信じてしっかりやり遂げること**が何よりも大事です。
どの書籍も著者の方や編集者の方が考えに考えて構成を考えています。信じて1冊やり遂げてください。

中級者になった方も、もう1ランク上の本を信じてやり遂げましょう。
学び直しは最速のインプットとアウトプットの回転です。考えながらまとめながらやり遂げてください。

そして、上級者になりたいという方は、ゲーム作りの奥深さを受け止めましょう。
どんな旅も一歩一歩歩くことで成し遂げられます。
一緒にゲーム作りという壮大な世界を歩いていきましょう！