ゲーム開発初心者が大規模ゲーム開発に挑戦。
新卒入社後2年間の奮闘の日々

技術・デザイン

大規模なプロダクト開発の多いサイバーエージェントが、エンジニア新卒採用において特に力を入れている職種の1つがバックエンドエンジニアです。入社前のスキルや開発経験に関わらず、自身の能力向上に努め、活躍するエンジニアが多く在籍しています。

2021年新卒入社の伊藤は、当初ゲーム開発において全くの初心者ながら、日々懸命に目の前の仕事に向き合い、大きく成長しました。地道に培ってきた技術的知見の数々や今後の目標について聞きました。

Profile

  • 伊藤直人
    2021年新卒入社。バックエンドエンジニア。
    内定者アルバイト時代から子会社アプリボットに所属し、新規ゲームタイトルの開発やデータ分析基盤のリプレイスを担当。また、10社以上の子会社が所属するゲーム・エンターテイメント(SGE)事業部横断の社内システムの開発にも携わった。

大規模ゲーム開発で得た、バックエンドエンジニアとしての様々な学び

── 配属先にアプリボットを希望した理由を教えてください。

内定者アルバイト時代の経験が決め手です。元々広告系のサービスに携わりたい思いがあったので、正直言ってゲーム開発には興味がなく、自分が携わることになるとは想像もしていませんでした。ただ、アプリボットの先輩とお話しした際、ゲーム開発に興味が湧き、アプリボットで内定者アルバイトを開始しました。実際に経験してみるとゲーム開発の楽しさや会社の雰囲気の良さ、プロジェクト規模の大きさ等に魅力を感じ、配属希望を出しました。

── 内定者時代から約2年半、大規模の新規ゲームタイトル開発を担当していると聞きました。バックエンドエンジニアとして、どんなことを学びましたか?

いくつかありますが、1つは運用を見据えた開発、設計を行うことの大切さです。ゲームの内部システムは複雑なため、システム設定情報を入力するマスタデータ用のテーブル数が非常に多いのが特徴です。マスタデータを設計する上で重要なのは、いかに運用を想定して設計するかだと考えています。リリース後、運用が進む中でマスタデータが増え続けるとパフォーマンスに直結するため、様々な工夫が欠かせません。マスタデータの入力を簡略化するために正規化しないことで入力の容易さを担保したり、入力情報をもとに自動でデータを作成する、データの増え方を想定して複雑な設計を防ぐなど工夫しています。

その他には、新規タイトルならではの仕様変更に耐えうるコード、システム設計が挙げられると思います。新規タイトルでは、より高いクオリティでユーザーに届けるために頻繁に作り直しが起こります。新規開発フェーズでは常に、他チームでの事例も参考にしながら仕様変更や追加を予想しつつ、システム全体を設計していくことが大切です。そうすることで、実際の仕様変更が起こった際にも、最小の工数で対応できます。さらに、共通化できる条件や機能を見極めた上で設計に落とし込み、工数を削減することの大切さも学びました。

また、ゲームのバックエンドではレガシーかつシンプルな構成を選択することが多いように思います。私たちのプロジェクトも、1つのビルドで動くサーバーがあり、DBはRDB、キャッシュとしてRedisという構成です。加えてゲームのバックエンドはRDBへの書き込みが他サービスと比べてとても多く、比率でいうと全体クエリの1/4程度が書き込みのクエリです。そのため、RDBやサーバーのパフォーマンス改善に関しては多くの知見を得られました。

私自身運用経験がなく、ゲーム開発に関しては全くの初心者だったので、大前提の考え方や外してはいけないポイント等、トレーナーや上長が親身になって教えてくれました。

── 現場での開発以外に、技術力を向上させるために取り組んだことがあれば教えてください。

他部署に所属する同期と情報交換を行ったり、社内外のカンファレンスを見て気になった最新技術に触れる機会を作っています。通常の開発業務だけだとどうしても特定の分野の技術に偏ってしまうので、休日に新たな技術を学ぶ時間を作りました。

── ゲームのバックエンドエンジニアとして様々な知見を得る過程で、上長からもらった特に印象に残っているアドバイスはありますか?

