【配属されて初実務】キャンペーンリリース前のデバッグについて

WRITER: Yuki
2022/10/03

はじめに

22新卒サーバーサイドエンジニアのYukiです。配属されて少しずつ仕事に慣れてきたと思ったら、気付かないうちにすで3ヶ月が経っていました。ということで、10ANTZで成長する日々をご紹介したいと思います!

未経験から戦力になるまで

学生時代はプログラミングの独学したり、ゲームの自主制作したりしてましたが、サーバーを使うほどのものではありませんでした。

新卒のうちにサーバーサイドを経験したいという思いで希望を出してみたら、サーバーサイドエンジニアとして配属されました。プロの現場は学校のような勉強する場ではないので、嬉しさを覚える同時に不安も大きかったです。

そこでありがたいことに、10ANTZでは新卒にOJT期間が設けられています。業務に必要な知識・スキルが習得できるようトレーナーが1人ついてくれる上、他の先輩方も皆親切にサポートしてくれます。

配属されたばかりの頃は、ちょうど大型アップデートを控えて誰もが忙しい時期でした。最初の間なので、当然ながら研修課題くらいしかできることはなく、先輩がどんなことをされているのか理解できず、忙しいのに力になれず、その中で早く戦力になりたいと少しは焦っていました。それを察したトレーナーさんが「ちゃんとできていますから、自分のペースでいいですよ」と励ましてくれたことで、日々成長していくことができました。

プログラミングで人の役に立ちたい

これは最初にエンジニアになりたいと思った理由で、今もモチベーションになっています。

配属から1ヶ月くらい経ち、サーバーサイドの基礎知識を身に付けた頃、管理画面の機能追加を担当させてもらえました。世に出してたくさんのユーザーに使ってもらうゲーム内コンテンツではないものの、自分の書いたプログラムで誰かの役に立ったと初めて実感しました。

このように研修課題ばかりではなく、こちらの達成感とモチベーションを考えてタスクを振ってくれることにすごく感動しました。

乃木坂46が5期生を迎えて、乃木恋SUMMER2022「告白の1秒前」は5期生たち初登場のキャンペーンになり、ユーザーの方々にも期待されていると思います。そのキャンペーンのサーバーサイド担当になった時、すごくワクワクしました。

今回の乃木恋SUMMERでは、同時開催中のイベントに参加して入手できる「アイスキャンディー」をメンバーに渡すことで「スキLv」を上げて、5期生の限定ムービーが見られるほか、選んだメンバーの直筆メッセージ入りフォトというリアル特典の抽選に参加できます。これらの機能を実装するにあたって、既存コードを参考しつつ、私なりに可読性、保守性、そして効率を意識したコードが書けたと思います。

当然ながら、それも先輩方にたくさんのことを親切に教えていただいたおかげです。実装に関する知識や技術はもちろん、コードを書いただけではゲームをユーザーに届けることができないので、開発フローを一通り経験できたのは特に良かったです。

そして、学生時代から数学が苦手な方で、何度も数学で頭の痛くなる経験がありますが、現場でコードを書いて、時に辛くなるほど頑張って学んだものはちゃんと今のためになっているなと思いました。

コードに対する責任

実装が終わってから、リリースされるまで、デバッガーさんが動作を細かくチェックし、バグを見つけてくれます。個人的な考え方ですが、それに頼り切るのではなく、できる限り自分の書いたコードの正確さを保証するのもエンジニアとしてのプライドだと思います。(とはいえ、完全にバグのないコードが書けるエンジニアは実在しないのですが。)

そのための手法や技術はたくさんありますが、代表としてステップデバッガーをご紹介したいと思います。

コードをデバッグする時、一番直感的な方法はあちこちログを出力するコードを組み込むことです。作業するデスクを散らかすような行為なので私はあまり好きではありません。そして用が済んだらちゃんと掃除しないとコンソールやログファイルがひどいことになっていきます。このやり方ではイライラするようなことがあれば、ステップデバッガーの出番です。

簡潔に言えば、ステップデバッガーは

  • 特定なコード(ライン・ブレイクポイント)
  • 指定条件に満たした時(条件付きブレイクポイント)
  • 特定な例外が発生した時(エクセプション・ブレイクポイント)

など指定した場所でプログラムの実行を一時停止してくれます。そうすれば、コールスタック上のフレーム間で行き来したり、メモリー内の変数の値を直接見るだけではなく、編集したりすることさえできます。

そこからステップずつ実行を進めることはもちろん、次の関心のあるところまで飛ばすことも自由です。

導入方法は言語や環境によって違っており、難易度もまちまちですが、エンジニアにとって重要なツールなだけに、ネット上で情報が充実している可能性が高いので、頑張ってみる価値があると思います。

いよいよリリース

忙しいデバッグ期間を経て、乃木恋SUMMER2022は7月15日15:00に無事リリースされ、乃木恋の全ユーザーに届けました。

リリースしてしばらくはまだ安心できません。お問い合わせとSNSと睨めっこして、不具合らしき情報があったら一刻も早く対応するためです。私だけかもしれませんが、新人ゆえにミスが怖くて緊張感が高かったです。

ポジティブな感想が続々とSNSに投稿され、そのうち不安も消えていき、達成感と喜びに包まれました。エンジニアは皆何か素晴らしいものを作り出し、この世界をよりよくしていくのですが、その中で特にゲームにこだわったのは、やはりこういう時にユーザーの反応を素早く見ることができ、楽しんでいただけると私も嬉しくなり、やり続けたいと思えるのだと改めて思いました。

さらに、10ANTZのミッションである「ファンとアーティストの“ありがとう”をつなぐ」はこの仕事の隅々まで浸透し、責任感とプライドにつながっていることを体感できました。ゲームエンジニアとして、乃木坂46を初め、世界中のたくさんの方々に愛されているアーティストたちと関わる仕事ができるのはやはり貴重な経験になると思います。

最後に

OJTの日々を綴っている今は、初担当のイベントもそろそろリリースを迎えます。この調子で先輩方に支えられながら成長していきたいと思います!