ゲームプログラマーになるには?仕事内容・必要スキルと実際に転職するまでの話

ゲームプログラマーになりたい。
でも、「何を勉強すればいいの?」「C++ができないと無理?」「ゲームを1本作らないと転職できない?」「そもそも未経験からなれるの?」
このあたり、最初はよく分からないですよね。^^;
ボクも最初からゲームプログラマーだったわけではありません。
サービス業からプログラミングを勉強して、Web・システム系のプログラマー、ゲームではないUnreal Engineの開発を経て、ゲーム会社へ転職しました。
遠回りにも見えますが、振り返ってみると、そのとき持っていた経験を使って次の会社から評価される経験を一つずつ増やしていった感じなんですよね。
この記事では、ゲームプログラマーの仕事内容や必要なスキルだけでなく、ボク自身が実際にゲームプログラマーになるまでに通った道と、ゲーム会社へ入ってから分かったことも含めて紹介します。
ゲーム業界の職種全体から見たい場合はこちらもどうぞ。
→ゲーム業界の仕事・職種についてはこちら

メニュー
1.ゲームプログラマーの仕事内容は思っているより広い
ゲームプログラマーは、ゲームの仕様や企画を実際に動く形へしていく仕事です。
キャラクターを動かす、敵の処理を作る、UIを表示する。こういう分かりやすい実装だけでなく、実際には担当する範囲がかなり広いです。
ボク自身も、ゲーム会社に入る前後を含めて、UI、Actorなどゲーム内オブジェクトの制御、カメラ、通信、ツール開発、Python、自動テスト、最適化、コードレビューなど、いろいろな処理に関わってきました。
「ゲームプログラマー」という一つの名前で呼ばれていても、会社やプロジェクトによって仕事は結構違います。会社によっては「ゲームエンジニア」と呼ばれることもあります。

●ゲームの機能を実装する
プレイヤーの操作、敵の挙動、アイテム、ステージ上の仕掛けなど、ゲームそのものの機能を実装します。
仕事では、ただ動かすだけではなく、「どこに処理を持たせるか」「あとから仕様が変わっても直しやすいか」なども考えながら作っていきます。
ゲーム会社へ入って感じたのは、仕様が最初から完全に固まっているとは限らないということでした。途中で変わることもあるので、変更に対応しやすい作り方も大事になってきます。

●UI・カメラ・通信などもプログラマーの仕事
ボクはUnreal Engineを使った開発で、Widget Blueprintを使ったUIやカメラまわりを触ることが多くありました。
UIも見た目だけではなく、「いつ表示するか」「どのデータを表示するか」「入力をどう受け取るか」など、裏側にはプログラムがあります。
ゲームによってはネットワーク通信や外部サーバーとの連携も必要です。ここでは、ゲーム業界へ入る前に経験していたWebやサーバー側の知識も役立ちました。

●ツール開発・バグ修正・最適化もある
ゲーム画面に出るものだけを作るわけでもありません。
ボクの場合は、Pythonを使った開発用の仕組みや自動テストなどにも関わってきました。バグを直したり、重い処理を調べたり、動作を軽くしたりするのも仕事です。
「動いたからOK!」では終わらないことも多いです。笑

2.ゲームプログラマーが使う言語・ゲームエンジン
「ゲームプログラマーになるなら何の言語を勉強すればいい?」
これも気になるところだと思います。
ただ、最初から全部を勉強する必要はありません。作りたいものや、使うゲームエンジンによって変わります。

●C++とUnreal Engine
ボク自身が実務で長く使ってきた組み合わせです。
Unreal EngineではBlueprintだけでもいろいろなことができますが、仕事として深く関わっていくとC++を使う場面も出てきます。
ボクも最初からC++が得意だったわけではありません。非ゲーム分野でUEを使い始めたころは、Blueprintを触りながら少しずつC++を覚えていきました。
そこから実務の中で、オブジェクト指向やクラス設計、継承、インターフェース、デザインパターンなども勉強しました。
なので、「C++を完璧にしてからUnreal Engineを始めよう」と考えなくてもいいと思います。実際に何かを作りながら覚えていく方が、ボクには合っていました。

