Akatsuki Hackers Lab | 株式会社アカツキ(Akatsuki Inc.)

Akatsuki Hackers Labは株式会社アカツキが運営しています。

株式会社アカツキゲームスのインターンにクライアントエンジニアとして参加した話

はじめに

9月1日から9月22日の間クライアントエンジニアとしてインターンに参加してきたのでそれについてのブログを書こうと思います。

自己紹介

某専門学校でゲーム制作を学んでいる3回生の学生です。

学校ではUnityやUnrealEngineなどのゲームエンジンやDirectX11でゲーム開発をしています。ゲームで遊ぶことはもちろん、ゲームを作ることが好きで1クリエイターとしてゲーム業界を盛り上げる1人になりたいその一心で日々ゲーム開発に向き合っています。

 開発末期の苦しさもまた快感 

目次

取り組んだこと

クライアントエンジニアのインターンではモバイルゲームのタイトルに携わらせていただきました。そこで「実際にリリースされる新規機能の開発」を行いました。業務は以下の流れで取り組みました。

  • 新規機能の仕様説明
  • スケジュール作成
  • 実装
  • 挙動チェック
  • レビュー

私は「一部画面UIレイアウトの変更」を担当しました。

新規機能の仕様説明

実際の仕様書を頂いて、担当のプランナーの方に説明をしてもらいます。ここの段階で不明なところや仕様の意図を聞いてすり合わせを行います。この工程を入れることでプランナーの方との認識のずれを無くすことや、仕様の意図を聞いてより良い案があれば提案することでゲームをより良くしていきます。エンジニアもゲームを良くするために意見を出すことが大切ということを学びました。仕様の意図や現時点の問題点を詳しく教えて頂いたので、初めての新規開発でもスムーズに行うことができました。

スケジュール作成

仕様を確認したらスケジュールを作成します。必ず納期があるので計画的に進めることが大切です。(ゲーム開発は納期がないとずっとこだわり続けてしまいます) 新規機能に必要なタスクを分解して、正しい順序で無理のないスケジュールになってるかを確認して実装に入ります。

実装

早速実装に入ります。デザインを指定通りに組み込むことや仕様通りの挙動になっているかを気をつけながら実装を行います。初めての大規模開発に苦戦し難航したため、クライアントエンジニアの方々に要請をしてモブワーク*1を行いました。実際にプロのエンジニアとして働いている方々とのモブワークを行うことで経験値の差を感じたのと、開発者としてのテクニックや技術を直々に教えていただきました。成長するきっかけにもなりましたし、何よりもっと技術を磨きたいというモチベーションアップにもなりました。

挙動チェック

実装が完了したら挙動の確認を行います。まず正常に動いているか確認をしてプランナーの方とデザイナーの方に見ていただきます。ここで仕様通りに動いているか、正しくデザインが反映されているかを確認していきます。最初のフェーズの打ち合わせを疎かにするとここのフェーズで大きな手戻りになる可能性があるので最初の打ち合わせと最後の確認は丁寧に行います。ゲーム開発は様々な人で行います。コミュニケーションは非常に大事です。

コードレビュー

最後にコードレビューを行います。これはコードの品質を保つために行います。出したプルリクエストに対して複数人で正しい実装になっているか、コメントは適切に書かれているか、無駄な処理はないかなどをチェックしていただきます。関数名や変数名で用途が分かるように付けることで別の人が開発する際にスムーズに開発できるようにします。

学んだこと

コミュニケーション

当たり前と思うかもしれませんが、当たり前ではないのです。「面白い」という抽象的なコンテンツを開発する以上かなり気をつける必要があります。仕様に対しても分かった気になるのではなく、何度も何度も確認やすり合わせをします。実際に開発の現場に入ることでタスクの進捗や問題に対しての確認と対策などチャット上で頻繁にコミュニケーションを行なっていました。(基本的に通知が0の瞬間はないです) 当たり前のことではありますが、そのコミュニケーションの精度を高めることができました。

コーディング

PR*2上でのコードレビューで命名規則やコメントの付け方など、他者に見てもらう意識がかなりつきました。大規模な開発になればなるほど独りよがりなコードを書くべきではないと感じました。クラス名や関数名、変数名で機能が分かるようにすること、誤解のないように正しく丁寧にコメントをつけることが実務で学べたことは非常に良い経験ができたと思います。細かいことですが大規模開発に直面すると重要性に気づくと思います。1人でも他者に見てもらうことを意識していこうと思います。

「なぜ?」の重要性

今回のインターンで一番学んだことです。この「なぜ?」には「認識の共通化」「自己成長の切り口」二つの効果があると思います。仕様や実装に対して「なぜ?」を聞くこと、伝えることで相手と自分の認識を確認することができます。また、自分が得意とすること、苦手とすること、他者との差に「なぜ?」を問うことで成長の糸口になります。「なぜ?」上手く使い根本的な原因と向き合うことや歩先を見た行動や考えを持つことが大切だと思います。

 

まとめ

今回インターンを受け入れてくださり本当にありがとうございました。エンジニアとしての技術はもちろん、クリエイターを志す1人としても多くの学びを得ることができました。このインターンで学んだことを生涯のゲーム開発に活かしていきたいと思います!

*1:複数人で作業を行う

*2:プルリクエスト