ゲームエンジニアに贈る、面接に役立つ経験5選

ゲーム開発

面接の場で自信をもって自分をアピールできるような経験を積むことは非常に重要です。
若いうちであれば経験がなくともやる気や熱意でなんとかなるケースもあるでしょうが、歳を重ねて即戦力が期待される年代になるとそれまで積み重ねた経験は非常に重視されます。
したがって、若いうちにどんな経験を積むかでその後のキャリアが大きく変わります。

この記事では、ゲームエンジニアが面接で強力なアピールポイントとなる5つの重要な経験について紹介します。
これらの経験は今まで僕が経験してきた面接の中で、よく質問される内容だったり、募集要件で歓迎されるものだったりします。

なお、この記事は色々な経験を積みやすい若手ゲームエンジニアが主な対象ではありますが、年齢を重ねていても役立つ経験です。
加えて、他業種のエンジニアでも、ある程度通じるところはあると思います。
面接の成功率を少しでもあげたい人はぜひ参考にしてみてください。

エンジニアリーダー(リードエンジニア)経験

エンジニアリーダーとは

複数人でゲーム開発をする上でまとめ役となる人は必ず必要になります。
それがエンジニアリーダーです。
会社によってはリードエンジニアと呼称される場合もあります。

エンジニアリーダーの業務は、通常のエンジニアと同様のゲーム開発業務に加えて以下のようなものがあります。

  • 他メンバーのタスク管理(タスクの割り振り、巻取り等)
  • 開発スケジュールの管理
  • 開発要件の見積もり、実装可否の判断
  • 各種ミーティングの参加

エンジニアチームのまとめ役や、新機能実装のスケジュール調整等の重要な判断を求められる役割ですね。

エンジニアリーダーになるには

基本的にはメンバーの中で一番経験豊富な人がエンジニアリーダーになることが多いです。
特に大規模なプロジェクトの初期段階やリリースといった多くの不具合や問題発生が想定される重要な局面では、ベテランの人がエンジニアリーダーになる傾向が強いです。

逆に、リリース後しばらくして運用が安定してきたプロジェクト等であれば「やりたい!」と手を挙げた人がエンジニアリーダーをやることができるケースが多いです。
とりあえずエンジニアリーダーの経験を積んでみたい場合はこちらがおすすめです。
ただし、比較的楽にエンジニアリーダーの経験が積めるとは言え、通常のエンジニアよりは大変なので仕事が忙しくなる覚悟はしておきましょう。

面接でのアピールポイント

まず、[エンジニアリーダーを経験している]=[ある程度のスキルが保証される]、という図式が成り立つので、「エンジニアリーダーとしての経験もあります」だけでもアピールになります。

さらにアピールしたい場合は、プロジェクトの運用改善や問題が発生した時に乗り越えたエピソード等を話せると効果的です。
以下は具体例です。

  • プログラムの作りが複雑化し、新しく入ってくるエンジニアがキャッチアップに苦労していたため、ドキュメントを整備してキャッチアップを効率的にできるように改善した。
  • 採用しているクラウドサービスを移行し、システムのパフォーマンスは落とさずに月○○円のコスト削減に貢献した。
  • プランナー、デザイナー等の他部署との連携がうまくとれていなかったが、週次ミーティングを設けて改善させた。
  • 機能開発で遅延が発生していたが、マネージャーと交渉して人員補充に成功し、無事スケジュール通りにリリースできた。

幸いにもエンジニアリーダーとなることができた場合は、上記のような問題改善を常に意識していくことでよりよい経験を積むことができると思います。

リリース経験

リリースとは

ここでは開発したゲームを世に出すことを指します。
スマホゲームであればAppleやGooglePlayの審査対応、PCゲームであればSteamやEpicGamesの審査対応等が該当します。

また、リリースの前後にありがちな緊急性の高い不具合対応等もリリース経験として扱われることも多々あります。
例えば以下のようなものがあります。

  • 特定の機能が審査に引っかかり、大幅な修正を余儀なくされた。
  • ゲームから本番環境のサーバーのアクセスがうまくいかず、緊急メンテナンスが発生した。
  • リリース後のユーザー数が想定よりも多く、サーバーがダウンした。

リリース経験を積むには

すでにリリースしているゲームのプロジェクトに配属されている場合は、当然ながらリリース経験を積むことはできません。
リリース前のプロジェクトへの配属希望を積極的にアピールしていきましょう。

