プログラミングの超初心者・文系脳な私が、ゲームエンジン『Unity』を使ってAndroidゲームアプリ制作で利用した解説書を紹介したいと思います。
- 2018年に書かれた記事です。紹介する書籍は、古くて役に立たないかもしれませんが、文系脳な超初心者でも『勉強すれば簡単なゲームをつくれる』ということが分かる内容になっています。
よかったら、続きをどうぞ。
管理人のプログラミング習得履歴
この記事を読み進めるうえでの「初心者」の定義と、このあと紹介する解説書を学習すれば、どのくらいのプログラミング技術が身につくのかがわかるように、参考程度に私のプログラミング習得履歴を書いておきました。
紹介したい本の対象者=超初心者・初心者の定義
『初心者』という言葉は人それぞれの定義があると思うので、この記事の『初心者』を定義しておきたいと思います。
『超初心者』と『初心者』の2つに分けてみました。
- 超初心者の定義
・理系の学校に行っていない。
・今までで一度もプログラミングをしたことがない。
・今まで1つもアプリを作ったことがない。 - 初心者の定義
・プログラミングの本を最低2-3冊は読んでいる。
・解説書やネットを見ながら、簡単なプログラムを組むことができる。
この記事では、プログラミングを始める前の私は『超初心者』、現在の私は『初心者』になります。
ゲームを作るまでに3年7か月かかっていますが…
超初心者から初心者のレベルまでに、3年7か月もかかりました…。
長過ぎる?
それでは、上記の2つのゲーム制作までの道のりを図にしましたので見てください。1日3~4時間勉強しました。
3年ほどまったく勉強してないことがわかります…。
それに、一年半以上ブランクが空いてしまうと、ほとんど忘れてしまって、一からやり直しというのがつらい。
どんなアプリを作ったか?
Unityは3Dに特化したゲームエンジンですが、2Dのゲームも作れます。
Unityでは、2Dの『スロットマシン』『縦スクロールシューティング』をそれぞれ一週間前後で作りました。
絵柄がちゃんとまわる『スロットマシン』
最初に、Javaでスロットマシンを作ったときは、苦労しました。
なぜかというと、Javaの入門書などで解説しているスロットマシンは、数字の列を画面に表示するだけのものばかりだったからです。
数字の列を表示するだけのスロットマシンと、絵柄が回転するタイプのスロットマシンとでは、つくり方が全く違います。
絵柄が回転するタイプのスロットマシンは、結果が出るまでの過程をビジュアルですべて表現(プログラム)しないといけない。これが大変。
でも、応用できる知識が身につきます。
解説書やネットで使えそうな技術(考え方)をあちこちから探してきて、1週間ぐらいで完成させました。自力で最初に作ったプログラムとしては我ながら上出来かなと…。
次に、Unityで同じものを作った時は1日で完成させました…。
その理由は、知識と経験を活かせたということと、Unityがゲームづくりに特化していて扱いやすかったからです。
数学の公式を使った『縦スクロールシューティング』
腕試しということで、入門書の知識だけでほとんど自己流でつくりました。グラフィック作成1日・プログラミング3日・不具合などの調整2日といったところです。
敵機の動きや弾の動きは、中学数学の学習サイトで得た関数をプログラムに落とし込みました。
たとえば、敵機が円を描くように動くとき、円の方程式(だったかな?)をプログラムにして使うわけです。
方程式をプログラムに落とし込む作業は、シューティングゲームを作る上でかなり重要。文系脳でもそれなりのプログラムが作れてしまいます。
プログラミング学習の実際の期間は3か月ぐらい
2Dの「スロットマシン」「縦スクロールシューティング」を作り上げるのに4年近くかかりました…。
「4年近く学習に時間を費やしているのに、こんな簡単なものしか作れなかったの?」
という話ですが、4年のうち3年以上休みながらの学習で、復習ばかりでした。
ブランクなしにコンスタンスに勉強し、開発環境を途中で変えていなければ、2つのゲームプログラムは、もっと早く完成していたろうと思います。
最後に、言い訳ばかりですが…コードはけっこう凝ってますよ。このあと紹介するUnityの解説書以上のことをやっています。
Android Studio・Java から Unity・C#へ
わたしは、無料でAndroidアプリが開発できるということで、統合開発環境・Eclipse(途中でAndroid Studioへ交代)とJava言語でプログラミングの勉強をはじめました。
しかし、ツール系のアプリを作るのならそれでもよいのですが、ゲーム開発に特化した開発環境ではありませんでした。
そんなとき、ゲーム作りに特化した開発環境・Unityが無料で利用できるサービスが始まり、私は迷わずUnityに飛びつきました。
ただ、ゲームエンジン・Unityで利用できる開発言語は、JavaではなくC#(またはJavaScript)です。
いままでJavaでやってきたので、また一から勉強のやり直しかな? と思っていたのですが、C#はJavaと非常によく似た言語だということと、入門レベルならUnityでは難しい文法がでてこないので、簡単に移行することができました。
ゲームエンジン・Unityはリッチで高度なゲームを初心者でもがんばり次第で結構なものが作れてしまいます。
乗り換えて正解でした。
Unityのプログラミング言語はC#
私の場合、Java言語から学習を始めましたが、UnityはC#(またはJavaScriptなど)なので、C#から勉強をはじめて下さい。
「超初心者」でも理解できる入門書がたくさんあるので、がんばれば習得できるはずです。
また、私がプログラミングを始めたころと違って、開発環境「Xamarin」を使えば、C#でもAndroidアプリを作ることが無料(個人開発など条件有)でできるようになりました。
これから新しくandroidアプリのプログラミングを始める人は、JavaからでなくC#からで良いと思います。
Javaが必要になれば、C#を勉強した後でもいいと思います。よく似た言語ですから簡単(といわないまでも他より楽)に習得できると思います。
超初心者・初心者におススメのJava学習本の紹介
書籍の紹介は、私がプログラミングを学習した順番になります。
Unityを利用するにあたって、私のようにJava言語から勉強する必要はないのですが、プログラミング学習に有用な情報もあるかと思いますので、紹介しておきます。
1:すっきりわかるJava入門
Unityとは全く関係のないJava言語の入門書です。
しかし、C#言語も採用している、
オブジェクト指向
というプログラミングの考え方を理解するのに役立つ本です。
このオブジェクト指向という考え方(概念)をプログラミング「超初心者」うちに理解することで、今後のプログラミング人生が違ってくるかもしれません。
JavaとC#ではオブジェクト指向の仕組み(プログラミングの方法など)が少し違いますが、オブジェクト指向の考え方(概念)を学べる良著です。
読むだけでもおススメしておきます。ちなみに私は何度も読み直しましたが、PCにコードを入力してどう動くかとかは一切やっていません。
実践編は必要か?
「すっきりわかるJava入門」の実践編です。
内容は第一弾と比べると、いきなり難しくなります。ページ前半は個人開発でも十分に役に立ちますが、後半は微妙。
「Unity・C#・初心者」というキーワードから考えると、他の書籍をあたった方がいいです。
2:Androidの絵本
この本を教材にして、初めてPCに開発環境(Eclipse)をインストールしてAndoroidプログラミングの勉強に取り掛かりました。使用言語は、Java です。
どちらかというと、本に書いてあることをPCにそのまま入力して、Androidがどのように動くのかを一通り確かめる本です。
しかし、情報が古くて今では使っていない機能の解説をしています。
また、誤植も多く、他では見ないようなコードの書き方だったので、改訂版が出るまでおススメしません。
「Unity・C#・超初心者」というキーワードから考えると、他の書籍をあたった方がいいです。
3:Androidアプリをつくろう[kindleのみ:Android Studio 2.1対応版]
Androidの仕組みとそのプログラミングを「初心者」にもわかるように解説されておられます。
私はこの本を読んで飛躍的にandroidを理解できました。これがなかったら挫折していたかも…。
もちろん、Javaの知識は必須です。上記の「すっきりわかるJava入門」+ α の知識で読み進められると思います。
ただ、内容が古くなっているのが残念。
4:中学生でもわかるAndroidアプリ開発講座
わたしがゲームの作り方を初めて体験した本です。
ゲームエンジンを使わないゲームづくり
を学べる重要書籍でした。
ただ、Amazonのレビューを見ると、評判はそんなに良くないんですよね。
確かに「中学生でもわかる」というわりには、けっこう難しいです。とりあえず動くものが作れるけれど、読者が理解しているかは別の話って感じです。
わたしは、「すっきりわかるJava入門」「Androidアプリをつくろう」を先に読んでいたので、理解しながら学習できました。
後の、Unityの学習にも役立っています。
「Unity・C#・超初心者」というキーワードから考えると、他の書籍をあたった方がいいです。
Java向けの解説書はこれで完了。この後2冊ぐらいAndroidアプリの入門書をざっと読みましたが、復習程度の価値しかありませんでした。
これで私のJavaの勉強は終わりました。プログラミングの基礎の基礎はついたので、Javaの勉強はしておいてよかったと思います。
これから先、使うことがあるかどうかわかりませんが…。
中級レベルの学習本になると、急に難しくなります…。
初級の本を一冊読んだだけで、いきなり中級は無理だと思います。
たくさんのサンプルコードをPCに入力・改良しながら、初級レベルの解説書を2~3冊以上読んだ上でレベルアップすることをおススメします。
超初心者・初心者におススメのUnity学習本の紹介
ここまでJavaをメインに学習してきましたが、
ゲームをつくりたい
という事になると、Javaのプログラム環境では非効率。また、難しい…。
そこで、個人開発なら無償(他にも条件有)で使えるUnityというゲームエンジンがあると聞いて、移行することに。
Unity以外のゲームエンジンも考えてみましたが、使いやすそう・解説書が多いということでUnityへ移行しました。
UnityはJavaが使えませんので、C#の勉強も必要になります。
5:C#の絵本
Unityの学習をしながら並行して読んだC#の書籍です。Java言語との違いを確かめるのに利用しただけなので、難しくはなかったです。
C#の学習本をいくつかみましたが、わかりやすい図を駆使して最も簡潔にC#をまとめた本かと思います。C#の文法を度忘れしたときにさっと見るのに便利な本といったところ。
「超初心者」なら、後述の「確かな力が身につくC#「超」入門」をおススメします。
6:Unity2019入門
私がUnityを初めて学習するために利用した解説書です。言語はJavaからC#に変ったので、上記の「C#の絵本」と並行で学習を始めました。
とりあえずプログラムを作って動かすタイプの本です。詳しい解説は少ないです。
サンプルのプログラムがイマイチ面白くないのとゲームっぽくないので、
ものたりない
という感想…。
とりあえず、Unityに触れてみたいという人にはオススメの本です。
7:Unityの教科書 Unity2017完全対応版2D&3Dスマートフォンゲーム入門講座
Unityの使い方もそうですが、ゲーム作りに対する考え方も学べる優れものです。
プログラミング初心者に、もっともおススメしたいUnityの解説書です。
Unityの入門書はこれ一冊でOK
と言っても過言ではない出来です。
C#の解説もありますが、これだけでは不十分。C#の勉強も並行して進めましょう。
その他のプログラミング解説本など
以下に紹介する本は、2つのゲームプログラムを作った後で、読んだり、さらっと目を通したりした書籍です。
確かな力が身につくC#「超」入門
「超初心者」が理解できる範囲内で解説されています。C#プログラミングを初めて勉強するのに一番いい書籍かなと思います。
プログラミングのきっかけとして良著だと思います。
戦略シミュレーションゲームの作り方
JavaScript言語とゲーム開発用フレームワークEnchant.jsを使ってシミュレーションゲームの基礎を学ぶ本です。
シミュレーションゲームの学習書はあまり見かけませんので、貴重な本です。
プログラミングの理解は置いといて一通り読みました。
Unityとは全く関係ありませんが、シミュレーションゲームの考え方とか作り方の基礎の基礎が少しわかったような気がして、今後のゲーム作りの参考になりました。
価格が高いので、私はKindle版をセールの時に買いました。
独習C#
この記事を書くにあたって、要所要所読んでみたのですが、プログラミングをしたことのない「超初心者」がいきなりこれをやるのは難易度が高いと思いました。
良著ではありますが、学習内容が多すぎるので混乱しやすいのと、言葉がちょっと難しいと感じました。頭の良い人なら、参考になると思いますが…。
「超初心者」がいきなりここまでやる必要がない
というのが率直な感想です。わたしなら、2~3冊目以降のC#の復習で使います。
YouTube:9cubedさんのプログラミング講座
現時点で140以上の初心者向けプログラミング講座をYouTubeに配信されています。
「初心者」レベルならば、すべてわかる内容だと思います。
C#ではない他の言語を理解していれば「初心者」向けのC#の本を買わないでも、これを見るだけで事足りると思います。
ただ、動画は理解していなくてもどんどん先に進んでいく(再生していく)ので、「超初心者」は、マイペースで学習できる解説書から始めた方がいいと思います。
他にもC#の講座をYouTubeで配信しておられる方がたくさんおられますが、一番わかりやすくて一通りC#を学習できるのは、9cubedさんの動画ぐらいです。(2017/5/27 現在)
Webサイトのみでプログラミングの勉強ができるか?
プログラミングの学習は「書籍なんか買わなくてもWebで検索すれば十分」という話をたまに聞きます。
私の経験から言うと、
「超初心者」はやめておいた方がいい
と思います。
その理由は、
- 「超初心者」は「何がわからないのかがわからない」という状態。ワードを絞れないので検索に時間がかかってしまいます。
- 一度にたくさんの機能やプログラミングスキルを使って解説しているサイトが多く、それを調べるのに時間がかかったり、混乱したりします。
- ライティング中のサイトや、中断している中途半端なサイトが多いので、読み進められなくなります。
- 「超初心者」だった私には、よいサイトがなかったです…。
というわけです。
簡単な解説書を1冊でもよいので勉強してみて、
「超初心者」なりの実力
をつけてから、ネットを利用したほうがいいと思います。
※ 有料のプログラミング学習サイトは利用したことがないので、ここでは除外しておきます。
まとめ
ここに紹介したものより良書がまだまだあると思います。また、新しい解説書がどんどん出てきていますので、書店へ行って色々見てくるといいと思いますよ。
それから、解説書はけっこうします(¥)ので、図書館を利用するのもいいでしょう。