[PR]
ゲームプログラマー
×
仕事内容
ゲームプログラマーの役割
ゲームプログラマーの仕事をひところで表せば、仕様書やデザイン・音楽などをプログラムとしてゲームの世界に落とし込んでいくことです。
ゲームが完成するまでには、デザイナーやプランナー、サウンドクリエイターなど様々な人たちが関わりますが、実際にゲームを形作っていくのが、プログラマーになります。
プログラマーの仕事は、ゲームの良し悪しに直接影響します。どれだけ企画がすばらしくても、音楽がすばらしくても、プログラムがしっかりと組めていなければ、それら全てを台無しにしてしまうのです。
たとえばプログラムにバグがあれば、音楽が狂って聞こえることもありますし、グラフィックが破壊されてしまってわけがわからないこともあるのです。
そのため、プログラマーはとても責任の重い仕事であると言えます。
プログラマーはそれぞれ担当が分かれる
ゲームプログラマーといっても、一人でグラフィックやら音楽やらシナリオやらを反映させるわけではありません。ゲームプログラマーの中には、様々な「プログラマー」が働いています。大雑把に一部のみを切り取って紹介しましょう。
- 3Dエンジンプログラマ
- ネットワークプログラマ
- ツールプラグインプログラマ
- サウンドプログラマ
- メニュー・セーブ・システムプログラマ
- エフェクトプログラマ
大雑把に一部だけ切り取っても、これだけのプログラマーがいるのです。それぞれがそれぞれの担当分野のプログラミングをすることによって、ゲームのプログラムは作られています。
ゲームプログラマに憧れて入社した人は、この状況に驚くことがあるようです。「ゲーム会社にプログラマーはいるが、ゲームプログラマーはいない」と言えるかもしれませんね。
ゲームプログラマーに必要なスキルと知識・経験
オブジェクト指向言語
プログラマーですから、当然プログラミング言語の技術と知識が必要になります。大学などで主に習うことがあるのは、C言語ですね。
ゲームプログラマーももちろんC言語を使うのですが、メインとして使うのはその拡張版とも言える「C++」なのです。大学で学ぶC言語の発展系なので、C言語の知識があれば、習得も容易いでしょう。
そういった「C++」のような言語を、オブジェクト指向言語と呼びます。他には、Javaなどが有名な言語ですね。その二つを勉強しておけば、とても良い武器になります。
オブジェクト指向言語と言いますが、オブジェクト指向とは何かということがわからない人も多いでしょう。そこで、オブジェクト指向に関しては少し触れておきましょう。
オブジェクト指向は、継承・カプセル化・ポリモーフィズムという三つの概念がありますが、難しいことは抜きにして説明します。
オブジェクト指向というのは、基盤が同じものはその設計を使いまわしできるということです。たとえば、似たような行動パターンをする敵がいたとしましょう。
たとえば、マリオのパタパタ(緑)とパタパタ(赤)の行動パターンはほとんど同じで、ふわふわ浮いていたり、地面を飛び跳ねるだけです。
違いといえば、緑の甲羅と赤の甲羅のスピードと消える速度、ヨッシーが飲み込んだ際の能力など。少しわかりにくい例だったかもしれませんが、そのように「基本的な行動パターンが同じ敵」を作る際に、その基本となるプログラム=浮く、地面を跳ねるという行動を使いまわしできるということです。
いちいち似たようなものを作らなくてもすむというのが、オブジェクト指向になります。
バージョン管理システムとタスクシステム
バージョン管理システムというのは、共同開発を行う上で大切なシステムです。バージョン管理システムを使えば、作業を共同で行い、共有しつつも、ひとつのバグによって全体の作業がストップすることがありません。
共同作業を行ううえで便利なシステムなのですが、これについての知識・経験が問われる場合があります。
また、シューティングゲームなどではタスクシステムの経験と知識が必要になることもあります。タスクシステムを一言でまとめるなら、データ処理を行うための連結したリストです。詳しい解説は避けますが、覚えておきましょう。
根気とメンタル
最後に、ゲームプログラマーに最も必要とされることについて触れておきます。それは、根気とメンタルです。
プログラミングの仕事というのは、とても根気のいる作業となっています。度重なるチェックやバグの修正などに対応していくという、なかなか終わりが見えない作業です。
また、繊細な作業でもあるため、長時間の繊細な作業に耐えうるだけのメンタルが必要不可欠となっています。