会社によってはなかなか配属が変わらず、リリース前のプロジェクトに参加できないということもあるでしょう。
そういった場合は、個人でアプリをリリースしてみるのもアリだと思います。
個人でやるリリース対応とチームでやるリリース対応では多少勝手が異なりますが、それでも十分アピールできる経験になるはずです。

面接でのアピールポイント

リリース前のゲームの案件では、リリース経験があるエンジニアというのは大変魅力的な人材です。
会社の規模によっては、リリース経験があるエンジニアがほとんどいないケースもあり、そういった会社にとっては喉から手が出るほど欲しい人材にもなり得ます。

リリースの際に、「どういった役割でどういった取り組みをしたか」「どういった問題で苦労したか」等を具体的なエピソードを交えてアピールすると良いでしょう。
リリースに関する情報や経験は、将来発生しかねない問題を回避するための貴重なヒントになるからです。

逆に、リリース済みのゲームの案件では、リリース経験の有無はさほど重視されません。
とはいえ、経験の豊富さと特定の技術力のアピールにはなるとは思うので、ちょっとした補足程度にアピールできれば十分でしょう。

基盤機能の実装経験

基盤機能とは

ゲーム開発における基盤機能とは、ゲームの基本的な動作や様々な処理で共通で使用する機能等を指します。
具体的には以下のようなものを基盤機能と言います。

  • クライアント・サーバー間の通信を行う機能
  • 課金機能
  • ログイン機能
  • セーブ・ロード機能
  • オーディオ機能
  • 画面に表示するポップアップ(モーダル)機能

基盤機能開発の経験を積むには

基盤機能を開発する人は基本的には実装するプログラミング言語や技術に精通している場合が多いです。
ゲームのあちこちで使われる機能という都合上、できるだけハイパフォーマンスかつバグが少ない作りにする必要があるからです。
例えば、Unity等のクライアントの基盤機能であれば「できるだけ描画コストが少なく、メモリリークが発生しない作り」だったり、サーバーの基盤機能であれば「できるだけ実行時間が短く、余計な通信が発生しない作り」みたいな感じです。

経験の浅いエンジニアがいきなり「基盤機能を開発したいです!」と声を上げてもやらせてくれることはあまり期待できません。
もちろん「極端に人手不足でそもそもベテランがいない」「まだ情報の少ない最新技術を扱うため誰も知見を持っていない」みたいな状況であれば可能性はありますが稀なケースです。

経験の浅いエンジニアが基盤機能の開発に関わるには、まず既存機能修正から取り組むと良いでしょう。
少なくとも基盤機能の新規実装よりははるかに難易度は低いのでチャンスは多いはずです。
もちろん修正とはいえ基盤機能の影響範囲は広いので、しっかりコードレビューをしてもらうこととテストを幅広くやってもらうことは必須です。

基盤機能の開発に関わるチャンスが全くなかった場合は、せめてどういう実装になっているかの確認くらいはしておきましょう。
基盤機能はあちこちに最適化の工夫がなされていることが多いです。
内容を少しでも理解できればあなたのスキルアップに役立つことでしょう。

面接でのアピールポイント

面接では兎にも角にもどういう機能を開発したかの具体的な説明をすると良いでしょう。
できれば「どうしてその技術を使ったのか」「どうしてそういう実装にしたのか」等の工夫した箇所を話せると尚よいです。

もし仮に、あなたが実装経験のある基盤機能が応募先のプロジェクトがちょうど開発しようとしている機能だった場合、あなたの採用率は格段に高くなるでしょう。

CI/CDの経験

CI/CDとは

Continuous Integration/Continuous Delivery&Deploymentの略で、日本語だと継続的インテグレーション/継続的デリバリー&デプロイという意味の言葉です。
CI(継続的インテグレーション)は、コードを頻繁に統合して自動テストを行うことです。
CD(継続的デリバリー&デプロイ)は、コードをリリース可能な状態に保ち、テスト後に自動でデプロイすることです。

ものすごく簡単に説明すると、コード実装後のテストからデプロイまでの流れを自動化することを指します。
JenkinsやGithubActions等を用いてテストやデプロイを自動化する仕組みを作ったことがあれば、CI/CDの経験があるといって差し支えないと思います。
※ただし、テストの自動化のみ作った経験がある場合は厳密にはCIのみの経験であり、CDの経験をしたとまでは言えないので注意してください。