一見するとネガティブなワードですが、「仕様を信じない」というアドバイスです。ゲーム事業部で働く上での自分の指針の1つになりました。新規ゲーム開発ではさらなる面白さを求めて作り直すことが多々あるので、確定している仕様でも変わる可能性を見越して作っていくことを意味しています。このアドバイスをもらうまでは、その時点で決まっている仕様をその通りに実装することが自分の役割だと思っていました。でも決してそうではなく、まずは仕様のベースとなる思想の段階から企画職にヒアリングしたり、今後の仕様変更について予め話し合うようにしました。そして、その時点で仕様の目的に沿った要件を拡張し、できる限り多くを満たせる設計を実装することが大切なのだと気付きました。

2度の大きな挫折、リーダーには向いていないと上司に直談判

── 新卒2年目とは思えない活躍をしているように見受けられますが、これまでのキャリアで苦労したことや躓いてしまったことはありますか?

もちろんあります。はじめは、新卒配属から約3ヶ月後に負荷試験チームのリーダを任された時でした。リーダーを担当することで、自分がプレイヤーとして活躍できなくなると当時は考えてしまい、正直気が進みませんでした。そのため、自分の稼働の8割をプレイヤーとして、残り2割でチーム管理を行いながら負荷試験を進めたところ、負荷試験のスケジュールが遅れてしまったのです。責任を感じましたし、自分はリーダーに向いていないのではと思いました。そこで上長に相談したところ「リーダーだとマネジメントに時間が取られて、自分で開発する時間が減り、技術的成長を感じられないと思うかもしれない。でもリーダーになることで技術選定の裁量がある分成長できるし、メンバーのアウトプットを確認することで得られる学びもある。だからこそ技術思考が高い人こそリーダーを経験するべきだと思う」と話してくれました。あらためて頑張ってみようと思い、結果的にその負荷試験を乗り越えられました。完遂してみると、上長の言う通りリーダーだからこそ得られる技術的成長を感じました。今でも負荷試験の知見には自信を持っています。

また、担当ゲームタイトルのリリース時期の延期が決まった際にも苦労しました。自分なりに考えていた大まかなキャリアプランがズレてしまうのではと焦り、やるせない思いでした。この気持ちを乗り越えるのには2,3ヶ月ほどかかりましたが、リリースが伸びたことによって新たにチャレンジできる分野が増えたと、次第に感じられるようになりました。機能が増えた結果ゲームとしてさらに面白くなっていますし、自分自身もログ基盤へのSnowflake導入等新たな分野に挑戦することができました。

── 最後に今後の目標を教えてください。

2023年の目標は、担当ゲームのリリースを無事故で迎えることです。リリース直後にプレイしてくださる多くのユーザーに対して最高の体験を届けられるよう、サーバーの負荷と向き合いながらしっかり準備を進めていきます。

中長期的な目標としては、アプリボット全体の技術力向上です。ゲームの仕様を検討する際、技術面で実現性が低いという理由で時々諦めざるを得ない場合があるのが現状です。組織としての技術力をさらに高め、より面白いゲームを作れる開発組織でありたいと思っています。現在私は、アプリボットの各プロジェクトに潜在する技術的な課題解決を担う横断組織「コアシス室」室長という役割を任されていますが、新しい技術やシステムを導入して様々な課題を解決していくことで、アプリボットの技術力をさらに高めていきたいです。

この記事をシェア

オフィシャルブログを見る

記事ランキング

「10年以上蒔いた種が、ようやく花を咲かせてきた」主席エンジニアが語る、セキュリティ対策のあるべき姿

技術・デザイン

2022年より導入した「主席認定制度」において、10年以上当社のセキュリティ強化に真摯に向き合い続けている野渡が、主席エンジニアの1人に選出されました。

経営層、各開発責任者が絶大な信頼を寄せる野渡ですが、主席エンジニア就任時の思いを「10年以上にわたるチームの取り組みを、改めて評価してもらえたようで嬉しい」と語ります。長年セキュリティ領域に携わってきて感じる最近のセキュリティインシデントの傾向や、サイバーエージェントならではのセキュリティ対策のあるべき姿について話を聞きました。

なお、野渡が統括するシステムセキュリティ推進グループについて、詳しくは「『免疫』のようなセキュリティチームを作りたい~主席エンジニアたちが向き合う情報セキュリティ対策~」をご覧ください。

Page Top