●C#とUnity
UnityではC#がよく使われます。
ボク自身は仕事ではUnreal Engine側の経験が中心なので、Unityについて「現場ではこうです」と深く語るつもりはありません。
ただ、最初の入口としては、UnityかUnreal Engineのどちらかを触って、実際に動くものを作ってみるのは分かりやすいです。最初から両方を極める必要はないです。

●PythonやWeb系の経験も無駄ではなかった
これは転職してみて強く感じたところです。
ゲームプログラマーというと、C++やC#以外は関係ないように見えます。でも実際には、Python、JavaScript、TypeScript、Webフロントエンド、サーバー、API、ネットワークなど、それまで勉強してきたものが役立つ場面もありました。
もちろんゲーム開発そのものの経験とは違います。
でも、「ゲーム以外のプログラミング経験だから意味がない」わけではありません。

3.ゲームプログラマーになるには?「未経験」を分けて考える
ゲームプログラマーになる道は一つではありません。
特に転職では、「未経験」という言葉を全部ひとまとめにしない方がいいです。
- 学生からゲーム会社を目指す
- 他業界のプログラマーからゲーム会社を目指す
- プログラマー自体が未経験の状態から目指す
この3つでは、持っている経験も、見せるものも変わります。
学生から新卒で目指す場合は、学校での学習や制作物などが材料になります。ただ、ボクはこのルートではないので、ここについて自分の経験として詳しく語ることはできません。
一方、Webや業務システムなどで、すでにプログラマーとして働いているなら、チーム開発、Git、コードレビュー、設計、テスト、サーバー、ツール開発などの経験は使えます。
ボクの場合はさらに、ゲーム会社へ転職する前に非ゲーム分野でUnreal Engineを実務利用できたことがかなり大きかったです。
ゲーム業界自体は未経験でも、UE経験のあるプログラマーとして話をしてもらえた感覚がありました。
逆に、プログラマー自体が未経験なら、まず「コードを書いた」「小さくても何か作った」「プログラマーとして働いた」という一段目を作る考え方もあります。
ボク自身も最初はそこからでした。
完全未経験からゲーム業界を目指す場合は、学習・作品・自己PRまでこちらの記事で詳しくまとめています。
→未経験からゲーム業界へ転職する方法はこちら

4.ボクがゲームプログラマーになるまでに通ったルート
改めて並べると、ボクはこんな感じでした。
↓
Web/システム系プログラマー
↓
ゲームではないUnreal Engine開発
↓
ゲームプログラマー
こうして見ると、「最初からきれいに計画していたんですね」と思われるかもしれません。
全然そんなことはありません。笑
昔からゲームを作る仕事には興味がありましたが、自分には難しいと思っていました。なので、最初はゲーム会社ではなくWeb系のプログラマーを目指しました。
JavaScriptやHTML、CSSなどを勉強して、小さなWebページを作り、まずプログラマーとして働ける会社へ入りました。
そこでプログラムを書く経験を積み、次の会社ではWeb系の仕事をしながら、自分でUnreal Engineを触るようになりました。その後、社内で提案したことがきっかけで、ゲームではないUE開発を実務で担当するようになりました。
ここがボクにとってかなり大きかったです。
UE、C++、Blueprintを仕事として使う経験が増えたことで、ゲーム会社へ応募したときも「ゲーム業界は未経験だけど、UEまで未経験」という状態ではなくなりました。
ゲーム会社への転職でも簡単に決まったわけではありません。それでも最終的には、Unreal Engine、C++、WebやPython、チーム開発、コードレビュー、リーダー経験など、それまで積み上げてきたものをまとめて説明できました。
ボクの場合、サービス業からいきなりゲームプログラマーになったわけではありません。
一つずつ「次の会社で使える経験」を増やしていった感じです。
最初からゲーム会社へ行けるなら、それが一番早いです。でも難しいなら、関連する実務経験を先に取りにいくルートもあると思います。

5.ゲームプログラマーのポートフォリオは必要?
これは一律に「絶対必要」とは言えないと思っています。
ボク自身、最初にプログラマーへ転職したときは、自分で作った簡単なWebページがありました。GitHubにも公開していて、その作品がきっかけで声をかけてもらった会社もありました。
一方、ゲーム会社へ転職したときには、個人制作のゲーム作品、GitHub、動画などを提出していません。
その代わり、Unreal Engine、C++、Blueprint、Python、Web開発、チーム開発など、仕事として説明できる経験がありました。
つまり、ポートフォリオがどれくらい必要かは、それまでの実務経験によって変わると思っています。
完全未経験なら「実際に作れる」という証拠として作品が役立ちます。すでに関連する実務経験があるなら、職務経歴そのものが大きな材料になることもあります。

