描画負荷からビルド改善まで──コア技術本部が支える大規模ゲーム開発の生産性と品質

技術・クリエイティブ

キャラクターの動きや画面演出、操作レスポンス──ゲームの体験を形づくるのは、目に見えにくい技術の積み重ねです。細部まで丁寧に設計された表現や動作が、プレイヤーの没入感を支えています。

そうした体験の質を、技術の力でさらに引き出していく。ゲーム・エンターテイメント事業部(SGE)に設置された「SGEコア技術本部」は、パフォーマンス最適化や開発支援等に携わる横断的な技術チームです。Unityを活用したプロファイリングやエディター拡張、ビルド改善、さらにはAIによる負荷分析の可能性まで──快適で魅力的なゲーム体験を支えるための取り組みに迫ります。

Profile

  • 金 敏赫 (SGEコア技術本部)
    2014年に韓国のゲーム開発企業に新卒入社し、ゲームエンジニアとしてキャリアをスタート。2016年より日本のゲーム企業にてリードエンジニア、エンジニアリングマネージャーとして開発に携わる。2023年、グラフィックス分野の再学習を目的に「Graphics Academy」へ参加したことをきっかけに、サイバーエージェントへ入社。現在はゲーム・エンターテイメント事業部の「SGEコア技術本部」にて、開発中タイトルのパフォーマンスチューニングを中心に技術支援を行っている。

大規模ゲームの裏側を支える、パフォーマンスチューニングの現場へ

── 金さんのエンジニアとしてのキャリアについて教えてください。

私は2014年に新卒で韓国のゲーム開発企業に入社し、エンジニアとしてのキャリアをスタートさせました。その後、2016年には日本のゲーム開発企業へ転職し、リードエンジニアやエンジニアリングマネージャーとしての業務を担当してきました。

サイバーエージェントを知ったきっかけは、グラフィックスエンジニアを育成するための3ヶ月間の特別プログラム「Graphics Academy」でした。もともと私はグラフィックス分野を得意としていたわけではありませんでしたが、大規模なゲーム開発において活用されるグラフィックス技術を基礎から学べる講義内容に大きな魅力を感じました。

さらに、サイバーエージェントは、社内研修用に作成された書籍「Unity パフォーマンスチューニングバイブル」をオープンソース化して公開し、業界全体の技術力向上に貢献するなど、技術水準の高いエンジニアが多く在籍しているという印象を強く受けました。そうした技術的に刺激のある環境であれば、自分もさらに高いレベルに挑戦できるのではないかと考えるようになりました。

「Graphics Academy」への参加を経て、2023年にサイバーエージェントのゲーム・エンターテイメント事業部「SGEコア技術本部」 (以下 SGEコア技術本部)へ配属されました。

── ゲーム開発におけるSGEコア技術本部のミッションや役割を教えて下さい。

ゲームの面白さを左右するのは、コンテンツの質だと考えています。たとえば、キャラクターの動きや画面演出、操作レスポンスといった体験の細部にまでこだわることで、プレイヤーの没入感を高めることができます。そうした魅力を技術面から引き出すことこそが、エンジニアの重要な役割であり、ゲームの成功に不可欠だと感じています。

しかし、開発には限られたリソースしか使えないことも多く、そういった状況では、どうしてもパフォーマンスの最適化まで手が回らないことがあります。このような課題に対して、私たちSGEコア技術本部は技術面からきめ細かいサポートを行い、エンジニアが安心してクリエイティブな開発に集中できる環境を整えることを目指しています。

最終的には、事業部全体の技術力を底上げし、各エンジニアがプロジェクト内で自律的に技術的な課題へ対応できる状態を実現することが私たちの目標です。単に個別の技術支援を行うだけではなく、知見を体系的に共有することも重要な役割だと考えています。その取り組みの一つとして、「Unity パフォーマンスチューニングバイブル」など、技術的なガイドラインの提供にも力を入れています。

無意識の作業遅延を減らす──開発効率を上げるSGEコア技術本部のパフォーマンス最適化

── 大規模なゲーム開発において、どのようなポイントでパフォーマンスの劣化や性能のボトルネックが発生し、どんなアプローチが有効なのでしょうか?

