サイバーエージェントの大規模ゲーム開発を支える共通基盤づくり

株式会社サイバーエージェント

矢野 春樹

株式会社サイバーエージェント

SGEコア技術本部 Unityエンジニア

2012年に企画職として入社後、エンジニアに転向しゲーム開発に携わる。その後退職し、2021年に再入社。現在は、「SGEコア技術本部」にて、ゲーム事業全体の開発効率と品質の向上を目指して共通ライブラリの開発などを行なっている。

10社以上からなるゲーム事業部を横断で繋ぐ「SGEコア技術本部」の基盤開発

これまでのご経歴と現在の職務内容を教えてください。

2012年にビジネス職としてサイバーエージェント(以下、CA)へ入社し、その後Unityエンジニアに転向しました。以前からプロジェクト単位での業務ではなく、横断的な仕事に興味があったため、汎用的なシェーダやツールなどを開発していました。ただ、その当時は私が今所属しているような横断組織はなかったこともあり、ゲーム開発に数年間従事した後に転職をしました。その後、2021年に「SGEコア技術本部」(以下、コアテク)が出来たことをきっかけとして再びCAに戻りました。

コアテクとは、どういった組織なのでしょうか。

CAのゲーム事業部は子会社制をとっており、10社以上の子会社が所属し、各子会社がそれぞれの得意分野でゲーム開発を行っています。この体制のメリットは、各社が自分たちの独立採算で稼働し、素早い意思決定のもと開発を進行できることです。各社が裁量を持つことによって事業を進めるスピードが早いんですよね。

一方、会社が複数あることで、車輪の再発明が起きている印象もありました。そこで、ゲーム事業部全体として使えるナレッジはしっかり共有する、あるいは基盤化を行うなど、すべての子会社の技術を横断的に把握して、サポートするチームが必要になりました。これがコアテクです。

設立当時は私を含めて3名でしたが、現在は専任が約10名、兼任を含めると15名程度の組織となっています。ミッションは「開発効率と品質の最適化」。具体的には基盤開発、パフォーマンスチューニング、セキュリティ対策(チート対策)、AI(機械学習)などに注力しています。

関連する子会社について教えてください。

各社に特徴はありますが、例えば私が所属していたアプリボットは大規模開発が多いですね。特に、大型タイトルでは細かなチューニングやセキュリティ対策が相応に求められます。この辺りをコアテクがサポートしています。

コアテクの責任者である石黒が以前在籍していたQualiArts(クオリアーツ)は、技術基盤を作る志向が強い組織です。こうした会社では、有用な基盤を他社へ展開する、あるいは開発協力をお願いするといった組み方をすることもあります。他にもAI・機械学習の研究開発などを一緒に行うこともあります。

事業部として「ベンチャーと大規模組織の良い所取りをしたい」という考えがあります。1社1社は意思決定の早いベンチャー的な側面を持ちながら、コアテクのような横断組織があることで大規模なナレッジの共有や基盤開発が可能になります。組織力を高めることで、ヒット確率を上げていきたいと考えています。

コアテクが提唱する共通基盤があると何が嬉しいのでしょうか。

車輪の再発明がなくなって工数が浮くのが1番のメリットです。基盤にするところは技術的にコアな部分、ローレベルで専門知識が必要で、ゲームエンジニアとのスキルセットとは異なるという部分も多いです。工数面で言うと、複数のプロジェクトに導入する前提のため、工数をしっかり掛けて良いものを作る動きがしやすいですね。実際のプロジェクトの場合、どうしても実装優先なのでツールの開発などは後まわしになりがちです。しっかりしたものを作って横展開することで、最終的に全体としての工数を削減することが狙いです。

技術をオープンにすることのメリット・デメリット

現在コアテクに在籍しているのは全員がエンジニアなのでしょうか。

