- WEBデザイナー
- オンラインゲーム運営
- Web Engineer
- Other occupations (1)
- Development
- Business
- Other
多くのユーザーが楽しむオンラインゲーム。その安定稼働という、決して目には見えない部分を支えているのが、サーバーサイドエンジニアだ。
今回話を聞いたのは、Aimingでサーバーサイドエンジニアチームのリーダーを務める茅壁さん。大規模アクセスならではの技術的な挑戦や、品質に対する真摯な姿勢、そしてチームのこれからについて、率直に語ってもらった。
サーバーサイドエンジニアとして着実なキャリアを築きたい方、大規模開発の現場で自分の技術力を試したい方へ、Aimingのエンジニアの仕事のリアルをお届けする。
サーバーサイドエンジニアを志した理由
インタビュアー: 本日はよろしくお願いします。まず自己紹介と、現在の担当業務について教えてください。
茅壁さん: Aimingでサーバーサイドエンジニアのリーダーをしている茅壁です。主にゲームのバックエンド開発を担当しており、C#のASP.NET Coreを使ったAPIの設計・実装や、データベースの設計などを行っています。
インタビュアー: なぜサーバーサイドエンジニアの道を選んだのでしょうか?
茅壁さん: オンラインゲームの仕組みに興味を持って調べるうちに、特にサーバー側がどう動いているのかに魅力を感じたのがきっかけです。ユーザーからは直接見えない部分ですが、その「見えないからこそ気になる」という好奇心から勉強を始めました。実際に触れてみると、自分が思っていた以上に論理的な世界で、その仕組みを一つひとつ理解していくのがとても楽しかったんです。
インタビュアー: 数あるゲーム会社の中からAimingを選んだのはなぜですか?
茅壁さん: もともと大学院に進学する予定でしたが、大学4年の夏に「やはり今すぐオンラインゲームの会社で働きたい」と考えが変わりました。その時期に募集していた会社が少ない中、Aimingを見つけました。選考過程でソースコードを提出する形式だったことから、「技術力をちゃんと見てくれる会社なんだ」と感じ、安心感を持てたのが入社の決め手です。
インタビュアー: 実際に入社してみて、どう感じましたか?
茅壁さん: あの時の決断は合っていたな、と素直に思います。もちろん開発には難しい部分もありますが、やはり面白いです。特に、Aimingが手掛けるような大規模なユーザー数のタイトルは、個人では絶対に経験できません。ユーザー数が多いからこそ発生する技術的な難題を、チームで考えて解決できた時には、大きなやりがいを感じます。
大規模アクセスならではの技術的な挑戦
インタビュアー: これまでで、特に印象に残っている開発エピソードはありますか?
茅壁さん: ランキング機能の開発です。一見シンプルですが、技術的に難しい部分が多くあります。例えば、大量のスコアを集計して正しい順位を表示すること、自分の順位やその前後を効率よく取得すること、そして不正スコアへの対策も必要です。
インタビュアー: どのような点が特に難しかったですか?
茅壁さん: ランキングを更新する側と、ユーザーがスコアを更新する側で、データの整合性をしっかり保ちながら処理する部分が難しく、同時に面白い点でした。トランザクションという機能を使って、どのデータをどのタイミングでロックするかを考え、矛盾が起きないように設計する必要がありました。
インタビュアー: 苦労した点はありましたか?
茅壁さん: 開発時のローカル環境では問題が出なかったのですが、多数のユーザーアクセスを想定した負荷試験で問題が発生しました。自分だけでは解決が難しく、ベテランのエンジニアの方にアドバイスをもらいながら、ロックの取得方法などを修正していきました。この経験を通じて、データベースに関する知識をより深めることができたと感じています。
品質の土台となる「テスト」へのこだわり
インタビュアー: 仕事をする上で、最も大切にしていることは何ですか?
茅壁さん: テストを書くことです。新しい機能の追加や変更、バグ修正など、システムの挙動が変わる際には、必ずテストも一緒に追加しています。
インタビュアー: なぜそこまでテストを重視するのでしょうか。
茅壁さん: ユーザーの方に快適に遊んでもらうために、バグは一つでも少ない方が良いと考えているからです。正直なところ、学生時代はテストの重要性をあまり理解していませんでした。ですが、実際にテストがある環境で働いてみて、その価値を実感しました。自分では影響がないと思っていた修正が、既存のテストでエラーになることで、意図しないバグの発生に気づくことができます。この経験から、テストは品質を保つために不可欠だと考えるようになりました。
インタビュアー: それはチームの文化でもあるのでしょうか。
茅壁さん: はい。Aimingにはコードレビューが徹底されていて、その際にテストコードがなければ必ず指摘が入ります。この文化が、プロダクト全体の品質につながっているんだと思います。
チームの課題と、求める人物像
インタビュアー: 現在、チームが抱えている課題があれば教えてください。
茅壁さん: デプロイの設定や開発環境の追加といった一部の作業が、まだ自分に偏ってしまっている「属人化」という課題があります。今後は、こうした作業も他のメンバーに任せていけるようにしたいと考えています。
インタ-ビュアー: 新しくチームに加わる方には、どのようなことを期待しますか?
茅壁さん: 担当業務について、自分から積極的に調べて全体像を把握しようとしてもらえるとありがたいです。例えば、自分の担当外であっても、プロジェクトがどのような流れで開発からリリースまで進んでいるのかを知っておくことで、何かあった時にすぐ対応できるようになると思います。
インタ-ビュアー: どんなエンジニアと一緒に働きたいですか?
茅壁さん: エンジニアとしての向上心や好奇心を持っている方ですね。「どういうコードがベストか」を自発的に考えられる力は大事だと思います。技術面では、特にデータベースのトランザクション周りに詳しい方だと、とても心強いです。 また、自分の考えを持つことも大事ですが、他の人のアドバイスを素直に受け入れる協調性も必要です。その上で、「こうした方がもっと良くなるのでは」といった建設的な提案をしながら、一緒に良いものを作っていける方と働きたいです。
最後に、候補者の方へ
インタビュアー: 最後に、この記事を読んでいる候補者の方へメッセージをお願いします。
茅壁さん: 私たちは、サーバーサイドの開発に主にC#を使っています。クライアント側で使われているUnityもC#なので、言語が同じことで連携がしやすいという利点があります。C#が好き、プログラミングが好き、ゲームが好きな方には、とてもフィットする職場だと思います。 また、大規模開発ならではのデータベースの扱いは、難しい部分もありますが、その分、非常にやりがいがあり、楽しいです。 ご興味を持っていただけたら、ぜひご応募をお待ちしております。