🐣

新人研修:プログラマー編

に公開

みなさん こんにちは!
2025年4月に入社いたしました、
ゲーム事業部 技術課の新人プログラマー、C.L、T.N、S.Eの3名です。

開発ブログに記事を投稿する機会をいただいたので
今回は、新人研修を通して特に印象に残った内容をまとめて、皆さまにご紹介したいと思います。
プログラマー向けの新人研修は、大きく分けて以下の3つで構成されています。

  • 制作座学講習
  • Unity研修
  • 共同カリキュラム研修

これからゲーム業界を目指すプログラマー志望の方々にとって、
少しでも参考になれば嬉しいです!

制作座学講習(4月上旬~5月下旬)

プログラマーとしての新人研修期間中、Unity研修と併行し、
先輩プログラマーから実践で役に立つ知識を座学形式で講義頂きました!

制作座学講習一覧
  • Unityの機能とTips講義
  • VBA&社内ツール
  • UnityUI
  • Unity社内フレームワーク講義
  • コーディングルール
  • コードレビュー
  • 設計思想
  • SVN&GIT
  • クリエーターが知っておくべき法律やライセンス
  • ゲーム制作の流れ_開発編
  • ネットワークの基礎
  • デバックノウハウ
  • Unity最適化
  • シェーダー
  • コマンドプロンプト
  • ソーシャルゲームの開発と運営について
  • ゲーム制作の流れ_運営編
  • スクリプトエンジン
  • 工数算出
  • Jenkins/Jenkinsビルド
  • UnrealEngineBP
  • UnrealEngineC++

専門学校では学べなかった内容も多く、非常に有意義な時間となりました。
その中でも特に印象に残った講義を3つに絞って、ご紹介します。

1. コードレビュー講義

最初に印象深かったのが「コードレビュー」に関する講義です。

  • なぜコードレビューを行うのか?
    • コーディング意識の共有
      • バグを事前に防ぐことやより良い書き方を共有
    • 可読性の向上
      • チーム全体で共通の記述スタイルを持つことで、読みやすさが向上
    • 修正・実装内容の共有
      • どこをどう変更したのか、誰が見ても分かるようにすることが重要
  • 何をレビューすべきか?
    • コーディングルールに沿っているか(コメントの有無、命名規則、インデントなど)
    • ロジックやアルゴリズムが正しいか
    • 不要な処理が含まれていないか
    • より安定した、より効率的な実装ができないか

入社後すぐに「人のコードを読む」「自分のコードを見せる」機会が増えたため、
“分かりやすいコードを書くこと”の大切さを日々実感しています。

自分のマージリクエスト(MR)を提出し、
トレーナーの方々からレビュー・フィードバックをいただく中で、
意識的にコードの見やすさや構造を改善するようになりました。

特に印象に残ったのは、
自分が1年前に提出した応募作品のコードがレビュー例として取り上げられたことです。
当時との比較で成長を実感できただけでなく、今だからこそ気づける改善点も数多くあり、
学びの多い時間でした。

2. Unity最適化講義

次に紹介するのは、Unityを使った開発における最適化講義です。
ゲーム開発における最適化は、ユーザー体験に直結する非常に重要な要素です。

  • 最適化の目的
    • パフォーマンス向上(フレームレートの安定化)
      • → ロード時間短縮、カクつき防止
    • メモリ使用量の削減
      • → 長時間プレイによるクラッシュやGC(Garbage Collection)頻発を防止
    • バッテリー消費・発熱の抑制(特にモバイル)
      • → ハードウェア劣化やバッテリー寿命の延命につながる
  • 実際の注意点と改善例
    • 毎フレーム呼び出す処理に注意
      • 例:GameObject.Find()やGetComponent()をUpdate()内で毎回呼ぶのは避け、事前にキャッシュする
    • 大量のInstantiate() / Destroy()
      • → オブジェクトプールの活用で生成・破棄の負荷を軽減
    • System.Linqの多用
      • → ToArray(), ToList(), OrderBy()などは便利ですが、メモリ負荷が高いため注意が必要