CI/CDの経験を積むには

CI/CDは基本的にゲームのシステムそのものに直接影響するものではなく、運用プロセスの改善のための手法です。
したがって、仮に不出来なCI/CDだったとしてもそのせいで「ゲームに新たなバグが混入してしまう」みたいな事態はありません。

担当ゲームの運用プロセスに自動化する余地があるのであれば、積極的に声を上げてCI/CDに取り組んでみると良いでしょう。
もちろん作成したCI/CDが正しく機能するかはきちんとテストしてください。
加えて、スケジュールに余裕がない時やテストの真っ最中の時等は、余計な混乱を避けるためにCI/CDに手を付けるのは避けるのが無難です。

最近はChatGPT等でCI/CDのスクリプトを組むのが比較的簡単になっています。
もし現在のプロジェクトが全くCI/CDを取り入れていなくても、あなたが率先して取り組んでみても良いかもしれません。
「一からCI/CDを取り入れた」となれば、かなりのアピールになるでしょう。

面接でのアピールポイント

先ほども説明した通り、CI/CDは運用プロセスの改善のためのものです。
あなたが取り組んだCI/CDにより、どのように運用が改善されたかをアピールすると良いでしょう。
具体的には以下のような感じで説明できると良いです。

  • 手動で実行していたビルドを自動化し、ビルドにかかる時間を1時間から20分に短縮した。
  • ユニットテストの自動化を進めて、テスト工数の大幅削減に成功した。
  • コードレビューの自動化を行い、エンジニアのコード品質向上に貢献した。

旬の技術の経験

旬の技術とは

その時その時に流行っている技術のことです。
「人気のある技術」「注目されている技術」「需要が多い技術」とも言い換えられます。
それらの技術を用いたプロジェクトは、「企業が気合いを入れて取り組んでいる」「需要が多すぎてなかなか人材を確保できない」等の理由で案件の単価も高くなる傾向にあります。

2024年現在では、例えば以下のような技術がゲーム業界では旬の技術と言えます。

  • 生成AIを用いた開発あるいは生成AIを使う機能の実装経験
  • VR,ARゲームの開発経験
  • NFT関連の機能の実装経験

旬の技術を身につけるには

当たり前な話ですが、旬の技術を身につけるには「今の旬の技術は何か?」ということを知る必要があります。
おすすめの旬の技術の見つけ方は、転職サイトやフリーランスエージェントの案件情報をチェックすることです。
募集要項の必須要件や尚可要件を見てみると「○○の経験があること」みたいな記載があるはずです。
この「○○」があちこちの案件に共通して出てくるようであれば、それが旬の技術ということになります。

旬の技術を知ることができたら、あとはその技術について勉強しましょう。
独学でも勉強会の参加でも、あなたのやりやすい勉強のやり方でOKです。
できれば何かしらの成果物を出せるとよりアピールしやすいと思います。

面接でのアピールポイント

旬の技術を身につけたエンジニアは何かと需要が高いです。
なので旬の技術を使うプロジェクトは、人材確保に苦労しているケースが少なくありません。
あなたの経験次第では「即採用!」となる可能性も十分あるでしょう。

具体的には、経験した旬の技術について、「あなたはどのようなことができるか」「どういうものを作ったか」「どういう工夫をしてきたか」等を話せると良いでしょう。
面接にエンジニアの方がいるのであれば、もっと技術的な部分について詳細に話してみると良いでしょう。
あなたがいかに旬の技術について習熟しているか、しっかりアピールしましょう。

まとめ

以上が僕がゲームエンジニアを10年以上経験して感じた面接に役立つ経験です。
最初に書いてあるものから順に僕が優先度が高いと感じている経験になります。
とはいえ無理してすべての経験を網羅しなくても大丈夫です。
あなたが必要と感じたものだけでも経験を積むことができれば十分だと思います。

また、この記事では面接で評価されやすい経験をピックアップしていますが、面接にしか役に立たない経験というわけではありません。
むしろ実践にこそ役立つ経験だと思っています。
実践に役立つから面接でも評価される、みたいな論法です。

ちなみに、これらの経験は僕が「もっと若いうちに経験しておけばよかった…」と後悔した経験でもあったりします。
ぜひとも皆さんには早め早めに良い経験を積んでいただければと思います。

コメント

タイトルとURLをコピーしました