コンテンツへスキップ

QualiArtsengineer blog

「IDOLY PRIDE」における2年目Unityエンジニアの成長や学びについて

「IDOLY PRIDE」における2年目Unityエンジニアの成長や学びについて

10 min read

はじめに

株式会社QualiArtsでUnityエンジニアをしている入社2年目の片岡です。2021年6月リリースの「IDOLY PRIDE」(以降、アイプラ)のアウトゲームの開発に携わっています。入社する前はゲーム開発が未経験でしたが、今ではイベントのアウトゲーム開発を丸々担当させてもらえるほどになりました。 本記事では入社3年目になる前の振り返りとして、アイプラの開発を通してどのように成長してきたか、どのようなことを学んだか、大事に思ったかをまとめます。

成長の振り返り

QualiArtsでは半期ごとに目標を掲げてそれに対する達成状況を上司の方々と振り返る機会があります。そこで掲げていた目標と達成状況を元に1年目から振り返ってみます。また、働いていると気持ちの浮き沈みがたくさんあったので、働いているときの気持ちもグラフで可視化してみようと思います。

1年目について

1年目のときはアイプラはリリース前のアプリで、振り返ってみると反省で成長した1年でした。

目標

「Unityの開発経験をしっかり積み、信頼されるエンジニアになる」という目標を掲げていました。そのための指標として、以下6つの項目を設けていました。

  1. 開発ディレクターへの安心信頼
    • スケジュールを意識して働けるようになる、遅れそうならすぐに報連相ができる
  2. 職種に関わらず積極的にコミュニケーション
    • プランナーやデザイナーに質問などを積極的に行える
  3. 先を見越した報連相
    • サーバーメンバーへのAPI追加実装依頼など他人が絡むものは早めに報連相できる
  4. 自分なりの意図や考えを持つ
    • プルリクのレビューで指摘ができる、改善すべき箇所を自分で見つけて実装できる
  5. 仕様理解
    • 担当している実装に関する仕様を聞かれた時にはっきりと答えられる(「〜だと思う」を使わない)
  6. ユーザー目線になれる
    • 仕様に関する意見ができて実現できる

指標を設けることで具体的にどうすれば目標が達成できたと言えるのかということを明らかにしています。全て完璧にできると最高ですが、出来なかったことも明らかにするために多めに指標を設けていました。

仕様やデザインなどが固まり切っていない状況がよくあったので、より多くの積極的なコミュニケーションをとる必要がありました。そこで、エンジニアとしての基礎を身につけることができるような指標にあわせ、リリース前の開発ならではの指標も設定しました。

達成状況

トレーナーや上司、目標に関わる方々とすり合わせを行った達成状況は以下のようになりました。

状況項目
達成2. 職種に関わらず積極的にコミュニケーション
3. 先を見越した報連相
5. 仕様理解
未達成1. 開発ディレクターへの安心信頼
 try > スケジュールが遅れそうならすぐに相談する
4. 自分なりの意図や考えを持つ
 try > 改善すべき箇所を自分で見つけて実装できる
6. ユーザー目線になれる
 try > 仕様に関する意見を積極的に行う

2,3,5の指標は達成できたと言えるほどになりましたが、1,4,6の指標は未達成となりました。未達成となったものに関しては、次に活かせるように今後の課題(try)としています。

1年目で分からないことが多い中リリース前の開発に携わり、きちんと達成できた指標もあるので自分としてはよく頑張ったなと思います。指標が未達成でも達成するための課題が見つけられるので、指標をたくさん用意したこの目標設定方法はとてもよかったと考えています。

働いているときの気持ち

4月にサイバーエージェントに期待と不安のなか入社し、新人研修で同期だけのチームでアプリを制作する期間があり、アプリを制作する楽しさを知りました。5月にQualiArtsに配属になり、初めて経験することばかりで単純に楽しいと思う時期が続きました。QualiArtsで内定者バイトをしていたこともあり、TODOや改修などの軽めのタスクは難なくこなしていけたことで8~9月頃までは絶好調でした。

しかし、よりレベルが高かったり、より工数が多くかかるようなタスクを任されるようになり、壁に突き当たることが増えていきました。うまく成果が出せなかったり、反省すべきことがたくさん出てきて悩むようになっていきました。そこで、日報としてその日の振り返りを毎日行うようにしました。ひたすら反省を繰り返してできるようになる意識をして次に活かしていくことで、任せられる仕事もうまくこなせるようになりました。

2月には月間ベストグローアップ賞というQualiArtsで一番成長した人に送られる賞を頂くことができたので、やっと報われたと思いとても嬉しくなりました。毎日日報を書いて反省を繰り返したからこそ成長が認められたと考えています。日報を書く習慣は今でも続けています。

2年目について

2年目はまだ終わっていないので、半期の4月~9月を振り返ってみます。アイプラは6月のリリースだったので、リリース前の開発と運用を経験できました。振り返ってみると柔軟に対応する力の付いた半期でした。

目標

「質の高い実装ができ、物事に柔軟に対応できて信頼されるエンジニアになる」という目標を掲げていました。以下3つの指標を設けていました。

  1. 開発ディレクターへの安心信頼
    • スケジュールが遅れそうならすぐに相談する、高い見積もり精度
  2. エンジニアとして自分なりの意図や考えを持って行動できる
    • 周りのエンジニアの方を巻き込みながら実装を進められる
    • プルリクのコードレビューを積極的に行える、共通化ができる
  3. 3D周りの開発でも貢献できるようにUnityの3D周りの開発経験を積む
    • イベントの3D演出実装を主体となって完了し切る

