Slide 1

Slide 1 text

2025/7/23 株式会社QualiArts 田村 和範 モバイルゲームの開発を支える基盤 の歩み ~再現性のある開発ラインを量産する秘訣~

Slide 2

Slide 2 text

• 株式会社QualiArts • 2015年入社 • 開発推進室 室長 • 過去の登壇 CEDEC 2020「大規模モバイルゲーム開発を高速化するAdobe XD 活用術 〜企画立案からUnityと連携した実装まで〜」 CEDEC 2023「エンジニアとクリエイターで作る!モバイルゲーム 開発における理想的なUIアニメーション開発フロー」 田村 和範

Slide 3

Slide 3 text

ゲーム・エンターテイメント事業部(SGE) 子会社制をとっており、 ゲーム・エンターテイメント事業に携わる 8社の子会社が所属しています。 ぜひ技術広報Xアカウントの フォローをお願いします。 ゲーム・エンターテイメント事業部(SGE) @ca_ge_tech

Slide 4

Slide 4 text

「ずっとおもしろいセカイをつくる」をビジョンに、Unityを用いたスマートフォン 向けゲームの企画・開発・運営やIPの企画・開発・プロデュースを行っている 株式会社QualiArtsとは

Slide 5

Slide 5 text

基盤、ツール、環境の提供を通してエンジニアの開発力の強化を実現する 開発推進室 基盤 CI/CD 自動テスト AI ※7/24 第5会場 11:10-12:10 モバイルゲームで自動テストが効果を発揮するまで~自動テストを「運用」するまでの組織のアプローチ~

Slide 6

Slide 6 text

開発推進室とTA室とプロジェクト プロジェクトA 開発推進室 TA室 プロジェクトB … グラフィックスなどを担当するTA室とともにプロジェクト横断で開発を支える

Slide 7

Slide 7 text

基盤開発の光と闇、それにどう立ち向かうか セッションの概要

Slide 8

Slide 8 text

本講演における「基盤」とは 基盤 = Unityエンジン 基盤 ゲーム固有 の実装 Unity製ゲームの開発においてプロジェクトを またいで活用可能な社内で開発された仕組み 主にはUnityのパッケージの形で提供 システム領域やUI領域の基盤の話が中心

Slide 9

Slide 9 text

Contents • QualiArtsにおける基盤 • 基盤開発・活用の効果と課題 • 基盤開発・活用における課題にどのように向き合って きたか • まとめ

Slide 10

Slide 10 text

1 QualiArtsにおける基盤

Slide 11

Slide 11 text

QualiArtsのUnity製ゲーム サイバーエージェント本社からAmebaのゲーム部門が分割され子会社化 子会社化前を含め多数のUnity製ゲームをリリースしてきた

Slide 12

Slide 12 text

QualiArtsにおける基盤の歴史 2015年頃まで 2015年頃 2017年頃 現在

Slide 13

Slide 13 text

黎明期 2015年頃まで 2015年頃 2017年頃 現在 独自実装による開発が主流 ちょっとした便利機能をコピペしつつ共通で使う動きはあり

Slide 14

Slide 14 text

基盤のはじまり 2015年頃まで 2015年頃 2017年頃 現在 当時の基盤組織によりいくつかの基盤が開発 特にアセットバンドル配信基盤「Octo」が広く浸透 ※CEDEC2017「複雑化するAssetBundleの配信からロードまでを基盤化した話」

Slide 15

Slide 15 text

汎用機能の基盤化 2015年頃まで 2015年頃 2017年頃 現在 プロジェクト内で開発された汎用機能を基盤化しようという 動きが始まる 特にUI実装のための共通機能を集めた「quaunity-ui」が 開発され、新規開発のプロジェクトに導入される 基盤化

Slide 16

Slide 16 text

基盤の普及 2015年頃まで 2015年頃 2017年頃 現在 規模の小さいものから大きいものまで多くの基盤が開発 開発推進室やTA室やプロジェクト所属のメンバーが開発、運用 例えば「quaunity」でGitHub Organization内を検索すると 87リポジトリがヒット

Slide 17

Slide 17 text

基盤の例:Titan • UIアニメーション実装における課題を解決するため、 プロジェクト所属のメンバーと共同で開発 • QualiArtsだけでなくグループ内でも利用される基盤に CEDEC 2023での発表の様子