そうですね。責任者の石黒はコアテク全体の組織と基盤周り、AI周りを担当しています。パフォーマンスチューニングを担当している飯田は、もともと複数のプロジェクトにスポットで入っていました。最近は社内のエンジニアの技術力強化にも取り組んでおり、『Unity パフォーマンスチューニングバイブル』なども彼が手掛けています。私は当初からOSS(オープンソースソフトウェア)をやりたいと思っていたので、現在はさまざまなツールや共通ライブラリを開発しています。また、OSSは出して終わりではなく、広めて使っていただくところがゴールになりますので、プロモーションや登壇、ブログ記事執筆なども行っています。

『Unity パフォーマンスチューニングバイブル』は素晴らしかったですね。

ありがとうございます。パフォーマンスチューニングは高度な技術ですが、ゲームエンジニアリングの延長にあり、各Unityエンジニアが持っている必要があるスキルが多いです。そのスキルを持っている飯田がスポットでプロジェクトに入って解決することもできますが、私たちは各エンジニアがこのスキルを持っている状態が理想であると考えています。こうした背景から、体系的に学べる書籍を足掛け1年で制作しました。

OSS然り、社内資料の一般公開然り、なぜ技術を広く知らしめるのでしょうか?一社だけ、あるいは関係企業だけで共有したほうが競争優位性があるような感覚もあります。

オープンにする理由としない理由、それぞれのメリット・デメリットを考えて総合的に判断しています。デメリットは仰る通り技術が流出するという点ですね。

まず、「誰でも工数を掛けたら作れる」というものはオープンにして良いだろうと考えています。他社様の開発工数がその分減ったとしても、それで競争優位性が失われるかといえばそうではないはずです。私達はものづくりをしている以上、コンテンツの面白さが最重要であり、それこそが競争優位の源泉だと考えています。工数が削減された結果、業界全体としてコンテンツそのものに集中して勝負できるような環境になれば、それは喜ばしいことだと思っています。

OSSについては、細かいメリットがたくさんあります。例えば私が開発したツールを社内に広く導入してもらう場合、使用実績がないと「本当に大丈夫なのか?」と不安に思われがちです。でも、OSSとして採用実績を作っておくことで社内導入のハードルが下がります。また、Issueやプルリクによるバグの発見と品質の向上もメリットです。

加えて言えば、社内用ツールはドキュメントが中途半端になりがちです。一方、OSSであればドキュメントやテストを充実させる必要があります。ちゃんとしたものができる、というよりはちゃんとせざるを得ないという感覚ですが、こういう「せざるを得ない」力学が働くのは非常に良い点だと感じています。優れたOSSで使用実績も増えれば業界におけるプレゼンスも大きくなるので、ブランディングの側面もありますね。ひとつひとつは小さいメリットでも、総合するとデメリットを上回るケースも多いと考えています。

技術を出す側に情報が集まるという側面もあるかと思います。ただ、普通の会社だと、「自社の技術をOSSで公開します」というのは社内説得を含めて困難だと思います。ここに至るまでの道筋は一筋縄ではいかなかったのではないでしょうか。

コアテクはゲーム担当役員直下の部署であり、2週間に1度、立ち上げ当初はもっと短いスパンで意見交換をしていたこともあって戦略の共有はできていました。

今挙げたメリットを享受するには、自分たちのツールを多くの方に使っていただく必要があります。成功するかどうかはやってみないと分からない部分もあるものの、メリット・デメリット含めて共有できていたので、まずはやってみようという方針になりました。

『NOVA Shader』と『AssetRegulationManager』の事例

ここからは具体的にOSSの開発事例を教えてください。

まずはNOVA Shaderを紹介します。これはUnityでエフェクトを作る時に使うシェーダです。一般的に、エフェクト制作には機能が細かく異なるシェーダが多数必要になりがちで、シェーダ自体が量産されてしまう課題がありました。NOVA Shaderは統一シェーダとして、エフェクトアーティストのワークフローを考えて、1つのシェーダの中で機能を切り替えながら表現を試行錯誤できるような仕組みになっています。

NOVA Shader

