1K Views
January 26, 26
スライド概要
【概要】
ゲーム開発現場における、Gemini Cliを用いた開発プロセス改善のリアルな取り組みと、そこから得た知見を紹介します。
【イベント】
DeNA × AI Talks #5
https://dena.connpass.com/event/377181/
DeNA が社会の技術向上に貢献するため、業務で得た知見を積極的に外部に発信する、DeNA 公式のアカウントです。DeNA エンジニアの登壇資料をお届けします。
若手ゲームエンジニアが挑む Gemini CLI活用術 Takeru Wada , Hayato Sato 2026/01/26 © DeNA Co., Ltd. 1
自己紹介 和田 健 ゲームサービス事業本部開発運営統括部第一技術部 テクノロジー推進第四グループ ● 2024年新卒入社 ● Unity基盤チームに所属 ● 現在はUnityでタイトル開発 © DeNA Co., Ltd. 2
自己紹介 佐藤 勇人 ゲームサービス事業本部開発運営統括部第一技術部 テクノロジー推進第四グループ ● 2023年新卒入社 ● Unity基盤チームに所属 ● よくブログを書く © DeNA Co., Ltd. 3
1. ゲームサービス事業本部のAI活用 © DeNA Co., Ltd. 4
ゲームサービス事業本部(GS事業部)でのAI活用 ● コーディングの生産性向上のためにAIエージェント導入 ○ GS事業部では Gemini / Gemini CLI を積極的に活用 ● コーディング以外のエンジニアリング領域に活用を推進 ○ 取り組みをDeNA×AI Dayなどのイベント等で外部発信 ■ 例. 社内ライブラリ特化のチャットAIが起こす、開発現場での変革 本公演ではコーディング以外でのGemini CLI活用事例を2つ紹介 © DeNA Co., Ltd. 5
様々なコーディングエージェント Claude Code Codex CLI Gemini CLI 開発元 Anthropic OpenAI Google スター数 56.7k 56.2k 91k モデル Opus 4.5 Sonnet 4.5 Haiku 4.5 GPT 5.2 Codex GPT 5.2 Gemini 3 Pro/Flash Gemini 2.5 Pro/Flash GS事業部はGemini CLIを中心に活用 © DeNA Co., Ltd. 6
どうしてGemini CLIを選定しているのか① ● DeNAではGoogle Cloudをメインで活用している ○ ゲームのサーバーで利用されることが多い ■ 例: 社内ゲームサーバー基盤 Takasho とは ○ クライアントエンジニアも利用することも多い ■ ビルド/アセットバンドル/テレメトリデータの保存先 ■ 例: 開発時の「なぜ?」を解き明かす!Pokémon TCG Pocketにおけ るテレメトリ計測基盤とその活用 既に導入されており管理がしやすい © DeNA Co., Ltd. 7
どうしてGemini CLIを選定しているのか② Gemini Code Assist Enterprise Vertex AI 料金体系 月額固定 (月間契約 : $54/1month) 従量課金 (トークン数に応じて課金) 利用者 高頻度で活用する人 あまり活用しない人 ※2026年1月現在 コスト管理がしやすい © DeNA Co., Ltd. 8
どうしてGemini CLIを選定しているのか③ ● CI/CDでのメリット ○ Google CloudのIAMベースで管理できる ■ 権限の管理がしやすい ■ Workload Identity Federation ● ○ 秘密鍵の管理が必要ない 既にGoogle Cloudを活用したワークフローが複数存在する Vertex AIを活用すればCI/CDで活用しやすい © DeNA Co., Ltd. 9
どうしてGemini CLIを選定しているのか④ ツール名 最大コンテキスト ウィンドウ モデル Gemini CLI 1,000,000 Gemini 3 Pro/Flash Gemini 2.5 Pro/Flash Claude Code 200,000 Opus 4.5 Sonnet 4.5 Haiku 4.5 Codex CLI 400,000 (Sonnetは条件ありで1,000,000) GPT 5.2 Codex 大規模ゲーム開発ではコンテキストウィンドウの大きさが重要 © DeNA Co., Ltd. 10
ここからコーディング以外でGemini CLIを どう活用しているのか事例を2つご紹介します © DeNA Co., Ltd. 11
2. Gemini CLIで仕様書・実装チェック © DeNA Co., Ltd. 12
目次 - Gemini CLIで仕様書・実装チェック 1 仕様漏れ・実装漏れを無くしたい 2 Gemini CLIで仕様書・実装をチェック 3 実際試して、どうだったのか? 4 まとめ © DeNA Co., Ltd. 13
背景・課題 2-1. 仕様漏れ・実装漏れを無くしたい © DeNA Co., Ltd. 14
仕様漏れ・実装漏れを無くしたい 速度優先の開発の中では、仕様と実装にズレが発生してしまう QA段階でこれらが発覚すると、量によっては対応が遅れる 最悪の場合リリースが遅延してしまう しかし・・・ これをエンジニアが手作業で行うのは非常に時間がかかる ゲーム開発者のクリエイティブな作業を阻害してしまう © DeNA Co., Ltd. 15
AIを用いてはどうか AIが仕様漏れ・実装漏れを見つけてくれれば、 現在の負担を増やすことなく品質を向上させられる 今回はGemini CLIを用いて、 AIでの仕様漏れ・実装漏れの発見ができるか?を試す © DeNA Co., Ltd. 16
解決手法 2-2. Gemini CLIで仕様書・実装をチェック © DeNA Co., Ltd. 17
Geminiにレビューをしてもらう 仕様書・実装をチェックさせるために、以下の3Stepを実施 Step1: AIに仕様書を渡すために Step2: AIにレビューさせるために Step3: プロンプトを改善する/させる 仕様書の用意 Rinchan CLI 実行環境 Confluence 仕様書 © DeNA Co., Ltd. 仕様・実装を読ませる Gemini CLI カスタムコマンド 仕様書・コード 18
Geminiにレビューをしてもらう Step1: AIに仕様書を渡すために Step2: AIにレビューさせるために Step3: プロンプトを改善する Rinchan CLI Confluence 仕様書 © DeNA Co., Ltd. 19
Step1: 仕様書をAIに渡すために 前提として、仕様書はConfluenceで管理している どうやってAIが仕様書を読み込めるようにするか? 一般的にはConfluenceの公式MCPが使用されることが多いが ● 公式MCPは添付画像のデータ等まで落とせない ● アクセス範囲が制御出来ない © DeNA Co., Ltd. 20
Step1: 仕様書をAIに渡すために 社内ツールとして整備されていた、Rinchan-CLI ● 仕様書をマークダウン化してローカルへ保存 ○ 添付画像やファイルを含めて一括でダウンロード可能 ○ 事前にローカルへ保存するため、AIが仕様書を読み込む際の アクセス範囲の問題を考える必要がない © DeNA Co., Ltd. 21
Step1: 仕様書をAIに渡すために ローカルに保存する運用による利点 ● 事前のダウンロードによる物理的なアクセス制御 ● Gemini CLIのファイルシステム周りのツールを使える ○ 検索、読み込みなど 仕様書をどうAIに食わせるか、という 読ませ方の工夫(Step2)の話に限定することが可能 © DeNA Co., Ltd. 22
Geminiにレビューをしてもらう Step1: AIに仕様書を渡すために Step2: AIにレビューさせるために Step3: プロンプトを改善する 実行環境 Gemini CLI カスタムコマンド 仕様書・コード © DeNA Co., Ltd. 23
Step2: AIにレビューさせるために Gemini CLIのカスタムコマンド作成機能を活用した、 自作コマンド specification-check の作成 ● 予め用意したプロンプトをコマンドで実行できる ● 引数を渡せるため、柔軟な対応も可能 チェックしたい機能名を引数で渡して実行するだけ © DeNA Co., Ltd. 24
Step2: AIにレビューさせるために 実装と仕様書を合わせると、膨大な量のファイルが存在する ❌ @記法で全ファイルを毎回読み込ませる ⭕ ファイルパスのみを記述 AIに情報のありかだけを教え、いつでも参照できるように AI自身が必要と考えた時にのみ、適切なファイルを読み込む 必要な情報に絞ることでトークンの削減と検知精度の向上を両立 © DeNA Co., Ltd. 25
プロンプトのイメージ @記法を使用せずにファイルパスを明記 # チェックする仕様のバージョン、もしくは機能名 {{args}} ## 仕様書とコードの配置場所 - 仕様書の場所 - sample-project/.gemini/imports/specifications - コードの場所 - インゲーム - sample-project/Assets/Scripts/Runtime/InGame - アウトゲーム - sample-project/Assets/Scripts/Runtime/OutGame … (省略) © DeNA Co., Ltd. 26
Geminiにレビューをしてもらう Step1: AIに仕様書を渡すために Step2: AIにレビューさせるために Step3: プロンプトを改善する Gemini CLI カスタムコマンド © DeNA Co., Ltd. 27
Step3: プロンプトを改善する AIの回答は不安定で、意図通りにならないことが多い スタイルが不統一、結論だけを述べた不正確な回答も ● Few-shot ○ 良い出力例を提示し、回答スタイルとルールを学習 ● Chain of Thought ○ 「〜なので、〜と判断しました」と思考プロセスを言語化 ○ 根拠が明確になり、曖昧な回答やなんとなくのOKを防ぐ © DeNA Co., Ltd. 28
Step3: プロンプトを改善する ● 検知漏れを防ぐための、擬似的な実装漏れテスト ○ わざと、実装にはない嘘の仕様を書き足してテストを行う ○ 当然、そんな実装はされていないため実装漏れと判定されるはず ○ AIがこの実装漏れを見逃した場合、その失敗をフィードバックする ● プロンプトの自己修正 ○ 「この実装漏れを見逃さないように改善して」と命令 ○ このテストを繰り返し、検知能力をアップデートし続ける © DeNA Co., Ltd. 29
作成したプロンプトのイメージ # チェックする仕様のバージョン、もしくは機能名 {{args}} ## 仕様書とコードの配置場所 - 仕様書の場所 - sample-project/.gemini/imports/specifications - コードの場所 - インゲーム - sample-project/Assets/Scripts/Runtime/InGame - アウトゲーム - sample-project/Assets/Scripts/Runtime/OutGame ## 仕様書とコードの確認 あなたの主な役割は、実装者ではなく、仕様書とコードを確認するレビュワーです。 # {{args}}に関する仕様書とコードの確認結果 ## 仕様書に記載されている要件が、コードに正確に反映されているか - [] ** 要件/機能名: xxx ** - どのような要件/機能が正確にコードに実装されていたか、説明をして下さい。 - 確認した要件/機能は正確にコードに実装されている場合は、チェックマークを入れて下さい。 © DeNA Co., Ltd. 30
結果・展望 2-3. 実際試してどうだったのか? © DeNA Co., Ltd. 31
実装/仕様漏れを発見出来たのか リリース前に実装の抜けを検知 ● 複雑なロジックでも仕様・実装漏れを正確に発見 ● わざと仕込んだ実装漏れもプロンプトの改善により検知可能に 一方で・・・ 仕様にある用語の揺れや前提知識に弱い課題も 実装と仕様書で用語にブレが無いように揃えたり、 前提知識をある程度プロンプトに含ませたりする必要も © DeNA Co., Ltd. 32
更に簡単に、誰でもチェック出来るように ● 運用の自動化 ○ CI連携 : PR作成で自動にAIレビューが走る仕組み ○ 自動修正 : 不備の指摘だけでなく修正案までAIが提示 ● 非エンジニアへの展開 ○ 企画の方でも仕様書の不備をチェックが出来る環境に ○ Unity Editor上からレビューを実行できたりなど © DeNA Co., Ltd. 33
2-4. まとめ © DeNA Co., Ltd. 34
まとめ ● 仕様と実装のズレを、エンジニアの負担を増やさず解決したい ● Gemini CLIでの仕様・実装チェック ○ Step1: 適切にAIに仕様書を渡すため、ローカルに仕様書を保存 ○ Step2: 仕様書を効率的に読ませる工夫、コマンド作成 ○ Step3: 安定した出力のためのプロンプト改善 ● →実装漏れ、仕様書の書き漏れを検知できるように ● レビューの自動化、非エンジニアへの展開が目標 © DeNA Co., Ltd. 35
3. PRレビューでのAI活用について © DeNA Co., Ltd. 36
目次 1 PRレビュー負担が大きい 2 全社導入コードレビューツールが抱える課題 3 In Context Learningを活用したレビュー手法 4 Gemini CLIを活用したレビュー手法 5 まとめ © DeNA Co., Ltd. 37
3-1. PRレビュー負担が大きい © DeNA Co., Ltd. 38
PRレビューの負担は大きい 様々な観点が求められ一部エンジニアに負荷が集中しやすい 開発プロセスのボトルネックになるケースも少なくない 【求められる観点】 ● 技術的な観点 ○ 言語・フレームワーク・設計など ● 組織・プロジェクト特有のコンテキストを有する観点 ○ 歴史的経緯・独自のお作法・ドメイン知識など … © DeNA Co., Ltd. 39
生成AIによりレビュー時間は増加 生成されたコードの「肥大化」と「品質低下」が主な原因 ※N = teams © DeNA Co., Ltd. 40
AIを活用したレビュー負担軽減の取り組み ● DeNA全社向けにPR-Agent(qodo-ai/pr-agent)を導入 ○ Qodoが開発するAIコードレビューツール ■ OSS の AI レビューツール「PR-Agent」を全社導入し、コ スト効率の高い開発支援を実現した話 ○ 低コストで一次レビューの効率化を実現 © DeNA Co., Ltd. 41
3-2. 全社導入コードレビューツールが抱える 課題 © DeNA Co., Ltd. 42
全社導入コードレビューツールが抱える課題① ● プロジェクト固有のコンテキストが与えられていない ○ プルリクエストの説明や変更があったコードなどのみを与える ○ 表面的なレビューにとどまる プルリクエスト の説明など LLM 変更があった コード © DeNA Co., Ltd. プルリクに コメント GitHub コンテキスト に含める 43
全社導入コードレビューツールが抱える課題② ● 関係者外秘情報の管理の観点で懸念が残る ○ サーバーログでPR差分などが社内関係者外に見られる可能性 ○ 運用主体が社内の横断組織のため、秘匿度の高い案件の情報の 共有範囲を管理しづらい © DeNA Co., Ltd. 44
これらの課題を解決するために 以下の2つの要件を定義 【要件】 ● プロジェクト固有のコンテキストを加味したレビューができる ● 関係者外秘情報が漏れないようにできる © DeNA Co., Ltd. 45
3-3. In Context Learningを活用したレビュー © DeNA Co., Ltd. 46
課題解決できる手法を模索するために調査 ● 調べていた当時はGemini CLIが登場する前 ● GS事業部では2024年夏から内製のチャットボットが存在 ○ 社内ドキュメントの内容を答えることができる ○ Google Cloud主催のGenerative AI Summit '24 Fallにて紹介 ■ Gemini だから出来る!社内ライブラリの活用を支援する ChatBot の構築事例 ● スピーディーにR&Dするためチャットボットを活用することに © DeNA Co., Ltd. 47
内製チャットボット Rinchan ● 社内ライブラリに特化した知識を持つAIチャットボット ○ RAGではなくMany-Shots In-Context Learning(ICL)を活用 ■ © DeNA Co., Ltd. ドキュメントをコンテキストに含める 48
内製チャットボット Rinchan 課題解決に求められる要件を満たしている 1. プロジェクト固有のコンテキストを加味したレビューができる → Google Cloud Storage上に置いたドキュメントを参照できる 2. 関係者外秘情報が漏れないようにできる → プロジェクトごとに環境を用意して関係者外への情報漏洩 を防ぐ © DeNA Co., Ltd. 49
SlackとWebAPIを用いたR&D ● Slackでチャットボットに対してレビュー依頼 ○ 手動でgit diffなどのプルリク情報をプロンプトに入れる ● WebAPIが提供されていたためより高度なレビュー依頼 ○ PowerShellでプルリク情報の取得~結果表示まで自動化 ○ GeminiのResponse Schema活用 ■ 指定した構造化データを出力できるようにスキーマを定義できる ■ 例. レビュー結果としてApprove or Reject のどちらか判定する ● ドキュメントを加味しつつ品質の高い結果が得られることを確認 © DeNA Co., Ltd. 50
Rinchanを活用したPRレビューの提供 ● 実験結果を受けて本番導入へ ● ローカルでのレビュー依頼 ○ gh extensionsで提供 ○ 利用方法 : $ gh rinchan pr review <pr-number> ● GitHub上でのレビュー依頼 ○ GitHub ActionsでWeb APIを活用して実現 ○ 利用方法 : プルリク上でコメント /rinchan <指示したい内容> © DeNA Co., Ltd. 51
GitHub上でレビューしている例 ※図はイメージです © DeNA Co., Ltd. 52
達成できたこと ● PRレビューの負担軽減 ○ 日常的に利用されるようになった ■ 導入したプロジェクトで 168レビュー/月を達成 ● GeminiCLI等が登場する前に短い期間で実装ができた ○ 社内に実現するためのツールが既に存在していた ○ Many-Shots In-Context Learningで早いイテレーションを実現 © DeNA Co., Ltd. 53
課題 ● 動作が安定しないことがある ○ 的外れなドキュメントやコードを参照してしまうことがある ■ 開発者がコンテキストに何を含めるか用意する仕組み ● ドキュメントが膨大すぎる対策として選定する ● 関連しそうなコードをコンテキストに含める ○ レスポンスのjsonが壊れてしまうことがある ■ jsonを壊してしまうような文字の混入など © DeNA Co., Ltd. 54
3-4. Gemini CLIを活用したレビュー手法 © DeNA Co., Ltd. 55
見つかった課題を解決するために ● 必要なコンテキストを自律的に取得するAIエージェントが登場 ○ 例. Gemini CLI ● “的外れなドキュメントやコードの参照”という課題解決にマッチ ○ 今までは開発者が何をコンテキストに含めるか選択していた ○ それをエージェントが自律的に行う ● 既存実装の課題を解決するためにGemini CLIを活用することに © DeNA Co., Ltd. 56
Gemini CLIを用いたレビューの仕組みを導入 ● Gemini CLIをGitHub Actionsで動作させることで実現 ○ プルリクエストでbotにレビューリクエストやメンション・ コメントをするとレビューしてくれる ○ 基本は「gemini --yolo -p」しているだけ ■ OpenTelemetry収集などの工夫も メンション等 開発者 PR作成 © DeNA Co., Ltd. GitHub Actionsで Gemini CLIを利用 GitHub レビュー コメント 57
Gemini CLIを用いたレビューの仕組みを導入 ● Googleがgoogle-githubactions/run-gemini-cliを提供 ○ 仕組みはGitHub Actionsでgemini-cliを利用している ○ プロジェクト向けにカスタマイズしたかったので自作 © DeNA Co., Ltd. 58
達成したこと 安定かつ高品質なプルリクエストレビューを実現 導入したプロジェクトで 203レビュー/月を達成し、 ICLを用いた 手法よりも日常的に利用されている 【要件の整理】 ● 関係者外秘情報が漏れないようにできる ○ プロジェクト毎に環境を用意することで実現 ● プロジェクト固有のコンテキストを加味したレビューができる ○ 現在取り組みの最中 © DeNA Co., Ltd. 59
プロジェクト固有のコンテキストを加味するために ● レポジトリの情報を充実 ○ GEMINI.mdファイルの充実 ○ 場合によってはドキュメントをレポジトリに含める ● レポジトリ外の情報をコンテキストに含める ○ MCPサーバーの活用 © DeNA Co., Ltd. 60
Rinchan MCPの活用 ● 社内チャットボットであったRinchanをMCP Server化 ○ 利用できるツール例 ■ Confluence取得 ■ Slackのメッセージ取得 ■ マスターデータ取得 ○ コンテキストサイズを効率化するための仕組みを実装 検索 ツール利用 Gemini CLI Rinchan MCP 結果取得 © DeNA Co., Ltd. Confluence 内容取得 61
3-5. まとめ © DeNA Co., Ltd. 62
まとめ ● プルリクエストをレビューする負担は大きい ○ 生成AIの登場により負担は大きくなった ● ICLを活用したPRレビュー機能を素早く展開できた ○ プロジェクト特有の情報をコンテキストに含めることができる ○ 関係者外秘情報を保護できる ● 必要なコンテキストを自律的に取得できるGemini CLIを活用 ○ MCPサーバー活用など含め今後もアップデートしていきたい © DeNA Co., Ltd. 63
4. 本公演全体のまとめ © DeNA Co., Ltd. 64
全体のまとめ ● GS事業部ではコーディング以外のエンジニアリング領域でAI活用 が進んでいる ● コンテキストウィンドウや情報管理等の理由でGemini CLIを主軸に ● 仕様や実装の漏れ検出をGemini CLIを活用して自動化した ● Gemini CLIを活用したレビュー機能で生産性の向上に繋げた ● 若手エンジニアもAIを積極的に活用しています ○ AI活用できる環境や周辺ツールがそろっていたため © DeNA Co., Ltd. 65
© DeNA Co., Ltd. 66
引用・参考 ● 社内ライブラリ特化のチャットAIが起こす、開発現場での変革 ● 社内ゲームサーバー基盤 Takasho とは ● 開発時の「なぜ?」を解き明かす!Pokémon TCG Pocketにおけるテレメトリ計 基盤とその活用 ● Claude Docs ● The AI Productivity Paradox Report 2025 © DeNA Co., Ltd. 67