Slide 18

Slide 18 text

基盤の例:API/マスター/ユーザー • ゲームAPIの呼び出し、マスターデータ管理、ユーザーデータ管理、それに必要な クラスの自動生成などの機能を持つ • アイプラの新規開発時、これからのQualiArtsの標準にしようという思いを込めな がら、バックエンドと共にプロジェクト内で開発 • アイプラリリース後に基盤化 基盤化

Slide 19

Slide 19 text

その他の基盤の例 汎用エディタ拡張 雑多ツール集 実機デバッグ用ツール Figmaインポーター ベクターUI ADVエディタ ロガー アセット確認用ビューワー ローカルセーブ アカウント連携 課金 ビルド 静的解析

Slide 20

Slide 20 text

Unipack 基盤の配信 • 社内のUnityパッケージレジストリ(Unipack)を運用 • Unipack経由で簡単に導入可能 • 100以上のパッケージが存在 基盤開発者 publish Unityプロジェクト から指定して利用

Slide 21

Slide 21 text

2 基盤開発・活用の効果と課題

Slide 22

Slide 22 text

基盤の効果 • 開発コストの削減 • 品質の向上 • 学習コストの削減

Slide 23

Slide 23 text

• ゼロから仕組みを開発する必要がなくなる • 便利ツールを利用できる 開発コストの削減 • ユニークな面白さに関わる部分を追求できる • プロトタイピングが迅速になる

Slide 24

Slide 24 text

品質の向上 • 他のプロジェクトで踏んだ罠を踏まずに済む • 基盤により組織として最低限の品質を担保

Slide 25

Slide 25 text

プロジェクトA プロジェクト間の異動や短期間のヘルプの際の学習コストが少なく済む 学習コストの削減 プロジェクトB 基盤α 基盤α

Slide 26

Slide 26 text

基盤の課題 基盤をうまく開発し、うまく活用される状態にするのは簡単な話ではない • 課題① クオリティの問題 • 課題② 使い方の問題 • 課題③ 需要の把握の問題 • 課題④ 開発スタイルの問題 • 課題⑤ 属人化の問題

Slide 27

Slide 27 text

課題① クオリティの問題 基盤には高いクオリティが求められる

Slide 28

Slide 28 text

課題② 使い方の問題 基盤に熟練しなければ基盤をうまく利用できない

Slide 29

Slide 29 text

課題③ 需要の把握の問題 基盤開発者が正確に需要を理解しなければいけない

Slide 30

Slide 30 text

課題④ 開発スタイルの問題 開発スタイルが異なると踏み込んだ基盤を作れない

Slide 31

Slide 31 text

課題⑤ 属人化の問題 基盤の開発・運用が属人化しがち

Slide 32

Slide 32 text

3 基盤開発・活用における課題に どのように向き合ってきたか

Slide 33

Slide 33 text

課題への向き合い方 • 前セクションで紹介した課題は、普遍的な解決策があるようなものではなく、 組織の状況に合わせた対応が必要 • QualiArtsではどのように課題に向き合ってきたかを紹介する

Slide 34

Slide 34 text

課題①への対応 基盤には高いクオリティが求められる

Slide 35

Slide 35 text

基盤には高いクオリティが求められる 一度プロジェクトで開発され、既に実績のある機能を基盤として独立させる 課題①への対応 プロジェクトA プロジェクトB 基盤の卵 基盤 基盤化

Slide 36

Slide 36 text

プロジェクト内の実装を基盤化した例 UI関連の基盤化 (quaunity-ui) API/マスター/ユーザー 関連の基盤化 他社IPゲーム

Slide 37

Slide 37 text

基盤に熟練しなければ基盤をうまく利用できない 課題②への対応

Slide 38

Slide 38 text

基盤に熟練しなければ基盤をうまく利用できない 基盤開発者がプロジェクトに入り込んで導入のサポートをする 課題②への対応 プロジェクト 基盤 基盤開発者

Slide 39

Slide 39 text

Figmaインポーターの例 • Figmaのデザインをインポートするための基盤 • 導入したら終わりというわけにはいかない 設定の調整 プロジェクト独自のカスタマイズ Figmaデザインのルール決め ワークフローの整備 メンバーへの布教 レイアウト情報 + 画像 プラグインで出力 プレハブ構築

Slide 40

