近年、急激に普及したモバイルゲーム、オンラインゲームをはじめとして、VRゲームに至るまで、世の中にあふれる様々なゲームを自分で作ってみたいと思う方もいるのではないでしょうか?
本記事ではゲーム開発をしてみたい!ゲームプログラマーになって仕事したい!と思う方にオススメのプログラミング言語やゲームエンジンについて解説します。
目次
2.1 Unity(ユニティ)
2.2 UnrealEngine(アンリアル・エンジン)
2.3 Cocos2d-x(ココス・ツー・ディー・エックス)
1. ゲームプログラマーって?
◆ ゲームを動かすためのプログラミングを行う
一般的にゲーム制作は、ディレクターやデザイナーがストーリーの構成やシナリオの設計・デザインを行い、サウンドクリエイターが音響部分を担当し、ゲームプログラマーがプログラミング言語やゲームエンジンを用いて実際にゲームを動かす部分を作っていきます。
ゲームプログラマーはプログラミングスキルはもちろんのこと、ゲームの設計が実現可能であるかを検討したり、魅力あるゲームするためのアイデアや発想力も必要です。
そして、ゲーム制作はチームで開発を行うことが多いため、コミュニケーションスキルも求められます。
2. ゲーム制作に欠かせないゲームエンジン
ゲームエンジンとは、「ゲーム開発をスムーズに進めるための様々な機能が簡単に使えるようにまとまった総合環境」のことです。
ゲームエンジンを使用すれば、プログラミング言語の知識が十分でなくても、簡単なゲームなら開発することが可能です。
ゲーム制作においてはいまや「ゲームエンジン時代」とも言われ、ゲームエンジンの機能を活用し、効率よくゲーム開発が行うことが主流になっています。 現在ゲーム制作において広く普及し、よく使われているゲームエンジンを3つ紹介します。
2.1 Unity(ユニティ)
ゲームエンジンの中では間違いなく一番のシェアを誇るといわれており、世界中で広く使用されゲームエンジンのスタンダードになりつつあります。
【特徴】
◆ 2D、3Dどちらのゲームも作れる
モバイルゲームなどでよく使われる2Dゲームから、グラフィック重視の3Dゲームまでどちらのゲームも作成できます。
◆ マルチプラットフォーム対応
Windows, Mac OS, Linuxなどをはじめとし、Nintendo Switch、PS4などのゲーム機、iOS/Androidなどのモバイル、Oculus Rift、GearVR、Microsoft HoloLensなどのVR機など多種多様なプラットフォームや機器に対応しています。
◆ 開発プログラミング言語はC#
Unity上では高度な開発やカスタマイズにはC#を用いて開発を行います。Unityを使用するのであれば、C#の知識は断然ある方が良いでしょう。
【こんなゲームが作れる】
オンラインゲーム、モバイルゲーム、コンシューマーゲーム、VRゲーム
【作成された代表的ゲーム】
Pokemon GO、スーパーマリオラン
2.2 UnrealEngine(アンリアル・エンジン)
【特徴】
◆ ハイスペックなグラフィック性能
写実的でリアルな美しい3D動画を構築できる機能が備わっています。
◆ 対応するプラットフォーム
Windows、Mac、Linux、SteamOSなどをはじめとし、PlayStation 4、Xbox Oneなどのゲーム機、iOS/Androidなどのモバイル、VRなどに対応しています。
Unreal Editor は Windows PC、Mac OSX、Linux 上で動かせます。
◆ 開発にはBluePrint機能とC++を用いる
UnrealEngineのBlueprint機能とC++、それぞれの特徴を生かして、両方を使用して実装していきます。
【作成された代表的ゲーム】
キングダムハーツⅢ、フォートナイト、鉄拳7マリオラン
2.3 Cocos2d-x(ココス・ツー・ディー・エックス)
【特徴】
◆ 2Dゲームを強みとしている
開発環境が小型で済むため、ソーシャルゲーム(SNS上でのオンラインゲーム)やモバイルゲーム開発などにおいて高い人気を誇っています。
◆ 対応するプラットフォーム
Windows、Linuxをはじめとし、iOS/Androidなどのモバイル、Windows Phone上で動作します。
Unreal Editor は Windows PC、Mac OSX、Linux 上で動かせます。
◆ 開発には3言語を使える
開発は、C++、Java Script、LUA言語にも対応しています。両方を使用して実装していきます。
【作成された代表的ゲーム】
モンスターストライク、ディズニーツムツム
3. ゲーム開発によく使われるプログラミング言語
3.1 C#
C#はゲームプログラミングに、現在最もよく使われているといってもよいでしょう。
UnityとC#を組み合わせてゲーム開発を行うことが非常に多いため、Unityを使用するなら必須の言語です。
C#はC++とJavaをベースに両言語のいい部分を取り入れて作られている言語であり、比較的書きやすく学びやすい言語とされています。
3.2 C++
C++は家庭用ゲーム機などのコンシューマーゲーム開発でよく用いられます。
また、UnrealEngineやCocos2d-xなどのゲームエンジンでも使用されます。
C++は、ベースとなるC言語に様々な機能を追加した言語です。C言語同様、習得するには少し難易度の高い言語です。
3.3 JavaScript
JavaScriptはブラウザゲーム開発でよく使われます。
2Dグラフィックが描画できるHTML5のCanvas要素を用いて、ゲーム開発を進めます。
また、Javascriptにはゲームに適したライブラリがたくさんあり、enchant.js, CreateJS, Kiwi.jsなどを使って、2Dゲーム、シューティングゲーム、アクションゲームなどが作れます。
Javascriptは多くのウェブサイトで使用されている身近な学びやすい言語であるともいわれていますが、HTMLやCSSとの関連性が強いため、Javascriptを学ぶならHTMLやCSSも一緒に学ぶと良いでしょう。
3.4 Swift
OS向けのモバイルゲーム開発には必須の言語です。
SwiftはiOSとMacOSを対象OSとしているため、iPhoneやiPad、MacPCなどで使えるゲームやアプリの開発に使われます。
Swiftは基礎を学びながら、SwiftとXcodeの使い方を覚えつつ、実際にiPhoneなどのアプリやゲームを作成しながら学んでいくと習得しやすいでしょう。
3.5 Ruby
ソーシャルゲームやモバイルゲームの開発によく使われます。
DXRubyやGosuなどのゲーム向けのライブラリが充実しています。
Rubyは基本的に内部の処理がメインであるサーバーサイド開発のための言語ですので、そちらから学んでいくことをおすすめします。
4. ゲーム業界の動向
◆ トレンドの移り変わりが激しい
近年のゲーム業界は、スマートフォンやタブレットの普及、そしてインターネットの進展により、オンラインゲームや、モバイルゲームに多くの企業が注力を注いでいます。
利用者側は気軽にスマホやパソコンでさっとゲームを楽しめ、ゲームに課金しなければ無料で遊べることも広く普及している理由と考えられます。
この勢いにPlayStation、Nintendo Switch, DSなどをはじめとする、コンシューマーゲームは押され気味になっているとも言われています。
また、最近流行りのVR業界においても、ゲームは特に大きな盛り上がりを見せており、様々なVRゲームでリアルなバーチャル空間を体感しながら楽しめるゲームが多く世に出ています。
今後、2020年よりサービス開始の5Gの普及によりゲーム業界にも変化が訪れることが予想されています。
5. まとめ
前述したように、ゲーム業界は技術の進歩が速く変化が激しいことからも、現在のゲーム制作は、ゲームエンジンとプログラミング言語を上手く取り入れて、「効率よく」開発を進めていくスタイルが主流となっているようです。
そのことも意識した上で、自分が作りたいゲームに必要なプログラミング言語の知識やスキルを磨いて、実際のゲーム作成をしてみるとゲームプログラマーのイメージもつかめてくるでしょう。
また、この業界で仕事をしていくのであれば、常に情報収集を怠らず、必要に応じて新しいスキルを柔軟に取り入れていく姿勢も大切でにしましょう。
当サイトプロエンジニアのコンサルタントが厳選したおすすめのフリーランス案件特集はこちら
特集ページから案件への応募も可能です!
実際にフリーランスエンジニアとして活躍されている方のインタビューはこちら