パフォーマンスの劣化を引き起こす要因は、非常に多岐にわたります。代表的なものとしては、メモリ管理の不備、サーバー通信の最適化不足、キャッシュの不適切な利用などが挙げられますが、それ以外にも多くの技術的課題が潜んでいます。こうした問題はプロジェクトごとに異なるため、一概に原因を特定することはできません。

そのため、私たちはまずUnityのプロファイラーを使って処理の実行状況を詳細に計測し、どこにボトルネックが存在するのかを丁寧に見極めるところから着手します。たとえば、ガベージコレクションの頻度が高くなっていたり、Draw CallやOverdrawが原因でGPUに負荷が集中していたり、シェーダー描画が非効率になっていたりするケースもあります。場合によっては、メモリ使用量が過剰となり、アプリケーションがクラッシュすることもあります。

「Unity パフォーマンスチューニングバイブル」の第1章でも紹介している通り、パフォーマンス改善においては、まず「目指すべき指標を定める」ことが重要です。計測を通じて課題を可視化し、どのレベルまでチューニングを行うべきか、明確な到達点を設定します。

そのうえで、継続的にプロファイリングと検証を繰り返しながら、ボトルネックの原因を特定し、ピンポイントに修正を加えていくというアプローチを基本としています。こうした段階的かつ定量的な手法によって、安定したパフォーマンスと高い品質の両立を目指しています。

SGEコア技術本部によるUnityのプロファイラー

── 他にも開発生産性を向上させるために、どのような工夫がありますか?

Unityのエディタ拡張によるワークフロー改善は、生産性を高めるうえで非常に有効な手段の一つだと考えています。特に、プロジェクトが進むにつれて、非エンジニア職の方々からの問い合わせや確認作業が増えてくると、開発のイテレーションに想像以上の影響が出てしまうことがあります。そうした背景もあり、エンジニアが日常的に行っているルーチンワークを自動化できるのであれば、できるだけ早い段階でその仕組みを導入することが重要です。

Unityはエンジニアだけでなく、プランナーやデザイナーの方々も日常的に使用しているため、たとえばPrefabの編集作業を効率化したり、データ入力や動作確認の手間を軽減したりするようなエディター拡張を用意することは、現場にとって非常に価値があります。また、プロジェクトの品質を維持するためのチェックツールをエディター内に組み込むといった工夫も効果的です。

さらに、全職種が毎日Unityを使うようになった今だからこそ、エディター起動時に表示されるローディングバーにも目を向けるようにしています。多くの人が当たり前のものとして受け入れてしまいがちですが、こうした処理にも無駄が潜んでいることがあります。ボトルネックを分析して改善することで、数秒から十数秒の短縮につながることもあります。小さな改善に見えても、全メンバーが毎日直面するプロセスだからこそ、年間を通じて非常に大きな時間の節約につながります。

このように、日々の作業に潜む細かな非効率を丁寧に見直していくことで、チーム全体の生産性を着実に向上させることができます。エディター拡張などのツールや仕組みは、開発メンバー全員が長期間にわたって使い続けるものです。そのため、初期段階での工夫や投資が、結果として大きな成果につながると実感しています。

── 大規模ゲーム開発において、課題になりがちなビルド時間の短縮についてはどう見ていますか?

多くのプロジェクトでは、JenkinsやGitHub Actionsなどを活用した継続的インテグレーションや継続的デリバリー、いわゆるCI/CDのパイプラインが構築されています。ただし、こうした仕組みの中にも、開発が進むにつれて無駄が蓄積し、ビルド時間が必要以上に長くなってしまうケースは少なくありません。

このような課題に対しては、私たちSGEコア技術本部のように、プロジェクト外から第三者的な視点でプロセスを見直せる立場の人間がいることで、改善の余地を発見しやすくなると考えています。たとえば、「ビルドに1時間かかるのは当たり前」と受け入れられていたものが、実際には構成の見直しや不要な処理の削除によって、半分以下の時間に短縮できたという事例もあります。

特に、ビルドして確認し、修正して再度ビルドするといった反復作業においては、1回あたりのビルド時間がそのまま開発効率に直結します。ごく小さな変更であっても、ビルドと確認に数十分かかってしまうような状況は、開発メンバーにとって日常的なストレスになります。

