部長が徹底解説! 快適なゲームプレイを届けるサーバーサイドエンジニアの業務やキャリアパス、求める人材像とは?

「まさか、自分がゲームのエンジニアになれると思っていなかった」。gumiのサーバーサイドエンジニアから、たまにそんな声を聞きます。5年前にgumiに入社し、現在Director(部長)としてエンジニアを牽引する堤も、ゲーム業界に入る前はそう思っていたと言います。今回はそんな堤に、gumiにおけるサーバーサイドエンジニアの役割や業務、キャリアパス、求める人材像について、異業種のエンジニアとの違いにも着目しながら、自身の経験も交えて話してもらいました。

<プロフィール>

堤 健太朗(つつみ・けんたろう)

Entertainment Engineering Director。業務システム系のエンジニアを経てゲームエンジニアとなり、2016年にgumiに入社。複数プロジェクトのマネジメントやチームビルディングを担う傍ら、自身もコーディングを行う。

こんにちは、Entertainment EngineeringのDirector堤です。私は、以前は大手企業で社内システム開発や業務用アプリケーションの開発をしており、2013年にゲーム業界に入りました。昔からゲームは大好きだったのですが、ゲームのエンジニアは特殊な印象があり、まさか自分がゲーム業界で働けるとは思っていませんでした。でも、オファーをいただいたのをきっかけにゲーム会社へ転職。その後2016年にgumiへ入社し、今ではエンジニアの統括を担っています。gumiでの業務は、比較的大規模なゲーム開発特有の部分もありますが、Web系システム開発や小規模なゲーム開発の経験も今の仕事に役立っています。今回は、そういった自分自身の経験とキャリアも踏まえて、ゲーム業界のサーバーサイドエンジニアがどういうものなのか、gumiではどんな経験を積み、キャリアパスを歩めるのかをお伝えできればと思います。

サーバーサイドエンジニアの役割と業務

■安定で快適なゲームプレイ環境の構築

サーバーサイドエンジニアの役割は、ひとことで言うと安定で快適なゲームプレイをユーザーにお届けすることです。gumiは「Wow the World!」をミッションに掲げていますが、ユーザーに「Wow」つまり「驚きと感動」を届けるために、「快適さ」はなくてはならない要素です。そのために特に重要となるのが、負荷分散です。最近ではリアルタイム通信でのマルチプレイが主流となっている中で、gumiの各タイトルでも膨大なアクセスに耐えうるサーバーシステムの構築が求められます。
そのようなサーバーサイドエンジニアの仕事は、端末側の開発を行うクライアントエンジニアと比較すると、全体を見ながら裏側でシステムを支えている「縁の下の力持ち」と表現するのが合っていると思います。

■新規開発からパフォーマンス改善、問い合わせ対応までマルチな業務

新規開発のタイトルでは、まずゲームの特性やその時々のトレンドに合わせて、使用するプログラミング言語やサービスを選定します。言語はPythonElixirNode.jsなどを使っており、サービスは世に出回っているものを使うこともあれば、社内で新しく開発することもあります。使用するサービスが決まったら、プランナーが作成する仕様書に基づいて開発を進めていきます。なお、最近のゲームでは、バトルのメイン部分のロジックもクライアントではなくサーバーサイドで構築しているものも増えています。リアルタイム通信でのマルチプレイではその方が効率的ですし、セキュリティも強いのです。
ゲームの運用段階に入ると、ダウンロードコンテンツの配信や大型アップデートでの新機能の開発に加えて、パフォーマンス改善やユーザーからの問い合わせ対応、障害対応なども行うため、よりマルチな業務が求められます。クライアントエンジニアはもちろん、他部署では主にプランナーやデバッグ、CSと連携して業務を行っています。

サーバーサイドエンジニアがgumiで経験できること

■大規模タイトルの開発・運用

gumiのタイトルは多いものだとDAU10万を超えるため、大規模なトラフィックを捌くための負荷分散が必要となりなす。小規模なゲームとはサーバーのインフラも違ってくるため、大規模タイトルならではの負荷分散の経験ができます。
また、ゲームの規模に合わせて開発チームの規模も大きくなります。各タイトル、クライアントもあわせて15名以上のエンジニアで担当しており、デザイナーやプランナーなどの他部署もあわせると、一タイトルに50名以上が関わっています。組織が大きくなると自分の仕事の進め方も変わってくるので、私自身も大きなプロジェクトでの動き方はgumiで学びました。
そして何よりも、誰もが知っている有名IPを活用したタイトルや、多くの方々にプレイいただいているヒットタイトルの開発に携わるのは良い経験になると思います。

■ソーシャルゲームならではの多様で複雑な通信への対応

社内システムや一般のECサイトなどと比べると、ソーシャルゲームはユーザーでの操作の種類や量が多いことからも分かるように、ゲームにおける通信プロトコルの種類は他システムと比較にならないくらい多岐に渡ります。HTTPだけでなくリアルタイム通信でTCPが必要になったり、他にもリクエストの種類が300個ほどあったりするので、一度ソーシャルゲーム開発を経験すると、他の一般的なシステム開発が容易に感じるかもしれません。一方、ゲーム開発で使うWebフレームワークはゲーム以外のシステムでも使うもので、決して特殊ではありませんし、異業種での開発経験は存分にゲーム開発に活かせることも事実です。