6.ゲームプログラマーの年収は、数字だけで見ない方がいい
ゲームプログラマーの年収は、経験年数、担当領域、会社、役割などで変わります。
なので、「ゲームプログラマーなら○○万円」と一つの数字だけで考えない方がいいです。
個人的には、年収と一緒にその会社でどんな経験を積めるかも見た方がいいと思っています。
ボクの場合、非ゲームでもUnreal Engineを実務で使えた経験が、その次のゲーム会社への転職で大きな材料になりました。
短期的な給料だけでは見えにくいですが、「次に何ができるようになるか」もキャリアではかなり大事です。
なお、GDNaviでは以前の業界調査をもとに、ゲーム会社の職種別・年代別の年収データもまとめています。現在の年収相場そのものというより、職種や年代によってどのくらい差があるのかを見る参考としてどうぞ。
→ゲーム会社の職種別・年代別の年収データを見る

7.ゲームプログラマー転職でエージェントを使うなら「今ある経験」を見てもらう
転職エージェントは必須ではありません。直接応募してもいいです。
使う場合に大事なのは、「ゲーム業界未経験だから無理ですか?」だけで終わらせないことだと思っています。
ボクなら、「この会社は、どんな経験や技術を持っているプログラマーを求めていますか?」と聞きます。
ゲーム業界未経験でも、C++、Unity、Unreal Engine、Web、サーバーなど、すでに持っている経験が評価されることがあるからです。
ゲームプログラマー向けの転職エージェントについては、こちらで詳しく整理しています。
→ゲームプログラマー向け転職エージェントの選び方はこちら
ゲーム業界全体で比較したい場合はこちらです。
→ゲーム業界の転職エージェント比較はこちら

8.ゲーム会社に入ってから「先に勉強しておけばよかった」と思ったこと
ゲーム会社へ入る前は、「必要になったら仕事で覚えればいい」と思っていた部分もありました。
もちろん、入ってから覚えることはたくさんあります。
ただ、実際に働いてみて「もう少し早く勉強しておけばよかったな」と思ったものもあります。
ボクの場合は、DirectXやシェーダーなどです。
これらがゲームプログラマーになるために全員必須、という意味ではありません。
でも会社に入って感じたのは、すでに詳しい人には、その知識を使う仕事が集まりやすいということでした。
当たり前といえば当たり前ですよね。^^;
「仕事で必要になったら勉強しよう」だけではなく、「これ面白そうだな」と思った技術があれば、自分から少し触っておく。
その積み重ねが、あとで担当できる仕事を増やしてくれることがあります。
ゲームプログラマーになったら勉強が終わるというより、むしろ入ってから知らないことが山ほど出てきました。笑

9.まとめ|ゲームプログラマーになる道は一つじゃない
ゲームプログラマーになる方法を調べると、「専門学校へ行く」「Unityでゲームを作る」「C++を勉強する」「ポートフォリオを作る」など、いろいろな方法が出てきます。
どれも間違いではありません。
でも、全員が同じ道を通る必要もないです。
ボク自身、サービス業からプログラマーになり、Web・システム開発を経験して、非ゲーム分野でUnreal Engineを使い、そこからゲーム会社へ転職しました。
かなり遠回りです。笑
でも、その途中で身につけたものは、ゲーム会社へ入ったあとも使っています。
だから、「今の自分にはゲーム開発経験がないから無理」と考えるより、今持っているものから、次に評価される経験を一つ増やす。
それでいいと思っています。
最初からゲーム会社へ行けそうなら、もちろん直接目指せばいいです。難しければ、Webでもシステム開発でも、ゲームエンジンを使った非ゲーム開発でもいい。
次につながる経験を増やしていけば、少しずつ選択肢は広がります。
昔「自分にはゲームプログラマーなんて無理だろうな」と思っていたところから、ボクも実際に仕事にできました。
なので、興味があるならまず一つ作ってみてください。
そこから次を考えれば大丈夫です。
ではでは……がんばってー!