Slide 40 text

• 導入の中での気づき プラグイン公開フローが煩雑 特定の条件でのバグや機能不足 動作が遅くてストレス • 多くの機能追加や改善を実施! • 導入経験を踏まえてドキュメントを整備 Figmaインポーターの例

Slide 41

Slide 41 text

基盤開発者が正確に需要を理解しなければいけない 課題③への対応

Slide 42

Slide 42 text

基盤開発者が正確に需要を理解しなければいけない 基盤開発者がプロジェクトに密接に関わり続ける 課題③への対応 • 定例への参加 • 座席でのコミュニケーション • 徹底的なドッグフーディング • たまに機能開発のタスクを持っても良い プロジェクト プロジェクト メンバー 基盤開発者

Slide 43

Slide 43 text

Titanの例 基盤開発者+プロジェクト側+デザイナー 定例を行い、実際の利用者から要望を受け、開発した機能の紹介、フィードバック → 基盤に必要な機能を随時すり合わせる

Slide 44

Slide 44 text

開発スタイルが異なると踏み込んだ基盤を作れない 課題④への対応

Slide 45

Slide 45 text

開発スタイルが異なると踏み込んだ基盤を作れない 課題④への対応 プロジェクト内での開発スタイルの統一 プロジェクトを跨いだ開発スタイルの統一 組織の文化へ…

Slide 46

Slide 46 text

プロジェクト内での統一 IDEのフォーマット統一 静的解析の整備 プルリクエスト時のテスト

Slide 47

Slide 47 text

複数のプロジェクトの経験を経て、開発スタイルを洗練・収束させる プロジェクトを跨いだ統一 プロジェクトA プロジェクトB プロジェクトC プロジェクトD

Slide 48

Slide 48 text

重要なポイント • 今までの流れに沿った進化を心がける • 横断組織が各プロジェクトを見守る • プロジェクト間での技術共有をあらゆる手段で行う Unity共有会 Unity勉強会 • 組織内でのコンセンサスを取る プロジェクトを跨いだ統一

Slide 49

Slide 49 text

組織の文化へ… • 基盤と文化の循環 • 基盤の市民権をいかに得るか 基盤を活用することが開発にとってプラスになるという認識を 職種問わず作る 基盤・基盤開発者に対する信頼を積み重ねていく • 「他のプロジェクトのために」という発想を当たり前にする 持ちつ持たれつの関係を作る 基盤 文化

Slide 50

Slide 50 text

課題⑤への対応 基盤の開発・運用が属人化しがち

Slide 51

Slide 51 text

課題⑤への対応 基盤の開発・運用が属人化しがち • 作った基盤が安定するまでしっかり面倒を見る • プロジェクト側にも基盤の思想や実装を理解したメンバーを作る • 基盤を開発できるメンバーを増やす

Slide 52

Slide 52 text

テックリレー グループごとに技術を伝承しつつ、基盤に機能追加したり新たな基盤の開発を行う テーマA テーマB テーマC … 元々の基盤のメンテナー or 基盤開発に慣れている人 その基盤に興味がある人 or 基盤開発に慣れていない人

Slide 53

Slide 53 text

基盤作りのハードルを下げる • 命名で悩まない quaunityというprefix • 提供方法で悩まない Unipackの存在とpublishの簡略化 • コミットを歓迎する 特に製品に乗らない機能は多少完成度が低くても良い 細かな便利ツールを集めたquaunity-toolsは特にハードルを緩くしている

Slide 54

Slide 54 text

4 まとめ

Slide 55

Slide 55 text

5つの課題とその対応 色々な対応をしてきたが、基盤のドキュメンテーションなど、まだまだ課題も… クオリティ 使い方 需要の把握 開発スタイル 属人化

Slide 56

Slide 56 text

基盤開発の面白さ 1つの基盤が大きな成果に繋がることも ゲーム・エンターテイメント事業部

Slide 57

Slide 57 text

基盤を利用する皆さんへ こんな声がもらえると嬉しい ちょっと 使ってみたよ! このあたりで つまづいた… この機能を よく使ってる!

Slide 58

Slide 58 text

千里の道も一歩から • 今できることから始める 技術共有会 プロジェクト内のルール整備 • 積み重ねることで、組織の当たり前へ

Slide 59

Slide 59 text

ありがとうございました