「ゲーム大好き」って人なら「自分でゲームを作ってみたい」って思ったことありませんか?
ただ、プログラミングで「ゲーム開発できる」ってわかっても「どのプログラミング言語?」ってなりますよね。
今回は、ゲーム開発におすすめのプログラミング言語と、プログラミングなしでもゲームを作れるサービスを紹介します。
圧倒的スキルが身につくプログラミングスクール5選
- DIVE INTO CODE
・年齢制限なし
・現場レベルの技術や開発が学べる
・オリジナルのWebアプリケーションが作れる - RUNTEQ
・高クオリティーで人気急上昇中!
・800~1,000時間の圧倒的な学習量
・現役エンジニアによるオリジナルポートフォリオ作成支援
・何でも相談できるバディ制度 - DMM WEBCAMP
・転職成功率98%・離職率2.3%
・転職できなければ全額返金。
・DMM.comグループならではの非公開求人も多数 - ディラボ
・Javaに特化し「未経験が2ヶ月でJavaシルバー資格取得可能」
・1期10名しか入れない「ガチの開発エンジニア育成スクール」
・平日でも土日でも基本的に質問し放題!
・卒業後現場の最前線で活躍できるスキルが身につく - Aidemy Premium
・AIに特化したプログラミングスクール
・完全初心者から研究者クラスまでに対応した幅広く優良なコンテンツ
・メンターと学習進捗を一緒に計画し挫折しないシステム
・20代には特待生制度アリ!
ゲーム開発におすすめのプログラミング言語とは?
ゲーム開発におすすめのプログラミング言語は以下の5つ
- C#
- C++
- JavaScript
- Lua
- Swift
1つずつ解説していきます。
C#
ゲームプログラミングに使用される機会がもっとも多い言語の1つが、C#です。
その理由は、Unity(ユニティ)やMonoGame(モノゲーム)など、C#でのゲーム開発に最適なゲームフレームワークが登場。
実用的かつ多数のプラットフォーム向けにゲームを書き出し、配信できる環境が整ってきたことがあげられます。
例えば、MonoGameの移植可能なプラットフォームは以下の通りです。
iOS, Android, MacOS, Linux, all Windows platforms, PS4, PSVita, Xbox One, and Switch
一度作ったゲームは、これらのプラットフォームに移植することができます。
- 「iOSならiOS向けに開発」
- 「AndroidならAndroid向けに開発」
という手間を削減することができるため、開発効率が大幅に向上します。
またゲームだけでなく、Webアプリケーション開発やスマホアプリ開発に使われる機会が多い言語でもあります。
例えば検索エンジンの「Bing」はC#で作られています。
求人も安定的に存在する歴史の長い言語のため、覚えておいて損はない言語です。
C++
C++とは、C言語をベースに様々な機能を付け足したいわば「バージョンアップ版のC言語」です。
できることが多い反面で、初心者には学習のハードルが高い言語としても有名。
ちなみにC言語およびC++と、C#はまるで別物の言語です。
C++が難解な言語仕様を持ちつつも、ゲーム制作者に愛用される理由はハード制御が得意で実行速度が迅速なことにあります。
ハード制御とは主に「組み込み開発」と呼ばれる家電やカーナビシステムなどの分野で使われる言葉で、どの処理にどの程度のメモリを割り当てるのかを制御することを指します。
つまり軽量な処理にはごく少数のメモリ、重い処理には重点的に割り当てることで処理を効率的かつ迅速に行うのです。
つまり、C++でゲーム開発を行うと処理落ちを未然に防げるということです。
こうした用途から、今でもC++はゲーム開発でよく使われます。
JavaScript
JavaScriptは主要ウェブブラウザが動作に対応する唯一のプログラミング言語。
そのためブラウザゲームの開発や、初心者が初めてゲームプログラミングを学ぶ際に採用されることが多い言語です。
JavaScriptは利用するプログラマーの数が多く、汎用性が高いことからフレームワークの数が膨大に存在することも興味深い点です。
例えば、日本発のJavaScript向けのゲーム開発フレームワークには「enchant.js」があります。
2011年に公開されたオープンソースのフレームワークで、2Dゲームの開発に特化しています。
スマートフォンゲームも手早く開発ができるため、本格的なゲーム開発に先立ってモックアップ(デモ)を短期間で作る際に採用されるケースもあります。
Lua
LuaはC言語との相性の良さから、ゲーム開発者に愛用されるスクリプト言語です。
スクリプト言語とはソースコードを書いた後「コンパイル」というコンピュータが理解できる言語への変換作業を経ることなく、すぐに実行可能な言語のことです。
C言語はコンパイルが必要ですが、Luaはすぐに実行可能。
かつLuaからC言語の関数を呼び出すことができるため、Cの良さを生かしつつ効率的な開発が可能です。
ゲーム開発のほか、画像処理ソフト開発に採用されたケースもあります。
代表格はAdobe Photoshop Lightroom。
Luaには「LÖVE」と呼ばれる2Dゲーム開発向けフレームワークも用意されており、初心者でもゲーム開発がすぐにできます。
Swift
SwiftはAppleが開発したiOS/macOS/Linuxで動作するプログラミング言語です。
iOS及びmacOS向けのアプリケーション開発に最適な言語です。
iPhoneアプリの開発にはもともとObjective-Cという言語が使用されていましたが、言語仕様の複雑さや「iOSアプリ開発以外の用途の無さ」がエンジニアにとって大きな課題でした。
SwiftはObjective-Cと比較して、モダンな文法と潜在的なバグチェックの容易さが特徴。
子供向けのプログラミング教育にも採用されるほど、直感的で分かりやすい言語です。
SwiftではシューティングゲームやRPGゲームなどを、iOS/macOS向けに作ることが可能です。
ブラウザゲームやVRゲームではなく、スマートフォン向けのゲームアプリを作りたい方におすすめです。
主なゲームプログラミングの種類
ゲーム開発するにはどのようなゲームを開発するかでプログラミング言語は、変わってきます。
なので、ゲームプログラミングの種類を把握しておくことも大事です。
スマホゲーム
iPhoneやAndroidをはじめとする、スマートフォン向けのゲームです。
代表的なタイトルは「ぷよぷよクエスト」「PUBG MOBILE」など。
スマホゲームはNintendo SwitchやPlayStation 4などの据え置き型かつ長時間遊ぶことが前提のゲームとは異なり、短時間で楽しめるプレイと片手で遊べる操作性が原則。
つまりUI・UXのデザインに工夫が求められます。
また料金体系にも工夫が必要です。
スマホゲームの主流はダウンロード・インストールは無料で、アイテム課金やステージ課金です。
つまり「気軽にインストールしてもらい、ハマってもらう」ためのレベルデザインも必要となります。
スマホゲームの開発を行うなら、マルチプラットフォーム対応が可能なツールを利用することをおすすめします。
マルチプラットフォームの場合、iOS/Android両対応のゲームを作れます。
具体的にはUnity、もしくはCocos2d-xを使用すると良いでしょう。
Unityの場合、使用言語はC#。Cocos2d-xの場合はC++、Lua、JavaScriptから好きなものを選べます。
ブラウザゲーム
ブラウザゲームとはGoogle ChromeやMozilla Firefoxなどのウェブブラウザ上で動作するゲームことです。
有名タイトルには「刀剣乱舞」「艦隊コレクション」などがあります。
ブラウザゲームはHTML5とJavaScriptで動作するため、遊ぶデバイスを選びません。
つまり、PC・スマートフォン・タブレットからダウンロード不要でアクセスし、遊べる汎用性の高さが売り!
開発サイドにとってはiPhoneならiPhone、AndroidならAndroidという個別の端末での動作確認が不要になるのも嬉しいポイントです。
シンプルなブラウザゲームの開発を行うなら、HTML5とJavaScirptを学習し、Canvas APIを使いこなせるようになることを目指しましょう。
教材はW3C Schoolsの「HTML Game」を一通りこなすと良いでしょう。
W3CはWWW(World Wide Web)の各種技術の標準化推進団体です。
W3Cが直接運営しているチュートリアルのため、必要な技術は一通り解説されています。
コンシューマーゲーム
コンシューマーゲームとは、市販の家庭用ゲーム機向けのゲームです。
主なプラットフォームはPlayStation 4、Nintendo Switch、Xboxなど。
特定のゲーム機向けにソフトを開発、販売する際にはライセンス料が必要となるケースが多いため、インディーズゲームは比較的開発される機会が少ないです。
よって基本的にはコンシューマーゲームは個人ではなく企業、もしくは起業して予算を組んだ上でチーム開発するのが主流となっています。
コンシューマーゲームはスマホアプリが無料〜高くても1000円程度の販売額であるのに対して5000円近くに価格設定されることが多く、高価です。
よって本格的なコンシューマーゲームを開発する際は、グラフィックスとプログラミング両方において妥協が許されません。
グラフィックスが良くても処理落ちすればユーザーの不満を呼び、その逆も同様です。
必要に応じて作業工程の一部外注なども検討するのも良いでしょう。
コンシューマーゲーム開発にはUnityの学習に加えて、C/C++の学習をおすすめします。
基本的にはUnityとC#を覚えることで、開発したゲームをコンシューマー向けに書き出すことは可能です。
ただし、前述したようにコンシューマーゲームでは快適で質の高い動作が原則。
そのためには単に「動けばいい」のではなく「高速化」が必要です。
Unityでは「Native Plugin」という機能を使うことで、CやC++で書いたコードを読み込ませてパフォーマンスチューニングなどを行うことができます。
学習のハードルは上がりますが、コンシューマーゲーム開発をするなら「圧倒的な高品質ゲームを作る」という心構えで学習することが大事です。
VRゲーム
VRゲームとは、Oculus Goに代表されるVRヘッドセットを装着し360度の仮想空間の中で遊ぶゲームです。
従来の2Dゲームや3Dゲームに比べて、自分が本当にそのゲームの世界にいるような没入感が得られるのが特徴。
VRゲーム開発の主流ツールはUnity、もしくはUnreal Engineです。加えて「VR Ready」と呼ばれる、VRゲームの開発〜検証、プレイに対応するハイエンドマシンが必要です。
GPU搭載のPCが必須で、もし手元に端末がない場合は数十万円程度の予算が必要となります。
VR ReadyのPCがない場合、Unity上で3Dゲームの開発を行ったとしてもVRゲームのプレイに耐えうる高解像度/リフレッシュレートの状態での書き出しがほぼ不可能です。
プログラミングなしでゲームを作るには?
ゲームを開発したいと考える人の中には「自分は企画やグラフィックス、マネタイズに専念したい」という方もいるでしょう。
しかし、企画やグラフィックスに将来的に専念するとしても、ゲーム開発者になるのであれば自分でモックアップ程度は作成できるようになっておくのがおすすめです。
なぜなら、ゲームはプレイしてみて初めてわかる「操作性の難」や「企画そのものの良し悪し」が存在するからです。
また仮にゲーム開発で起業し、投資資金を集める際にもモックアップがあれば投資家にゲーム内容を説明しやすくなります。
そこで役に立つのが、プログラミングなしでゲーム開発ができるツールです。
プログラミングなしで開発可能なツールを紹介します。
GameSalad
引用元:GameSalad
GameSaladはドラッグ&ドロップで、ブラウザ上で機能を組み合わせてゲームを開発するツールです。
評価版はBasic版の15日無料体験版という位置付けで、Basic版の価格は月17ドル。Pro版は月25ドルです。
ソースコードの編集機能はないため、GameSalad上でできないことは開発できません。
ピンボールゲームやスーパーマリオライクな横スクロールゲームなどのテンプレートが揃っているため、もし自分が想定しているゲームにマッチしたテンプレートがあれば組み合わせる素材と、その素材の挙動・動作を設定するだけでモックアップが完成します。
もしこれからゲームを作ろうと考えているなら、一度はGameSaladのテンプレートに近いものがないかチェックしておくことがおすすめです。
そしてテンプレートに近しいものがあれば、GameSaladでモックを作成。
モックをベースに、C#とUnityをはじめとするゲーム開発向けのプログラミング言語とツールを使って、本格的な実装をするのがおすすめです。
初心者でもゲーム開発できるおすすめプログラミング言語まとめ
ゲーム開発におすすめの言語とツール、そしてプログラミングなしでゲームが作れるサービスを紹介しました。
プログラミング経験がない方は、まずはGameSaladなどのサービスを使ってモックを作成。
その後、自分が作りたいゲームに合った言語とフレームワークを学習し、本番のゲームを開発していくことがゲーム開発の1番の近道だと思います。
関連
受講料安くて保証が手厚い!プログラミングスクールランキング
圧倒的スキルが身につくプログラミングスクール5選
- DIVE INTO CODE
・年齢制限なし
・現場レベルの技術や開発が学べる
・オリジナルのWebアプリケーションが作れる - RUNTEQ
・高クオリティーで人気急上昇中!
・800~1,000時間の圧倒的な学習量
・現役エンジニアによるオリジナルポートフォリオ作成支援
・何でも相談できるバディ制度 - DMM WEBCAMP
・転職成功率98%・離職率2.3%
・転職できなければ全額返金。
・DMM.comグループならではの非公開求人も多数 - ディラボ
・Javaに特化し「未経験が2ヶ月でJavaシルバー資格取得可能」
・1期10名しか入れない「ガチの開発エンジニア育成スクール」
・平日でも土日でも基本的に質問し放題!
・卒業後現場の最前線で活躍できるスキルが身につく - Aidemy Premium
・AIに特化したプログラミングスクール
・完全初心者から研究者クラスまでに対応した幅広く優良なコンテンツ
・メンターと学習進捗を一緒に計画し挫折しないシステム
・20代には特待生制度アリ!