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

Javaエンジニアがゲームエンジニアに転職する方法を経験者が教えます

2015年11月2日に投稿 → に更新 技術

Javaの赤いロゴ

「ゲーム作る仕事したいけど、難しいかなぁ?」
「業務システムに比べてゲームの方が難しいって話聞くけど…」
「ゲーム開発には数学の知識が必要っていうけどホント?」

プログラマーなら誰でも一度は「ゲームを作りたい!」って思ったことがあるかと思います。

私もプログラミングを始めた理由は「ゲームを作りたかったから」でした。

実際就職した会社は業務システム開発の会社で、10年程Javaで業務システムを開発する仕事を続けた後、ゲームエンジニアへ転身しました。

ですから、「Javaエンジニアがゲームエンジニアになることは充分可能です!!」

いくつかの工夫をしたら、意外とかんたんに転身できたんです。

そんな方法を紹介します。

Javaからゲームエンジニアになる2つのパス

  1. ゲームのサーバーサイドのプログラムをJavaで作ってる企業に入る
  2. ゲームのクライアント技術(Unity、Unreal EngineやCocos2d-x等)を学んでクライアントサイドエンジニアに転身する

1. ゲームのサーバーサイドエンジニアになる

ゲームのサーバーサイドの多くはWebと同じ技術で作られています。
いわゆるJSON APIです。WebでもAjaxによる通信をする場合、サーバーサイドはレスポンスとしてJSON形式のデータを返しますよね。あれと全く同じ仕組みでゲームのサーバサイドも実装されています。

例えば、ソーシャルゲームでガチャを回す機能で考えてみましょう。
ガチャを回すボタンを押すとサーバのJSON APIへ通信して、サーバーサイドで乱数を生成してランダムにカードを決定して、決定したカードをレスポンスとして返します。レスポンスを受け取ったクライアントプログラムは画面にカード画像を表示します。

このサーバサイドの部分はWebと同じ技術で実装されています。
JavaでいうとSpringやJerseyなどでJSON APIをかんたんに作ることが出来ます。もちろん、素のServletのout.printlnにJSON形式の文字列を出力する方法でも作れます。

大抵の会社はレスポンスのデータオブジェクトをSpringやJerseyなどのフレームワークを使ってJSON形式に変換出力しています。

私が参加したゲーム開発のプロジェクトのサーバーサイドはいずれもJavaで実装されていました。ゲームのサーバは高い処理性能が要求されるのでPHPやRubyのようなスクリプト言語よりも高速に動作するJavaを採用している会社が多いようです。

ゲームのサーバサイドエンジニアになるのであれば、使ってる技術はほぼ同じなのでかんたんに転身できます。

2. クライアント技術(Unity、Unreal EngineやCocos2d-x等)を学んでクライアントエンジニアに転身する

「サーバーサイドじゃなくて、キャラを動かしたりしたいんだよ!!」という方はクライアント技術を学ぶといいでしょう。

私もそういうタイプでして、こちらの道でゲームエンジニアに転身しました。Unityを独学して、いくつか個人でゲームを作って、それを実績としてアピールしたら採用してもらえました。

作品を作ってアピールしなくてもUnityエンジニアの需要は高く、多くの会社が人手不足なので、「独学で学びました!」だけで通る会社も多いと思います。

Unityは超おすすめ

Unityはゲームエンジンと開発環境がセットになっていて言語は、

  • C#
  • 静的型付JavaScript
  • Booという静的型付Python

で開発することが出来ますが、ほとんどの企業ではC#が使われています。

C#は文法がほとんどJavaといっしょなのでかんたんにマスターできます。プロパティやインデクサなどJavaにはない、ちょっとした便利な文法があって、コード書くのが楽しい言語です!

ですから、JavaエンジニアがUnity・C#を学ぶのはとても良い選択だと思います。

C++派ならCocos2d-x or Unreal Engine

C++が得意だという人はCocos2d-xを学ぶのも良いと思います。Cocos2d-xも人気のゲームエンジンで多くの企業が採用しています。ただ、こちらはUnityと違って2Dゲームしか開発出来ないので、需要は今後減っていくのではないかと思います。

Unityは2Dも3Dも開発出来て、しかも、開発のかなりの部分を開発環境のUI操作で行うことが出来ます。キャラクターや建物などをドラッグアンドドロップで配置して、位置の調整などをしたら、それらを動かすC#のコードを少し書けばゲームが完成します。もちろんそれなりの規模のゲームを作るにはたくさんコードを書く必要はありますけどね。

Unityとほぼ同等の機能のを持っているゲームエンジンとしてUnreal Engineがあります。グラフィック性能が優れていて、美しいビジュアルのゲームを作ることができます。言語はC++です。

「習うより慣れよ」だし「独学するより仕事しながら学べ!」

プログラミングは「習うより慣れよ」だってよく言われていますよね。
「本を読んでいるだけでは身に付かないので、コードを書くべし」って話です。

もっと進めると、「学んでばかりじゃなく、仕事で使うべし」になります。

私はUnityを独学で4か月学んだ後、Unityの仕事を開始しましたが、仕事を開始してからの方がずっと速く上達しました。

ですから、ある程度基礎が身に付いたら、転職活動してみるといいと思います。独学でゲーム技術を学んでいてもお金をもらえませんが、仕事にするとお金も貰えて、しかも上達も速いので一挙両得ですからね。