将来的にはアウトゲーム開発だけでなく、テクニカルアーティストとして3Dの分野でも活躍してみたいと考えています。2年目からはそのような長期的な目標も考慮するようになり、イベント開発で3D実装に携わることもあったことから、1年目に今後の課題としたものをブラッシュアップしたものに加え、初めての3D実装に対する目標を盛り込みました。

達成状況

トレーナーや上司、目標に関わる方々と達成状況のすり合わせを行った結果、以下のようになりました。

状況項目
達成1. 開発ディレクターへの安心信頼
3. 3D周りの開発でも貢献できるようにUnityの3D周りの開発経験を積む
ex. リリース前にチームのバグチケ消化に貢献できた、プロジェクトの内製ツール開発でUI実装に携わり業務以外で成果を出せた
未達成2. エンジニアとして自分なりの意図や考えを持って行動できる
 try > プルリクのコードレビューを積極的に行える

1,3の指標は達成できたと言えるほどになりましたが、2の指標は未達成となりました。コードレビューは習慣化して日頃からできるようにするべきなので、10月からの半期目標としてコードレビューに関する目標も設定しています。

一方で達成したことについてですが、初めての3D開発の中で分からないことが多かったですが、周りのエンジニアの方と相談して着実に実装を進めながらも、3D班の方との実装に関するやりとりや3Dデバッグ機能の実装もでき、開発ディレクターへの進捗報告まわりもしっかりできていました。加えてリリース前に余裕を持って自分の実装を全て完了させてチームのバグチケ消化に貢献もできたり、内製ツールの開発に携わることもできたので、とても良い成果が得られたと思っています。アウトゲーム開発だけでなく、3D周りの実装を完遂できたこともあり、物事に柔軟に対応できる力が付いたと感じています。

働いているときの気持ち

4月からは6月のリリースに向けて忙しい時期でしたが、余裕を持って担当分の実装を完了できたことと、リリースへの期待とリリースできた安心で絶好調を振り切っていきました。その後運用に入っていきます。初めての3D実装になるので不安はありましたが、やってみたいことができる喜びは大きかったです。周りの方に頼り切らずに実装を完遂できたのでよかったです。

その後は改修タスクをいくつかこなしながらも業務以外の内製ツールの改修タスクもしたいと思っていましたが、できず終いだったので少し調子を落としていました。しかし、全体を見通すと好調を下回ることがなかったのでとても調子の良い半期だったと言えます。振り返ってみると、この半期を通して自信を持って開発できるようになったと思っています。

今後について

直近ですと、新しいイベントのアウトゲーム開発を丸々担当することとなったので、今までの集大成としてフォローがなくとも自走して完遂できることを目指します。また、自分だけでなく他のUnityエンジニアの方々の実装も品質担保できるようにプルリクのレビューを習慣化することを目指します。

長期的ですと先に述べましたが、3D分野のことにもっと関わりたいのでテクニカルアーティストになることも視野に入れているので、まずは3D分野のことでチームに貢献できる目標を立てて成果を出したいです。また、Unityエンジニアをもっと深めていきたいので、アイプラのUnityエンジニアリーダーもやってみたいなと思っています。もっと大きなことを担当できるように成長し続けていきたいです。

学んだこと・大事に思ったことの振り返り

2年目になると学んだことや大事に思うことがたくさん増えてきますが全て紹介せずに、ピックアップしてご紹介します。

学んだこと

一番学んだことは共通化の重要性です。運用に入ると似たような機能や画面を実装することが多くなっていきます。そのため、どこをどのような方法で共通化するかということを考える必要があります。アイプラでリリースを経験し、運用も携わっていますが、共通化することは何度もありました。コードを共通化することで同じ処理が複数箇所に存在することを防ぎ、その処理の修正があった時に1箇所の修正で済むことになります。また、同じ処理が必要な時に共通化したものを用いると大幅に工数を削減できます。共通化のためにも工数は発生してしまいますが、その分のリターンはとても大きく重要性を身をもって感じました。共通化では主に以下を用いています。

  • ベースクラス
    • 主に1画面の処理を共通化したいときに同じ処理のメソッドをまとめたベースクラスを用意し、継承して用いるようにしています
  • staticメソッド
    • 一部メソッドだけを共通化したいときにstaticクラスにstaticメソッドを用意して用いるようにしています
  • インスタンス
    • 主にロジックを流用したいときにそのロジックを盛り込んだクラスを用意し、インスタンス化して用いるようにしています

大事に思ったこと

働いてきて特に大事だったなと思ったことは以下があります。

  • KPT法での振り返り
    • 「できたこと、続けたいこと(Keep)」「できなかったこと(Problem)」「次にすること(Try)」を振り返り
    • Tryがあることでその時だけでなく次につなげるための反省ができる
  • プルリクのレビューをたくさんされることを怖がらない
    • どういうところで指摘されるか段々と分かってくる
    • その分指摘されたことを正していけば自ずとレビュー数が減り、質の良いコードが書けるようになる
  • しておいた方がいいかなと思うことは絶対する
    • 後々に問題が起きた時には遅いので、することのデメリットはないと思ってもいい
    • 分からないことや困っていることを自分の中に溜め込まないことも大事

おわりに

今回アイプラでUnityエンジニアをやってきて、そこでの成長や学びを紹介させていただきました。振り返ってみると自分の成長はしっかり感じられて、学びもたくさんあったことが分かりました。この約1年半の成長は今後の大きな目標を語れるほどの自信に繋がりました。今後も引き続き成長や学びを続けて、その大きな目標を叶えられるようになりたいです。

本記事は主観的な内容が多くなりましたが、自分の成長の仕方や学びから何かお役立てできるものがあると幸いです。

2020年にサイバーエージェントに新卒入社。その後、QualiArtsにてUnityエンジニアとして開発に携わる