ゲームプログラマーが必ず扱うべきソフトウェア4選
近年のゲーム会社では、ゲームプログラマーが様々なソフトウェアを使用することで、ゲームの開発を円滑に行っています。ゲームプログラマーへ転職を考えられている方の中には「何から勉強すれば良いのかわからない」と言う方も多いと思います。そこで今回は、ゲームプログラマーが必ず扱えるようになっておきたいソフトウェアについて解説します。
ゲームプログラマーが使用するソフトウェアとは
ゲームを展開するハードウェアの種類が多様化するのに伴い、ゲームソフトのリリースでは、同じ内容のゲームを複数のハードウェアで発売している傾向があります。
しかし、ハードウェアの種類によって、扱われているプログラミング言語や、特徴といった部分が違ってきます。この部分は、さまざまなハードウェアに展開したいゲームプログラマーにとって悩みの種でした。
現在発売されているハードウェアの種類についても解説します。主に以下のような分類となっています。
ハードウェア解説図
SONY社製 PlayStation 4 |
解説:PlayStation 4は、映像本来の明暗を再現し、映像においてもユーザーを楽しませることができる据置きゲーム機。コンテンツの映像が鮮やかであり、コントラストも演出可能。 |
任天堂社製 Wii U |
解説:Wii Uは、Wii Uと接続したテレビと画面の付いたコントローラーを組み合わせた据置きゲーム機。 GamePadを傾ける動作や、タッチパネルや、カメラを使用することで、様々な遊び方を提供可能。 |
Microsoft社製 Xbox One |
解説:Xbox Oneは、信頼性に優れたゲームネットワークに対応した据置きゲーム機。Microsoftが開発を行っているので、Windows10との連動が可能な所も特徴。 |
任天堂社製 ニンテンドー3DS |
解説:ニンテンドー3DSは、専用のメガネを使わなくても飛び出す3D映像を楽しめるスクリーンと、自動的に近くの本体と情報のやりとりを行う「すれちがい通信」が、特徴的な携帯ゲーム機。 知らない間に色々な情報やコンテンツが届く、「いつの間に通信」のような機能も搭載。 |
SONY社製 PlayStation Vita |
解説:PlayStation Vitaは、3G回線とWi-Fiの2種類のネットワーク機能に対応している、GPS機能も搭載した携帯ゲーム機。(Wi-Fiのみに対応したモデルも存在) |
Google社製 Android |
解説:Androidとは、本来携帯端末を主なターゲットに開発されたプラットフォーム。本記事ではAndoroidに対応したスマートフォンを指す。 |
Apple社製 iOS |
解説:iOSは、アップル社が開発と提供を行っているオペレーティングシステムの事を指す。本記事ではiPhoneの事だと考えていただければ問題ない。 |
ゲームプログラマーのゲーム開発をサポートするソフトウェア4選
同じゲームで、ハードウェアが異なり、使用されているプログラミング言語にも差異があるのに、リリースできるのはなぜでしょうか?それはゲームプログラマーが、ゲームエンジンとよばれるソフトウェアを、使用することで、ハードウェアごとの最適な形にゲームとして出力を可能にしているためです。
本記事では、ゲームプログラマーにとって便利なソフトウェアの紹介を行いますので、ゲームプログラマーの方、ゲームプログラマーをに興味のある方は参考にしてみてください。
Unity(ユニティ)
Unityは、多くのゲーム会社で採用されているソフトウェアです。ダウンロードされた数は50億を超えており、現存するあらゆるゲームハードに対応しているソフトウェアです。Unity自体は、C言語やC++で作成されていますが、プログラミング言語に深く精通している必要はありません。基本的には、C#かJavaのどちらかに精通していれば、開発に携われます。
Unityを使用できるゲームハードウェア
Unityを使用して制作できるゲームのハードは、非常に多岐にわたります。iOSやAndroidといったスマートフォンのゲームに加えて、PlayStation 4やWiiUのような据置きのハードにも対応しています。さらに、最近発売されたNintendo Switch向けのゲーム開発も行えます。
ゲームプログラマーがUnityを使用している理由
もう少し具体的に、ゲームプログラマーがUnityというソフトウェアを採用するメリットとデメリットを明示します。
Unityを利用する上でのメリット
メリット1
対応できるハードウェアの種類が豊富なことです。ゲームハードウェア解説図でも触れてきましたが、ゲームハードの多様化が進んだ近年では、ユーザーが同じゲームハードを所持しているとは限りません。ゲームプログラマーが1つのソフトウェアで、複数のハードウェアに対応したゲーム開発が行えるというのは、商業的な観点で見ても大きなメリットと言えます。
メリット2
プログラミングの深い知識を必要とせずに、ゲームプログラマーとしてゲーム開発に携われるところです。本格的な3Dゲームの開発には、ゲームプログラマー自身のプログラミング知識が必須でした。しかし、Unityというソフトウェアではプログラミングを行わずに3Dゲームのステージ配置や、物理エンジンの導入を行えます。高度なプログラミングの知識を必要とせずに、ゲーム開発を行えるのは大きな利点です。
メリット3
機能の拡張が行いやすいところです。Unityはコンポーネント指向といって、ゲームキャラクターやオブジェクトに、機能を追加できるのが容易なソフトウェアです。ゲーム開発では、後になって追加したい要素が増える場合や、市場の変化に合わせて機能を追加するケースがよくあります。拡張が行いやすければ、柔軟に対応できますので、ゲーム開発において非常に有用です。
Unityを利用する上でのデメリット
デメリット1
Unityというソフトウェアに慣れすぎたゲームプログラマーは、他のゲーム開発に対応できないところが挙げられます。物理演算や、プログラミングを自動的に行えるのは、確かに長所と言えます。しかし、3Dプログラミングと言うのは、それまでのゲーム開発者たちの経験や、知識が蓄積されて確立されています。基本的な概念を知らないまま、扱ってしまうことは、ゲーム開発において大きなミスにつながります。
デメリット2
詳細なカスタマイズを行う場合に、ゲームプログラマーにある程度のプログラミング知識が求められることです。Unityはスクリプト言語と言って、一部のプログラミング言語の機能を扱える機能が備わっているソフトウェアです。C#とJavaのスクリプトに対応しているので、ゲームの複雑な操作や独自のシステムを実装する場合には、最低限のプログラミング言語に精通している必要があります。
ゲームプログラマーのUnityの扱い方
ここまでUnityの記事では、概要や機能の説明を中心に行ってきました。それでは、ゲームプログラマーの具体的な、Unityの扱い方を3つのポイントに分けて解説します。
Point.1
スクリプトの作成 - キャラクターをコントローラーで動かす
Unityで生成されたゲームオブジェクトは、そのままでは画面に表示されるだけです。プレイヤーキャラクターに、ユーザーがコントローラーを入力しても、何も反応しなければゲームになりません。したがって、コントローラーで入力した場合に、プレイヤーキャラクターを動かすという命令を、スクリプトで作成する必要があります。スクリプトの作成には、最低限のプログラミング言語に精通している必要があるので、ゲームプログラマーはUnityというソフトウェアで、スクリプトの作成を行う必要があります。
Point.2
画面の構築 - ゲーム画面のレイアウトを考案
ゲームには、プレイヤーのライフや残り時間のように、多様なアナウンス情報が存在します。ゲーム画面のレイアウトは、見やすさや利便性を考慮して、デザイナーが考案します。しかし、ユーザーがゲームを遊ぶ環境よって、画面の比率やサイズは様々に変化しますので、レイアウトも対応する必要があります。
スマートフォンでは、機種によって画面サイズの変化が顕著に出るので、デザインの大きさを自動的に調整する必要があります。機種による自動的な調整を行うには、スクリプトを使う場合や、Unityの機能を扱って対応を行うので、ゲームプログラマーの担当となります。
Point.3
プレハブの作成 - ゲームオブジェクト(キャラクター)を複製
プレハブとは、ゲームオブジェクトを複製する機能の事です。例を挙げると、同じ動作をするキャラクターを複数出現させたい場合に、使用します。キャラクターの強さなどの設定は、パラメータの調整を行いますが、プレハブのパラメータを調節するだけで、複製した全てのキャラクターに、同様の調整を行うことができます。プレハブは、データの持ち方を考えて作成する必要が出てくるので、データの設計に精通しているゲームプログラマーが作成を行います。
Unreal Engine(アンリアル エンジン)
Unreal Engineは、エピックゲームズ社が開発したゲームエンジンです。本来はFPSのゲーム用に、制作されたゲームエンジンですが、別ジャンルのゲームでも採用され、成功を収めています。Unreal Engineのゲームコードは、C++か、Unreal Scriptという独自のスクリプト言語で制作されています。Unityと同様に、プログラミング言語に深く精通している必要性がありません。
Unreal Engineで開発できるゲームハードウェア
Unreal Engineは、主要なゲームハードの開発に、しっかりと対応しています。PlayStation 4やNintendo Switchのような据置きのハードに加え、iOSやAndroidといったスマートフォンにも対応しています。VRにも対応しており、PlayStation VRやOculus Riftを使用した、ゲームの開発も行えます。(VR開発は、Unityでも行えます)
Unreal Engineが使用されている理由
Unreal Engineを利用する上でのメリット
メリット1
Unreal Engineが、ゲーム開発の現場で必要とされる理由は、Unityというソフトウェアと共通しています。メリットに挙げられるのは、対応できるハードウェアが豊富です。
メリット2
ゲームプログラマーにプログラミングの深い知識を求められないことです。
Unreal Engineを利用する上でのデメリット
デメリット1
Unreal Engineに頼りすぎてしまうと、3Dプログラミングの概念が身につかないことです。
デメリット2
詳細なカスタマイズを行う場合は、ゲームプログラマー自身のプログラミング知識が求められることです。
ゲームプログラマーにおいてUnreal Engineの扱い方
Unreal Engineには、ブループリントと呼ばれる、システムが存在します。ブループリントを簡単に説明すると、スクリプトで作成した命令や機能を、マウス操作で追加することができるシステムです。Unityと同様にUnreal Engineでも、スクリプトの作成には、プログラミング言語に精通している必要がありますので、Unreal Engineでも、ゲームプログラマーはスクリプトの作成を行います。
ゲームエンジンの種類が異なるだけで、Unityでも、Unreal Engineでも、求められる技術や、ゲームプログラマーの扱い方に、大きな差異はありません。
Git(ギット)
Gitとは、プログラムのソースファイルなどの、変更履歴を管理するシステムです。単純に説明しますと、ゲーム開発の進行度をセーブできるシステムと考えてもらえれば問題ありません。
ゲームプログラマーがGitを使用している理由
Git自体には、ゲームの制作を担う機能は存在しません。どのような理由で、Gitがゲーム開発で重宝されるのか解説を行います。
ゲーム開発は多人数で行うので、1人のゲームプログラマーが意のままに開発を行っていると、同じ部分を修正してしまい、変更内容が消えてしまう場合があります。
Gitを利用する上でのメリット
メリット1
Gitは「誰が、何時、何を修正したのか」を管理しているので、こうした問題が起こった場合は、即座に他のゲームプログラマーに知らせる機能が実装されています。
メリット2
変更履歴の管理を行っているので、ゲームプログラマーが修正したファイルを編集する前の状態に、戻すことが出来る機能が挙げられます。編集前の状態を参照すれば、どの部分の修正を行っているのかを、容易に見比べることができます。
近年のゲームソフトは、ハイエンドな作品が求められるため、ゲームプログラマーの数というのは増加傾向にあります。ゲームプログラマーの人数が増えてしまえば、それだけ管理コストも膨らみますが、Gitを上手く活用すれば、ゲームプログラマーの管理コストを抑えられます。
Visual Studio(ビジュアルスタジオ)
Visual Studioは、ソフトウェアを開発するための製品群と、開発に扱うファイルの管理を行うシステムです。Unityの、アプリケーション開発に特化したシステムと考えてください。採用している企業は多く、Googleで検索された回数から、どれだけ話題になっているかのランキングでも、1位をキープしています。(2017年4月現在)
ゲームプログラマーがVisual Studioを使用している理由
Visual Studioには、多様な機能が実装されています。文面的にすべての機能を紹介することは困難なので、ゲームプログラマーがゲーム開発を行う上で有用な機能を、抜粋して紹介します。
Visual Studioを利用する上でのメリット
メリット1
プログラムソースを作成することは、メモ帳でも可能ですが、プログラムが正しく動作できるかは、実行してみるまでわかりません。言語で定めている文法と異なっている場合や、誤字脱字が1つ存在するだけで、動作しません。ゆえに、1度で正確な動作を行える、プログラムソースを作成することは非常に困難です。
Visual Studioのテキストエディタには、プログラム言語ごとの正しい文法が蓄積されています。文法が間違っている場合は、赤い線を表示して指摘するので、プログラムソースの確認が容易に行えます。
メリット2
Visual Studioには、ブレークポイントというデバッグ機能が備わっています。ブレークポイントとは、実行中のプログラムを意図的に停止させる機能です。コードエディタでは、文法上のミスしか見つけ出せません。
設定した値が間違っている場合や、参照しようとしているファイルが不正な状態の間違いを、突き止めることはできません。ブレークポイントを駆使すれば、停止させた状態でのプログラムを確認することができるため、設定値や参照ファイルが不正な場合でも、突き止めることが可能になります。
メリット3
ビルド機能というものがあります。ビルドを単純に説明しますと、プログラムソースを実行ファイルへと、変換を行うことです。一般的には、ビルドツールを使用する必要性があります。Visual Studioには、ビルドツールが含まれていますので、テキストエディタやデバッグ機能と合わせて使用することで、修正内容の確認が立ちどころに行えるため、ゲームプログラマーは効率的な開発を行えます。
Visual Studioは、ゲームプログラマーがゲーム開発を行う上で有用な機能を、数多く兼ね備えています。最大の強みは、以上の機能を1つの開発ソフトとして、まとめて扱えることです。
まとめ
これまでに紹介してきたソフトウェアが、ゲームプログラマーのゲーム開発においてとても有用であることをご理解できたと思います。しかし、ゲームプログラマーを目指すのであれば、ソフトウェアに頼りすぎてもいけません。プログラミングの基礎や、3Dの概念をよく理解し、各ソフトウェアの特色を引き出せてこそ、ゲームプログラマーとソフトウェアの理想的な関係と言えます。ワンランク上のゲームプログラマーとなるために、これらの事を踏まえた上で導入してみてください。
この記事を書いた人
マイナビクリエイター編集部は、運営元であるマイナビクリエイターのキャリアアドバイザーやアナリスト、プロモーションチームメンバーで構成されています。「人材」という視点から、Web職・ゲーム業界の未来に向けて日々奮闘中です。