この講義では、UnityのProfilerを使いながら実際にパフォーマンスを測定し、
「どこがボトルネックか」「何を改善すべきか」を見極めるスキルも学ぶことができました。


UnityのProfilerでパフォーマンスを確認できるので便利です!

3. Jenkins講義

最後に紹介するのは、
CI/CD(継続的インテグレーション/デリバリー)の一環として導入されているJenkinsに関する講義です。

  • Jenkinsとは?

    • Jenkinsは、ビルドやテストといった一連の工程を自動化できるツール
      • → Unity開発と組み合わせて、シェルスクリプトからビルドプロセスを自動で走らせることが可能
  • Jenkinsを使うと何が便利?

    • 毎朝決めた時間に自動ビルドを実行できる

      • → 出社時には最新のビルドROMが準備済み!
      • → 手作業によるビルドミス防止&作業の効率化に貢献
    • 開発の安全性と安定性の確保

      • → 常に最新状態の検証ビルドが得られるため、安心して機能追加や修正を行える

Unity研修(4月中旬~5月下旬)

本研修はマトリックス入社後初めての本格的なゲーム制作になります。

社内フレームワークの習得を主な目的として、Unityでレースゲームを新人で制作します。

企画書・仕様書は用意されており、その要件に沿った実装を行っていきます。

以下はUnity研修の流れです。

  • (1) 開発環境セットアップ
    • GitLab,Sourcetreeなどのバージョン管理ツールの準備
    • Unity,VisualStudioなどのソフト準備
  • (2) 工数算出
    • 用意された仕様書を分析して、要素ごとにどれだけの時間がかかるか(工数)を算出します
  • (3) スケジュール計画
    • 算出した工数をもとに一か月の間に収まるようスケジュールを立てます
  • (4) 実装
    • 実際にUnityを使って実装していきます
  • (5) 納品対応
    • 不要ファイルを削除し、クライアントへの納品を想定して、マスターROMを含めたプロジェクト一式の納品対応を経験します
  • (6) 成果発表
    • 本研修で得られた成果をまとめ、プログラマーの先輩方に発表します

プログラマーの先輩方からサポートを受けながらこれらの項目をこなしていきます

Unity未経験者でもUnityを使いこなせるようになれる

新人プログラマーの3人は入社した時点では、UnityもC#もほぼ経験がありませんでした。
また、マトリックス独自の命名規則やフレームワークを習得・実践する必要がありました。

成長の鍵となるのが、実装後のコードレビューです。
経験豊富な先輩プログラマーが、一人ひとりのコードを丁寧に確認し、以下のような視点から指導していただけます。

  • 基礎:保守性を高める命名規則、コーディング規約の遵守
  • 設計:拡張性や再利用性を考慮した柔軟なクラス設計
  • 応用:パフォーマンスを意識した処理の最適化手法

この密なフィードバックのサイクルにより、実務で通用する技術力を直実に身に着けることができました。

学生のころとは違う業務フローや、使用する機能の違いなどから戸惑いや不安もありましたが、
先輩方と同期で助け合い乗り越えられたときは大きな成長を感じました。

MR、コードレビューなどをはじめとする実際の開発フローを経験できる

本研修では、チーム開発に不可欠なバージョン管理システム「Git」を使用します。
(GitLab, Sourcetree)

開発した個々の機能は、製品本体のプログラム(製品ブランチ)に統合する際、
「マージリクエスト」という申請を行います。
これは、自身の実装内容に問題がないか第三者によるレビューを受け、
統合の承認を得るための仕組みです。

マージリクエストが提出されると、先輩プログラマーによるコードレビューが実施されます。
レビューでは、修正が必要な点のほか、
より品質の高いコードにするための改善提案などがフィードバックされます。