もちろん、プロジェクト内でもそうした課題に気づいて対処しようとしている方は多くいらっしゃると思いますが、リソースや優先度の関係で、なかなか手が回らない場面もあるかもしれません。だからこそ、私たちがその「かゆいところに手が届く」ような技術支援を行うことで、開発全体のスピードと質を底上げできると考えています。

AIと共に考え、現場を支える──これからの技術支援に求められる視点

── 生成AIを活用した開発生産性向上も注目されています。どんな技術的な可能性を感じますか?

AIの活用によって、プロファイリングやパフォーマンス分析のプロセスは今後大きく変わっていく可能性があると感じています。たとえば、Unityで取得したプロファイラーデータをAIに入力し、フレーム単位で処理負荷の高い箇所を抽出したり、「GC Allocationsが特定のタイミングで急増している」といった傾向を自動的に指摘したりする仕組みは、十分に実現可能なレベルにあると思います。
実際に、過去のプロジェクトから収集したプロファイラーログをもとに、負荷傾向の分類や自動ラベリングに、実験的に取り組んだ例もあります。今はまだ試験的な段階ですが、将来的には「このコードの書き方はパフォーマンス的にリスクが高い」「過去の類似事例ではこのような修正が効果的だった」といった助言をリアルタイムで返すAIツールの開発にもつなげていけると考えています。

従来は、処理の遅い箇所をエンジニアが手動で探し、原因を分析する必要がありましたが、今後はその作業の一部をAIに任せることで、より多くの時間を改善そのものに割けるようになります。単なる効率化にとどまらず、属人化しがちなノウハウをシステムとして蓄積・共有できる点も、非常に大きな価値だと感じています。

── 現在、SGEコア技術本部でも人材を募集していると伺いました。具体的には、どういったスキルセットや経験を持ったエンジニアが求められているのでしょうか?

私たちは、複数のゲームプロジェクトを技術面から横断的に支援する立場にあります。そのため、まず重視しているのは「さまざまなプロジェクトに関わることに前向きでいられるかどうか」という点です。一つのプロジェクトに深く関わり続けるというよりは、開発現場ごとの課題や状況に応じて柔軟に立ち回る必要があるため、そうした働き方に興味を持てることが非常に大切です。

このような環境では、自然と高い学習力が求められます。新しいプロジェクトに参加した際に、状況を自分で把握し、課題を見つけ、主体的に解決に向けて動いていくような姿勢が欠かせません。また、技術的な支援を行うためには、プロジェクト全体の構造や設計を把握する力も重要ですので、ゲーム開発の一通りの流れを経験している方が望ましいと考えています。

特に、ゲームの表現やコンテンツだけでなく、技術的な基盤や仕組みの部分に強く興味を持っている方には、非常にフィットする環境だと思います。たとえば、Unityのバージョンアップ情報が気になってつい自分で調べてしまうような方や、「この仕様はなぜこうなっているんだろう?」と自然に掘り下げたくなるようなタイプの方は、私たちのチームに向いています。

スマートフォン向けのIPタイトルでクライアント側の開発経験がある方も歓迎ですし、「もっと根本から改善したい」という技術的な貢献意欲を持ち、自ら改善点を見つけて提案・実行できる方であれば、特に活躍できるはずです。

また、プロジェクトの安定性や品質を守る「ガードレール」としての意識を持ちつつ、各チームと丁寧にコミュニケーションを取りながら進めていける方にぜひ来ていただきたいです。どちらかというと、特定の技術分野に深く特化したスペシャリストというよりも、幅広い課題に対応できるジェネラリスト志向の方が、私たちのチームにはよりフィットすると感じています。

SGEコア技術本部エンジニア募集

SGEコア技術本部ではエンジニアを募集中です。記事を読んで興味をもたれた方は、ぜひ下記のリンクからお問い合わせください。

SGEコア技術本部 技術ブログ
【カジュアル面談実施中】新規開発ライン大幅増

この記事をシェア

公式SNSをフォロー

  • Facebook
  • Twitter
  • Instagram
  • Line

記事ランキング

偶然を科学する─R&D組織におけるイノベーション活性化を経済学でデザイン─

技術・クリエイティブ

Page Top