おすすめのプログラミング言語
ここからは、ゲームプログラミングにはどんな言語があって、どんなことが出来るのかを見ていきましょう。
なお、最近のゲームはオンライン接続が出来るものが増えていますが、オンライン要素を絡めると「サーバサイド」の技術も必要になってきます。
詳細はサーバサイドを担当する言語のところで解説していきます。
Unity(ユニティー)
特徴
Unityは言語ではないですが、開発のエディタが用意されているツールです。
開発したいゲームによって言語を選んで開発することができます。
- 3D/2Dゲーム
- ブラウザゲーム
- スマホゲーム
- コンシューマゲーム
- PCゲーム
C++(シープラプラ)
特徴
C++はC言語をより高度に使えるように拡張されたものです。
プログラミング言語の中でも、比較的「コンピュータが理解する言葉に近い書き方」をすることからかなり難しいものになります。
ただ、その分「コンピュータが理解しやすいプログラムが出来る」ので、とても処理速度が早くなめらかに動くゲームを作ることが出来ます。
例えばWindows向けにPCゲームを開発する場合、DirectXなどの画面に絵などを写すための「描画用ライブラリ」を利用してゲームを開発します。
ゲーム会社等は専用のライブラリを自社開発していることも少なくありません。
主な作れるもの
・コンシューマゲーム
・PCゲーム
・スマホアプリ(Android / iOS)*1
学習方法
本格的に開発を行う場合、C言語を学習した後C++の基本を学習し、C++でのゲームプログラミングの方法を学習する必要があります。
C#(シーシャープ)
特徴
ゲーム制作で最近人気が高まってきているプログラミング言語がC#です。
C++ほど難しい概念を全て理解しなくてもよく、プログラミングとしては比較的書きやすくしっかりしたものになっており、複雑なゲームもスムーズに制作していけます。
Unityなど様々な開発環境が揃っているため、難易度はゲームプログラミングの中では比較的低いと言えます。
主な作れるもの
・コンシューマゲーム
・PCゲーム
・ブラウザゲーム(見た目)
・スマホアプリ(Android / iOS)
学習方法
仮にUnityの学習をしたいのであれば、まずはUnityの入門書でUnityの特徴を抑え、次にC#で本格的なプログラミングの知識を付けるのが良いでしょう。
特徴
JavaScriptはブラウザゲームなどで使われてきましたが、最近では様々な環境で広く利用されるようになってきている言語です。
先に記述したUnityはC#以外に、拡張されたJavaScriptを選択して使用することも出来ます。
JavaScript単体の学習難易度は高くありませんが、JavaScriptで様々ことをやろうと思うと色々なツールの使い方を把握する必要はあります。
主な作れるもの
・ブラウザゲーム(見た目)
・スマホアプリ(Android / iOS)
Swift(スイフト)
特徴
Appleから提供されているApple製品のアプリを開発するためのプログラミング言語です。
iPhone等ですべての機能を利用できることから、しっかりしたiOSアプリを作りたい方に利用されます。
プログラミング入門者にとって学習難易度は少し高いですが、凝ったアプリも作れるようになります。
主な作れるもの
・PCゲーム(Mac)
・スマホゲーム(iOS)
学習方法
Swiftは動作確認等もし易い機能がついているので、直接Swiftのプログラミング入門書籍を探して実行しながら学ぶのが良いでしょう。
英語が苦にならない方はAppleが提供しているチュートリアルを読むのが良いです。
https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/GuidedTour.html
少し分かるようになってきたら、実際のサンプルで学ぶのが良いでしょう。
Swiftの登場時に話題になった「フラッピーバード」というゲームのソースコードなどが公開されています。
オンラインでコードを共有できるGitHubにて公開されているので見てみるのも面白いでしょう。
https://github.com/fullstackio/FlappySwift
Ruby(ルビー)
特徴
スタートアップでサービス作成によく使用される言語がRubyです。
最近はスマホのソーシャルゲーム等で利用する目的でも注目されてきています。
Ruby Motionなども使用すれば、スマホアプリもサーバサイドもRubyだけで制作することが出来ます。
個人でサーバサイドも制作する場合はRubyの学習もおすすめです。
Unityなどに比べるとゲームを作るにあたっては本格的なプログラミングになるので、学習難易度は少し高めになるでしょう。
作れるもの
・ブラウザゲーム(サーバサイド)
・スマホアプリ(Android / iOS)
学習方法
Rubyを学習する場合は、やはりメインとして使われるサーバサイドから学習を行います。
ある程度学習出来れば少し前の情報になりますが、
「RubyMotion Tutorial – Ruby で iOS アプリを作ろう」などを参照するのが良いでしょう。
ゲームプログラミングの基礎を学ぼう
学習サイトを使い倒す
プログラミングは、いかに「手を動かして学んだか」が重要になってきます。
本を読んだり、記事を読んだり、インプットの時間はとっても大切ですが、それをアウトプットをする時間が重要なんです。
アウトプットしなければ使えるスキルにはならないわけなんですね!
そんな時には「学習サイト」で基礎力をアップさせて土台を作るといいですね!
書籍を使い倒す
書籍ももちろん使い倒すことをして欲しいですね!
ただ、分厚い本をとことんやるというよりは、調べる時に使う辞典のように使うといいです。
とはいえ、初心者向けの書籍も買ってみるとサンプルがいっぱい載っていて実践にとても参考になります。まずはこんな本があるんだなぐらいで眺めて見ることからはじめてみるといいですね!
Q&Aサイトを使い倒す
「プログラミング学習」って独学の挫折率がとっても高いんです。どのくらいかというと、、「9割」です。
9割挫折するってすごすぎですよね。10人中9人が挫折しちゃうカテゴリーなわけなんです。現実を見ますね。。とはいえこちらの記事を見てみると少しは希望が生まれるかも。
そのぐらい一人で学習すると挫折しちゃうわけなんですが、質問できる環境なら話は違います。
実はWeb上で無料で質問できるプログラミング専用のQ&Aサイトが存在するんです。中でもおすすめは「teratail(テラテイル)」です。
どこが分かりにくいのかを事細かに表現できる環境が整っているし、ユーザー数もかなり多いのでエンジニアから、かなり重宝されています。
すごいのが、質問の返答時間が平均で1時間半という点。無料なのに、この返答時間は貴重ですね!ほんとおすすめです!
<広告サイト>
~約8,000名の受講生と80社以上の導入実績~
現役エンジニアのオンライン家庭教師CodeCamp