これらのフィードバックをすべて反映し、承認を得て初めて、
自身のコードを製品ブランチへ統合することが可能になります。
この一連のプロセスは、実際のゲーム開発現場における品質管理手順に準じたものであり、
今後の業務でも役に立つ経験になります。

研修当初は、先輩方からのフィードバックの量に圧倒され、
修正に対応するだけで精一杯の日々でした。
しかし、その一つ一つに向き合うことで、品質の高いコードを書くための視点や知識が身につき、
プロのプログラマーとしての土台を築くことができたと感じています。

朝礼や夕礼・Unity研修全体を通して報連相を身につけられる

研修期間中は毎日、先輩プログラマーを交えた朝礼・夕礼を実施します。
ここでは進捗報告、連絡事項の共有、質疑応答などを行い、社会人として、
ゲーム開発者としてのコミュニケーション能力を磨きます。

特に重要となるのが「報告」と「相談」です。
本研修は個人制作ですが、将来担当するプロジェクトはすべてチームで進行します。
チーム開発において、報告や相談の遅れはプロジェクト全体に影響を及ぼす可能性があります。

問題が発生してから報告するのではなく、懸念が生じた段階で相談することにより、
先輩プログラマーからの迅速なフォローを受け、問題を未然に防ぐことができます。
この習慣を研修期間中に徹底して身につけていきます。

当たり前のように思えるかもしれませんが、
スケジュールの遅れへの焦りや、
先輩への遠慮から報連相が疎かになってしまうのは、多くの新人が直面する課題です。

実際のプロジェクトに参加してみて、
状況に応じた的確なコミュニケーションをとることの難しさを実感しました。

共同カリキュラム研修(6月上旬~7月下旬)

新入社員研修の集大成として、同期のプランナーやデザイナーといった、
他職種のメンバーと共同でゲームを制作する経験をしました。

職種ごとに役割が分かれているため、自分の担当タスクをどう実装するかだけでなく、
相手の要望をどう読み解くか・認識のすり合わせをどう行うかといった、
コミュニケーション面での学びも非常に多いものとなりました。


完成したゲームのタイトル画面

他職種との共同開発

最も印象に残っているのは、他職種との認識のズレが想像以上に大きかったことです。

例えば「キャラクターを少し滑らせたい」という一言でも、
プランナーは“操作の遊び心地”を、デザイナーは“見た目の演出”を、
プログラマーは“物理挙動”を思い描いている場合があります。

こうしたズレを埋めるには、意図をくみ取り、すり合わせていく姿勢が不可欠です。
そのために、開発では以下のような工夫を意識して行いました。

  • イメージを共有するために、簡易プロトタイプを用意する
  • 実現手段が複数ある場合、それぞれのメリット・デメリットを伝えたうえで提案する
  • どうしても実装が難しい要望に対しては、代替案を出して着地点を一緒に探る

こういったやり取りを通じて、
要望をかたちにするという開発の本質的な部分に触れられたように思います。


ミニゲーム

実装方針の提案

開発を進める中で、最初から仕様が細かく決まっているケースばかりではありませんでした。
「どう実装するか」をプログラマー側から提案し、関係者と相談しながら決めていく場面が多くありました。

今回は「演出をプランナー側で柔軟に調整できるようにしたい」という要望があったため、
プログラマー側がUnityのTimeline機能を活用し、演出の再生基盤を構築。
演出の中身はプランナーが自由に編集できる構成を提案しました。

今回の経験は、意見を提案する側に回るのはまだ早いと思っていた自分にとっての大きな転機となりました。
若手プログラマーであっても開発の方向性に関われる
という手応えを得られたことは、大きな一歩だったと感じています。


プログラマーの提案から採用となったTimeline機能

タスク管理と取捨選択