求める表現によってシェーダが異なるため、都度作られてしまうと。実際、統一的なシェーダを作る前はどういった状況だったのでしょうか。

私が以前携わっていた大規模プロジェクトでは、シェーダが無数に作られている状態でした。表現と実装ありきで全体の俯瞰的な設計が弱く、整理しないといけない状況でした。もともとはこのプロジェクトのために共通化したシェーダを作ったのがNOVA Shaderのはじまりです。その後、そのシェーダが別プロジェクトでも共有されていて、いつの間にか他の子会社でも使用されていたということもあって、それならばしっかり作り込もうと考えてNOVA Shaderを開発しました。エフェクトアーティストと議論の上、機能の統合と追加などを行いながら最終的な仕様に落とし込みました。

実際に使用事例などはあるのでしょうか。

社外では、Twitterなどでエフェクト作ってみた系の動画はよく拝見しています。また、社内のエフェクトアーティストからも好評で、NOVA Shaderを用いた社内ワークショップなども開催されていました。もちろん弊社のプロジェクトにも組み込まれており、これからリリースされる作品にも使用されています。

NOVA Shader以外の事例があれば教えてください。

Asset Regulation Managerという、アセット管理ライブラリを開発しました。昨今はモバイル端末でもハイエンドなゲームが開発できるようになってきましたが、大規模になればなるほどテクスチャサイズやフォーマット、モデルの頂点数などの制約がどんどんシビアになってきます。これを制御できていないと、簡単にクラッシュなどの問題が発生してしまいます。

多くのプロジェクトでは、フォーマットはこれで、サイズは1024x1024で、などカッチリとしたルールを決めて開発を進めるのですが、ルールを決めるのと守るのは別です。結局、ルールを逸脱したアセットはどこかの過程で生まれてしまいます。ですから、自動的にチェックを行うアセット管理の仕組みがあればと思い、このライブラリを作りました。

開発が大規模化するにつれ関わるアーティストも増え、アセット管理も煩雑になります。チェックがルールに則って自動的に行われるのは非常に良いですね。

もともとはこちらも所属していたプロジェクトで作ったAsset Checkerというライブラリが前身となります。このプロジェクトで使い捨てる前提で作ったものではありましたが、改めてOSS化の際にしっかり作り込んだことで、他プロジェクトでも導入が進んでいます。こういうところで時間を使ってしまうともったいないので、他社の皆さんにもどんどん使っていただきたいと思っています。

SYNC来場者に向けて

SYNC2022での講演内容について教えてください。

今回は『UIもshaderで盛る! 〜 shaderとanimationで作るリッチなUI演出』、『「IDOLY PRIDE」における動画のようなADVの実現方法』、『全米1位のゲームの作り方』、『UI Toolkitを使用したランタイムツールの開発事例紹介』などさまざまな講演を用意しています。「UIをシェーダで盛る」というのは結構珍しいのではないかと思っていて、リッチなUIを作る事例をご紹介できると思います。また「IDOLY PRIDE」の講演では、OSS公開していないものですが社内のADV作成ツールや基盤の紹介をします。そのほかにも、ハイパーカジュアルゲーム市場で全米1位を獲得した話や実践的なUI Toolkitによる開発についての講演もありますので、ぜひ見に来ていただけると嬉しいです。

最後に、参加者へ向けたメッセージをお願いいたします。

ここ数年の動向として、海外からも大規模タイトルが次々と生まれ、日本の市場でヒットしている現状があります。一方、私たち日本のゲーム会社も、それらに負けないような技術や知見を持っているはずです。ただ、なかなか技術情報が公開されなかったり、ナレッジが一社で閉じてしまったり、オープンな環境ではないことも事実かと思います。 私たちは、技術やナレッジの共有によってゲーム産業全体のレベルがさらに向上し、より活気に溢れていく、そこに少しでも貢献できたらと考えています。今回のSYNC2022でもさまざまな事例を共有していきますので、ぜひ見に来ていただけると嬉しいです。