ホームお問い合わせプロフィール未経験→就職転職合格率年収の相場ブラック企業判別定時帰りする方法

ゲームプログラマーの『求人の見方』と最近の技術事情を紹介

2016年7月11日に投稿 → に更新 技術

スマホゲーム

「ゲームプログラマーってどんなスキルがあればいいの?」
「需要が多い技術を知りたい」
「優良なゲーム会社を見分ける方法ってある?」

私は元々業務システム開発の仕事をしていて、Webサービス開発へ移った後、ゲームエンジニアになりました。

ゲームプログラミングって難しい印象があったのですが、独学でUnityを学んで、いくつか自作ゲームを作って、それを実績にして応募したら採用してもらえました。

そんな経験を踏まえて、「ゲームプログラマーの求人の見方を経験者が教えます」を紹介します。

ゲームプログラマーは大きく分けて2種類

ゲームプログラマーの求人は、

  1. クライアントサイドエンジニア
  2. サーバーサイドエンジニア

があります。

Webの場合、クライアントもサーバーも一人のプログラマーで対応することが多いですが、ゲームの場合、クライアントとサーバは担当が分かれる場合が多く、求められる技術セットも異なります。

クライアントサイドエンジニアはゲームの画面表示プログラムを作ります。

サーバーサイドエンジニアはサーバーのデータベースを検索したり更新するプログラムを作ります。

1. クライアントサイドエンジニア

  • C++またはC#を用いたゲームプログラム開発経験
  • コンシューマーゲーム開発経験、もしくはUnityでの開発経験
  • スマートフォン(iOS/Android)に関するゲームプログラミング経験がある方

のように書かれているのがクライアントサイドエンジニアです。

C++, C#, iOS/Android等と書かれていれば、クライアントサイドエンジニアの募集だと考えて良いでしょう(C++はサーバーサイドで使われてる場合も有り)。

2. サーバーサイドエンジニア

  • LAMP環境での実務経験がある方
  • 大規模サービスでの実務経験がある方
  • PHP、Ruby、Javaを使用したシステム開発経験
  • Linux、RDBMSを用いたアプリケーションの開発経験

などと書かれているのはサーバーサイドエンジニアの求人です。

分かりやすく「サーバーサイドエンジニア募集」って書いてある求人もあります。

そうではなく、「ゲームエンジニア募集」って書かれている場合は、

「どっちサイド(クライアント/サーバ)の募集なのか」

をよく見てみましょう。

これからゲームプログラミングの技術を覚えたい方は、クライアント側(画面表示)かサーバーサイド(データベースアクセス)のどっちをやりたいかを考えてみてください。

個人でゲームを作る場合は両方必要なので、両方学びます。

ゲームのサーバーサイド技術はWebのサーバーサイドと大部分は同じなので、Webや業務システムのサーバーサイドエンジニアをやってる方がゲームのサーバーサイドに転身するのは比較的かんたんです。

ゲーム開発の流行技術

最近はスマホゲームの求人が多いのでそちらに絞って考えてみます。

クライアントサイドの技術

スマホアプリは大きく分けて

  1. iOS系(iPhone, iPad等) → プログラミング言語はObjective-CかSwift
  2. Android系 → プログラミング言語はJavaかKotlin

があります。

同じゲームでもiOSとAndroid両方にリリースするなら本来、別の言語で作らなければならないのです。

その不便さを解決するために登場したのがクロスプラットフォームのゲームエンジンです。

1. Unity

現在一番よく使われているゲームエンジンです。Unityで開発したコードは設定によりiOS用にもAndroid用にもビルドできます。

またUnityは2Dと3Dどちらのゲームもかんたんに作れます。ゲームプログラミングって難しい印象がありますが、Unityを使うと思ってたよりずっとかんたんにゲームを作れます。

UnityではC#, JavaScript, Boo(Python方言)の3つのプログラミング言語が使えますが、ほとんどの会社でC#が使われています。

2. Cocos2d-x

Cocos2d-xも人気のあるゲームエンジンです。

Unityとの一番の違いはCocos2d-xが2Dのみのサポートであることです。Cocos2d-xで3Dゲームは作れません。

最近のスマホゲームは3Dのものが多いですが、まだまだ2Dゲームも人気なので、2Dゲームを作りたい方にはいいと思います。Cocos2d-xではC++でコードを書きます。

3. Unreal Engine

Unreal Engingeはグラフィック性能に優れたゲームエンジンです。

Unityよりも綺麗なグラフィックのゲームが作れると言われています。

開発言語にC++が使用されます。

サーバーサイドの技術

サーバーサイドの技術は大きく分けて2つの要素があります。

  1. プログラミング言語
  2. データベース

1. プログラミング言語

サーバーサイドのプログラミング言語は多数の選択肢があります。

PHP, Ruby, Python, Perl, node.js, Java, Scala, Go等さまざまです。

JSON APIというJSON形式(JavaScript Object Notation)のデータをクライアント側に返すAPIを作成します。

2. データベース(DB)

MySQL, PostgreSQL, Redis, memcached, MongoDBなどがよく使われています。

MySQL, PostgreSQLはリレーションデータベースと言われるタイプのDBで、SQLという問い合わせ言語を使います。

例えば、ユーザーの経験値を取得するSQLは

SELECT keikenchi FROM users WHERE user_id=12345

のような感じになります。英語みたいですよね。

Redis, memcached, MongoDBはNoSQLというタイプのDBでSQLのような共通の問い合わせ言語はなく、それぞれのDBごとにちがったアクセス方法が用意されています。

ゲームエンジニアは需要が増加中で求人がたくさんあるので、ぜひチャレンジしてみてください。私も独学で採用まで行けましたからね。