学生時代の制作では、営利を目的としないぶん、やりたいことを自由に詰め込むことができたように思います。
しかし、プロの現場では、限られた時間とリソースの中で、
何を実装し、何をあきらめるか、優先順位をつけて判断していく力が求められます。

今回の研修でも、当初は複数のミニゲームを盛り込む計画でしたが、
全体の工数を考慮し、やむを得ず1つのミニゲームを削る決断することになりました。

一方、「パーティゲームらしさ」を演出するうえで重要と考えた「キャラクター選択画面」については、
当初の仕様には含まれていなかったにもかかわらず、あえて新たに追加することになりました。
複数人が同時に操作できる“わちゃわちゃ感”は、体験として譲れない要素だとチームで判断したためです。

プログラマーという立場でありながら、
どの要素がゲームの核になるのか・限られた時間の中で最大の体験価値をどう生むかを考え、
実際に“遊びのコア”を形にしていくという貴重な経験となりました。


新たに追加したキャラクター選択画面

研修の振り返り

C.L

海外出身で日本に来て、ゲーム業界を目指している方々へ

自分も海外出身なので、最初は沢山の不安がありました。
たとえば、
「この表現って合ってるのかな? 失礼になっていないかな……」
「外国人だから、周りの人と距離を置かれてしまうかも……」
といった心配です。

でも、入社してビジネスマナーや技術的な内容など、多くの研修を受ける中で、
一番大切なのは “積極的にコミュニケーションを取ろうとする姿勢” だと気づきました。

たとえ文法が少し間違っていても、相手に自分の意思が伝われば大丈夫です。
もちろん、今でも日本語の表現が間違っていることはありますが、
それも含めて学びの一つだと思っています。
時間をかけて、少しずつでも着実に成長していければ良いのです。

また、弊社では新人向けに週次の面談や月1回の1on1面談が設けられており、
不安や悩みを気軽に相談できる環境が整っています。
私自身も、この面談の時間は毎週楽しみにしています。

これから

入社してから一連の研修を終えた今、たくさんの学びがあったと同時に、
自分の中でも大きな心境の変化がありました。

以前は「人よりできる」と思っていた部分が、
実は基本的なことの積み重ねでしかなかったと気づきました。
それは決して悪いことではなく、むしろ、
今が本当のスタート地点だと実感するきっかけになりました。
研修で得た知識や気づきは、自分の中で確かな糧となり、
これからのプロジェクトや業務でもしっかりと活かしていきたいと思います。

T.N

研修を通して特に印象的だったのは、
「プログラマーであってもゲームの面白さに深く関われる」という実感が得られたことでした。

他職種との協働、実装方針の提案、スケジュールを踏まえた取捨選択など、
単にコードを書く以上の経験を数多く積むことができました。

マトリックスの新人研修は、単に技術を学ぶだけにとどまらず、ゲーム開発の本質に触れ、自ら考え動く力を養える場です。
若手のうちから意思決定に関われる環境があり、技術だけでなく「ゲームを面白くする力」も育てられる――
それが、マトリックスの研修の魅力だと感じています。

「面白いゲームを自分の手で作りたい」と思っている方には、きっと大きな成長の機会になると思います。

S.E

共同カリキュラムでの経験が非常に記憶に残りました。
特にコミュニケーションの頻度や質について深く考えるきっかけになりました。

相談頻度が足りず認識のずれに気付かないまま自走してしまった経験、
報告の情報量が足りずやり取りに時間がかかり過ぎた経験、
どれも苦い記憶ですが、自分の課題を明確化し、改善の手立てを考えて実践に移したことはいい経験となりました。

まとめ

新人それぞれの視点から、実際に体験したこと・感じたことをもとにご紹介しました。
マトリックスでは、若手のうちから実践を通じて成長できる環境が整っています。
少しでもご興味を持っていただけた方は、ぜひ採用ページも覗いてみてください。
皆さんのご応募お待ちしております!
https://www.matrixsoft.co.jp/recruit-new-graduate/

Discussion