ゲームプログラマーはなぜ増えない?ゲーム業界への就職、転職を考えている人向け、抑えておかないといけない点

今回は、ゲーム業界へプログラマーとして就職転職を考えている人向けの記事です。特に、ゲームプログラマーを目指している人や、システム系のプログラマーからの転職を考えている人は、この観点を知らないと就職や転職は難しいです。

ゲーム業界の人からの質問

先日、ゲーム業界の人からこんな質問がありました。それが、「ゲーム業界は、人気の職種のはずなのにどうして人手不足なのですか?」というものでした。ゲーム業界の人曰く、端的に言えば、スキルがないからということです。しかしそれでは元も子もないですよね。それに、ゲーム業界の人が言うプログラマーのスキルがないということと、就職したい、システム系のプログラマーからゲームプログラマーに転職したいという人には、スキルのニュアンスに違いがあります。事実、何年の業務系のプログラムを何年もやってきている人でも、転職活動や転職してからの業務でつまずいてしまうというケースがあります。

日本のプログラマー人口とソーシャルゲーム業界の景気

スクリーンショット 2016-02-05 13.45.15

日本のプログラマー人口は、平成22年国勢調査では、約323570人がソフトウェア開発をおこなっている調査結果が出ています。もしかすると現在はもう少し多いかもしれませんが。一方現在のソーシャルゲーム業界は、ゲーム市場全体でも大きな割合を占めており、スマートフォンやタブレットでプレイするゲーム(ソーシャルゲームを含んだ)、オンラインゲーム市場は、過半数を占めるほどになっています。特に、ソーシャルゲーム系の大手は業績を信じられないほど大きく伸ばしています。

配信元 経済産業省 IT人材を巡る現状について (データ編) 平成27年1月 情報処理振興課 

コロプラ
unnamed-2

配信元 コロプラホームページより

mixi
unnamed-1

配信元 mixiホームページより

LINE
unnamed

配信元 LINEホームページより

そのため、多くのプログラマーは、ソーシャルゲーム業界への転職を希望されたりします。しかしながら、CやC++、Javaなどを10年近くやってきましたという人でも転職は苦戦します。なぜでしょうか。

1システムのプログラマーとして優秀な人は・・・

プログラマーにとって、低レベルプログラミングを理解していることは重要です。よりコンピューターの処理に沿ったプログラミングにより高速での処理が可能となります。そのため、ファミコンなどの家庭用ゲーム機が出だした時は、ハードのスペックが低かったため、アセンブラやC言語が主力となっていました。しかし最近では、ハードのスペックの向上により、開発にかかる時間と処理速度を天秤にかけた時、前者を優先してもハードがカバーしてくれるということで、C++やC#などのより制限の少ないプログラミングを使うようになりました。それに今使われている最新の言語は、低レベルプログラミング言語を根本に使って作られているので、新しい言語も覚えやすくなります。そしてここまでの話は、優秀なシステムプログラマーに必要なスキルです。優秀なゲームプログラマーは、これだけでは足りません。

ゲームプログラマーに必要なこと

ゲームプログラマーとして働くためには、何よりゲーム性を理解していることが有用です。システムのプログラミングの多くは、ユーザーからのアクションに対して、内部で処理をし、答えを返す、という形のプログラミングが多いと思います。しかし、今出されているゲームの多くはそれだけでは面白いゲームとはなりません。

スーパーマリオブラザーズ

世界的にも有名なゲームですが、このようなゲームの基本構造は、1秒間に何枚ものグラフィックを映し出すというものです。たまに見るFPSという単位は、フレームパーセック、1秒間に何枚のグラフィックを表示するかを示します。そこにコントラーローのボタンを押すというコマンド入力によってグラフィックを変化させることによってゲームが成り立ちます。

コマンド入力

このスーパーマリオブラザーズの場合、十字キーを押すと背景やキャラクターが動きます。それがフレームごとに行われます。加えてボタンを押している時間でも変わってきます。例えば、ジャンプ、ちょっと押したときはジャンプの幅が小さく、押している時間が長ければ大きくジャンプする、また話すタイミングでその後のキャラクターの動作も上昇にどれだけの余韻を残すかも考慮しなければなりません。さらに、静止状態、歩行状態、ダッシュ状態でのジャンプにも違いが生まれてきます。

shutterstock_318174389当たり判定

次に重要になってくるのが当たり判定というものです。キャラクターの中心から一定の周囲にはその範囲に対象が入ったときに作用するプログラミングが組み込まれています。移動中に横に接触するものがあって、それが障害物なら静止、敵ならミスなどというレスポンスが起こります。逆にこれがないと何もなかったように通過してしまいます。どんな裏技、バグだよってかんじになります。

 

ゲームプログラマーに必要なこと

そのため、ゲーム制作において、このゲーム性というものが重要となってきます。それは、システムのコマンド入力→処理→出力というプログラミングだけでなく、ゲームでは、コマンド入力→処理→コマンド入力時の条件分けに付随した出力、さらにプレイヤー以外からもたらされる影響の反映の出力もあります。今回は、スーパーマリオブラザーズを例にあげましたが、それは、格闘ゲーム、シューティングゲーム、アドベンチャーゲーム、ロールプレイングゲームなど、それぞれのジャンルにこれくらいならはあった方がいいよねというゲーム開発者たちが感覚的に持っているさじ加減があったりします。それは仕様書にも書かれていないことが多く、システム上がりのプログラマーにとってはここが一番の難所ではないかと思います。そのため、まずはゲームプログラマーに成ろうと思うのであれば、名作となるゲームがどんな風になっているか知り、色々なジャンルをプレイし、面白いゲームはこんな感じだという感覚を磨くことが重要です。そして、その感覚を踏まえた上で、どんどんアレンジをし、ヒット作につなげることができれば、アンリアルエンジンやUnity、無双エンジンなど、色々なゲームに流用されるようなゲームエンジンの開発ができるのです。

狙い目はコンシューマー会社のサーバーエンジニア

最近、ソーシャルゲームの発展によって受領が増えてきたのが、サーバーエンジニアの職です。PHPなどを使ったサーバー構築、管理、保守などバックヤード側のエンジニアになります。IT業界上がりのソーシャルゲーム会社は、もともとこちら側に強みを持っていますが、コンシューマーの会社はまだそのようなノウハウを持っている企業は少ないです。しかしながら、今後、家庭用ゲーム機を使ったインターネット経由でのゲームの需要はどんどん増えてくるでしょう。また、DeNAと任天堂の業務提携のように、大手コンシューマーメーカーがソーシャルゲーム会社と提携し、ソーシャルゲーム開発に進出流れになるでしょう。そうなってくれば必要となるのが、サーバーエンジニアになります。ゲーム性の感覚は少ないが、間接的にもゲームに関わりたいという方はこのような職種もあります。

ラクジョブでは、フロント(画面に表示される)プログラマーやバックヤード(サーバー)プログラマーの経験者の募集があるとともに、新卒やシステム上がりのプログラマーをゲームプログラマーとして教育するカリキュラムを持った企業もあったりします。もしご興味がありましたら下記のフォームよりご相談ください。


toiawase-1024x226-1