■アジャイル的でスピード感のある開発

開発手法も一般的なシステム開発とは少し異なります。通常のシステムではウォーターフォール型の開発が多いですが、ゲーム開発はよりアジャイル的と言えます。これは、ゲーム開発では開発中でも世の中のトレンドの変化に対応し、当初の計画を変えていく必要があるからです。ゲームのトレンドの変化は早く、新しくヒットしたタイトルや直近の流行りを開発中のタイトルにどんどん取り入れていかなければ、リリースしたときには時代遅れのゲームになってしまうのです。
また、開発は品質とスピードのトレードオフですが、ゲーム開発ではかなりスピードが重視されます。ゲーム業界に入ると、このスピード感には驚くかもしれません。

サーバーサイドエンジニアのgumiでのキャリアパス

■一プロジェクトのエンジニアを統括するリードエンジニアやマネージャーへ

gumiのサーバーサイドエンジニアのキャリアパスとして、まず目指しやすいのはリードエンジニアだと思います。これは、一つのプロジェクト(ゲーム)のサーバーサイドエンジニアを統括するポジションです。さらにその上に、一プロジェクトのクライアントとサーバー両方のエンジニアを統括するマネージャーポジションもあります。

私自身のgumiでのキャリアについても少しお話します。私は2016年に『ファントム オブ キル』(以下『ファンキル』)の担当として、Senior Staffのレイヤーでgumiに入社しました。入社前から『ファンキル』をプレイしている中で、もっとパフォーマンスの改善余地があると思っていたところ、社内でも同じ課題感があり、入社後はパフォーマンスチューニングの専任になりました。1年ほどサーバーサイドのパフォーマンス改善に取り組んだ後、クライアントの改善も担当し、そこで一定の成果を出すことができリードエンジニアになりました。リードエンジニアとしてはゲームだけではなく組織体制の改善も行ってきました。正直、入社当初から昇進はあまり意識していませんでしたが、とにかく見つけた課題に対してがむしゃらに取り組んできたことで、今ではDirectorとしてプロジェクト横断でエンジニアを統括する立場になっています。

■ハイブリッドなエンジニア

チームの方針として、クライアントとサーバーサイドの垣根を取ることを目指しています。人材としても、まずはサーバーサイドの業務ができることが前提ですが、加えてクライアントのことも分かる人を増やしたいと思っています。そういうハイブリッドな志向やスキルがある方は、是非マネージャーポジションで一プロジェクトのエンジニア全体を統括する立場になっていただきたいと思います。
この方針は自分がリードエンジニアになった時から掲げています。当時gumiでは、サーバーサイドとクライアントエンジニアで定例ミーティングや業務管理を別々に行っていたのですが、前職の小規模なゲーム会社ではそういった垣根なく働いていた経験から、縦割り体制が非効率だと感じていました。なので、今では定例ミーティングも一緒にやっていますし、例えば新卒社員にはクライアントとサーバーサイド両方を経験させ、「エンジニア」という一括りで育成しています。

サーバーサイドエンジニアに求められる人材像

■ゲーム好きで、プレイヤー目線で担当ゲームをプレイする姿勢

何よりも重要なのは、担当のゲームを好きになってプレイヤー目線でやり込む姿勢です。ゲームをすることで楽しく仕様が理解でき、課題を発見でき、プランナーとも仲良くなれる。こんなに良いことはありません。何かを学ぶにも、新しい技術を習得したいから学ぶのではなく、ゲームをより良くするために学習しようと思えることが大切です。今活躍しているメンバーは皆そういう姿勢を持っている人です。

■「自分が何とかしてやる!」という気概と責任感

最初にもお伝えしたとおり、サーバーサイドエンジニアは「縁の下の力持ち」です。24時間365日稼働しているゲームはいつ何が起こるか分からないですし、だいたい大変なのはお正月の深夜など世の中がお休みムード真っただなかのとき。リリース時には、万が一サーバーダウンさせてしまうと大きな損失にも繋がります。そんなプレッシャーを抱えながらも、何かあったときには「サーバーサイドの自分が何とかしてやる!」という気概と責任感を持てることは重要な素質です。実際、サーバーサイドで何とかするしかないですからね(笑)。

■異業種でのシステム開発経験も強みになる

私たちが重視しているのは、ここまでお伝えしてきた姿勢やマインドです。ゲーム開発の経験や特殊なスキルは決して必要ではありません。さらに、異業種での経験が強みになることもあります。異業種で一般的なシステム開発経験がある方は、納期や品質への意識が高い方が多く、スピード重視なゲーム開発の現場に良い刺激を与えてくれると考えています。

もし、ゲームが好きでゲーム業界に興味があるけれども経験面で不安がある方がいれば、是非一度迷いを捨てて一歩踏み出してみて欲しいと思います。私は、自分がゲーム業界で働ける可能性があると知ったときは嬉しく、とてもワクワクしたのを覚えています。実際に働き始めてからも楽しいですし、大規模なタイトルに関われることはこの上なく幸せだと感じています。ゲームが好きで、そんなゲームを「自分がもっと面白くしたい」という気概があるエンジニアの皆さんからのご応募をお待ちしています!