プログラミングスクールに通うことから始めるゲーム作り!
プログラミングを学べば色んなものを作ることができるようになります。
それこそ極端なことを言えばWindowsやMacOSといったオペレーティングソフトだって作れますし、携帯アプリにインターネットサイトだって作れるのです。
中でもゲーマーにとって魅力的なものといえばやはりゲームでしょう。
今回はプログラミングスクールに通うにあたってゲーム開発をするために学んでおきたい言語やゲームプログラムの概要についてみていきましょう。
プログラミングスクールで学べること
プログラミングスクールでは各プログラム言語別にカリキュラムが組まれています。
CやC++にJavaといったベーシックなものからJavaScriptにPHPといったWebに特化したものまで様々です。
また中にはゲームエンジンであるUnityの扱い方とプログラミングを学べるところもあります。
学べる範囲は基本的に初歩的な部分と考えて良いでしょう。
応用的な分野となるとそれこそ有数な人材でなければ勤まりませんし、生徒も高度な知識が必要となります。
もちろん応用的ではないからといってレベルが低いというわけではなく、基礎部分を理解するだけでも集中を要するのがプログラミングです。
こうした基礎部分をしっかりと学ぶことができればゲームプログラムに直ぐに応用することができるはずです。
ゲームプログラミングといってもあくまでプログラミングなので、使っている技術のベースは変わりません。
そこに独自の構造やルールがいくつか挟み込まれるだけであり、ゲームもプログラミングには変わりないのです。
先述したUnityを直接学ぶのであれば、それはもうゲームプログラミングの勉強と言っても差し支えないでしょう。
他の分野にもUnityを応用することは可能ですが基本的にUnityはゲームエンジンなのです。
Unityは案件も豊富なのでゲーム作りに興味がある方は学んでおいて損はありません。
オンラインとオフラインの違い
教室の形態は様々で、現地に通わなければならないところもありますし、オンラインで全て完結できるところもある形です。
オフラインの場合は直接シームレスに講師とやり取りをすることができたりメリットは多いものの、通うことに対する負担は避けられません。
反対にオンラインの場合は通話やテキストによって講師とやり取りをすることになるためややコミュニケーションに難はあるものの、交通費がかからないといったメリットがあります。
どちらにもメリットとデメリットがありますが、スクールが近ければオフラインの方が良いかもしれません。
オフラインの情報量は非常に高くオンラインとは比較にならないからです。
また同じプログラミングを学ぶ仲間と出会うことができればプログラミングを学ぶ以上の価値があるといえるでしょう。
もちろんスクールから遠いところに住んでいる場合はオンラインを選ぶことをおすすめします。
交通費と通うためにかかる時間というのは精神と肉体に疲労を蓄積する要素なので遠ければ遠いほど負担になるからです。
それから仕事帰りに通うというのも何かと疲れるものなので、通い難い場合はオンラインのスクールを選ぶと良いでしょう。
ゲーム開発の種類
ゲームと一言で言ってもそれを実行するハードウェアには様々なものがあります。
コンシューマ機にも色々ありますし、パソコンには主にWindows、Mac、Linuxが存在しスマートフォンはAndroidとiPhoneに分かれている形です。
そしてどのハードウェアに向けたゲームを作りたいかで学習すべき言語も異なります。
コンシューマ機向けのゲームは個人で制作できるようなレベルのものではないのでターゲットから外しておきましょう。
開発機材は基本的に超高価なものですし、やはり企業として開発をしなければならない領域といえます。
近年ではインディータイトルも増えてきましたがやはり個人にとってコンシューマ機はまだまだハードルの高い場所です。
ではパソコン向けはどうかというと、最も普及しているWindowsが無難となります。
WindowsにはWinApiというグラフィカルな描画を可能とするAPIが存在しますが、ゲーム開発となるとDirectXかOpenGLといったAPIを使うのがおすすめです。
これらのAPI群を使うと単純にゲーム処理を高速化できるためとなります。
使用言語としてはC++が良いでしょう。
コンシューマ機でもC++で開発されることが多いので将来的にゲーム会社を目指したいなら学んでおきたい言語です。
スマートフォン向けならAndroidの場合はJavaかKotlinとなりますが、Javaの方がノウハウが蓄積されているのでおすすめします。
iPhone向けのゲーム開発にはSwiftかObjective-Cとなる形です。
このように、ゲームを起動するハードウェアによって知らなければならない言語は異なります。
自分の興味のあるハードウェアの言語を学ぶようにしましょう。
マルチデバイスに対応したUnity
ゲームエンジンのUnityは非常に画期的なプラットフォームです。
パソコンとスマートフォンに対応しているため、1度開発してしまえばそれをそのままマルチデバイスで展開することができます。
通常、ゲームの移植作業はかなり面倒なことなのですがUnityを使っていれば簡単に実現できるでしょう。
なおUnityにはC#が採用されています。
Unityで作られたゲームの中にはヒット作品もありますし、簡単に扱えるからといって質の良いゲームが作れないわけではありません。
しっかりと作りこめば良い作品を作る事は可能なのです。
ただUnityはプログラミング言語ではないので、万が一Unity自体の更新が放棄された場合は少し怖いかもしれません。
最初のハードルは画像の表示
どの開発言語であってもゲーム開発における最初のハードルとなるものがあります。
それは「画像の表示」です。
私達は当たり前のようにパソコン上で画像を表示させたり操作することができますが、これはプログラム的には中々面倒なことだったりします。
読み込むデータをきちんと指定し、数々のオプションを指定し、色んな作業を経てようやく画像が表示できるのです。
この作業はまたDirectXやOpenGLといったAPIを使うと更にややこしいものになります。
これらのAPIは初期化自体に膨大な処理を必要とするため、処理内容をちゃんと理解しようとするとかなりの時間をかけなくてはならないでしょう。
ただ画像の表示をする処理を一旦作ってしまえば後は楽なもの。
読み込む画像を増やせば他の画像を直ぐに表示することができるようになりますし、画像を差し替えれば別のキャラクターだって表示できます。
また一定時間ごとに画像の読み込み位置を変更すれば簡単なアニメーションを作ることもできるはずです。
正にハードルと呼ぶべき段階ですが、ともかくこれを超えないことには話が始まりません。
画像表示を楽にするゲームエンジン
Unityを始めとしたゲームエンジンではこうした画像表示を簡単に行ってくれたりします。
一回、C++やJavaなどで画像を表示させようとした人はその楽さに愕然とするかもしれません。
もしかしたら「今までの苦労はなんだったんだ」と懊悩する可能性すらあります。
ではゲームエンジンを使えば良い、と思われるかもしれません。
ですがゲームエンジンはあくまでエンジン内でできることしかできないのです。
自分が思い描いている通りそのままを再現するならやはりDirectXやOpenGLを使う方が良いでしょう。
ただ細かい再現は特に気にしていない、というのであればUnityを使うのも良い方法です。
むしろ開発が長期化して作品が完成しないということは往々としてある事なので、思い切ってゲームエンジンの力を借りるべきなのかもしれません。
数学の知識は欲しいところ
ゲーム開発において数学は必須とはいえないにしてもあると非常に便利です。
数学を取り入れるとできることが格段に増えるので、少なくとも高校数学ぐらいはおさらいしておきたいところ。
特に物理に関する式は覚えておいて損はありません。
ゲームの世界を広げてくれる数学
もちろん数学を利用しなくてもシンプルなゲームを作ることはできますし、シューティングゲームだって作れるものです。
例えば横シューティングにおける弾の座標を更新時に-1ないし+1すればそれだけで弾は動きます。
また衝突判定も力技ですが自機の4隅に座標を設け、その座標内に弾が入っているかどうか、といった形で実現することは可能です。
ただ数学を使わないと方向弾や緩急のある動きなどをつけることが難しくなります。
それからエフェクトの変化や重力の演出など多種多様な動きには数学的な処理が必要になるでしょう。
そのためやはり数学は勉強しておくことをおすすめします。
まとめ
ゲーム開発をする際にプログラミングスクールで学んでおきたい言語とゲームプログラムの概要についてみてきました。
ゲームのハードウェアによってゲーム開発に使われている言語は異なるので注意しておきましょう。
またゲーム開発の世界は数学によって広がるので、高校数学の勉強を推奨します。
言語や数学を一つずつ勉強していけばきっとゲームを開発することができるはずです。