blog

DeNAのエンジニアが考えていることや、担当しているサービスについて情報発信しています

2020.11.19 技術記事

ゲームx機械学習をスケーリング!後悔しない導入計画法!

by Katsuhiko Sato

#game #othellonia #AI

概要

弊社ではAIによる『逆転オセロニア』のバランス設計支援のような ゲーム x 機械学習の取り組みを、様々なゲームタイトル間で横展開するための基盤導入 を進めており、本取り組みにおいてはこの基盤のことを、開発進行の便宜上シミュレータ基盤と呼称しています。

この記事では上記のシミュレータ基盤の導入を題材に、ゲームへの機械学習技術の適用にあたって、ゲームタイトルの開発において必要となる事前の準備の進め方や考え方について紹介します。

持ち帰って欲しい要点3つ

  • 1) ゲーム開発の上流工程での開発チーム・研究チーム間の相談と連携が重要
    • シミュレータ基盤の導入コストや導入の実現性はタイトルの開発時に事前に準備を行っておくか否かで大きく変動します。要件・設計・対費用効果・実現性などについて、ゲームのコア設計が走り出す前に一度、プロデューサー・ディレクター、リードエンジニアとAIエンジニア(データサイエンティスト・リサーチャー)間で相談の機会を持つことが重要です。
  • 2) シミュレータ基盤の導入には、AI活用の他にも様々なメリットがある
    • シミュレータ基盤は、回帰テストの自動化や通信切断時の復帰処理、リプレイ機能の実現などAI活用の他にも多くのメリットがあります。
  • 3) 短期・長期の両面からゲームタイトルの開発とサービス提供の目線に寄り添った導入プランを考えよう
    • 機械学習の実現性や期待精度は事前に見積もりづらく、また実現にもR&Dフェーズを挟んだ長期の期間を見込む必要があるため、機械学習の導入効果単独でのリリース前の事前の導入判断は事業責任者にとっても難しいかと思います。

      AI活用以外のメリットも踏まえて、短期実現可能な価値、長期目線で提供可能な価値の両面から、 そのゲームとユーザーにとって必要な価値は何かを開発チームとよく協議した上で、タイトルワンチームでも無理のない導入プランを計画することが重要かと思います。

      **確実性の高い短期的なメリットやゲームリリースにおいて必須となる機能をフックに事前の基盤導入だけでも進めておければ、後から機械学習技術の活用や適用を行いたいとなった場合も検討が容易になりますし、**各施策についての導入判断を開発・運用状況に応じて段階的に検討できるよう計画できれば、機械学習技術の導入に伴うリスクも緩和されるかと思います。

1. はじめに

こんにちは。ゲーム事業部ディベロップメント統括部AI推進部の佐藤です。

コロナ禍により、勉強会やカンファレンスも姿を変え形を変えての開催となる昨今、皆様いかがお過ごしでしょうか?

オンライン開催となった本年でのCEDEC2020にて、DeNAからは当社吉村、甲野より『逆転オセロニア』でのバランス設計支援を題目に、弊社におけるゲーム事業でのAI活用の一例について講演をさせて頂きました。

https://engineer.dena.com/posts/2020.09/cedec2020-othellonia-ai/

https://engineer.dena.com/posts/2020.09/cedec2020-othellonia-ai/

現在弊社では、こうしたゲーム x 機械学習の取り組みを様々なゲームタイトルに横展開するための基盤導入をAIの研究開発と併行して進めています。

この記事では、上記の基盤導入を題材に、ゲームへの機械学習技術の適用にあたって、タイトル開発において必要となる事前の準備の進め方や考え方について、御紹介したいと思います。

2. AI導入においてゲームに求められる機能

どんな機能が必要?

例えば、ゲームプレイを自動で行うようなAIを導入し、バランス設計やQAなどに活用しようとする場合、AIの学習のために下記の環境が必要となります。

  • 学習データとなるゲームのプレイログから、ゲームの挙動を再現できる
  • ゲーム上のある状況(盤面)に至るまでの、履歴を追える
  • ゲーム上のある状況(盤面)下で実行可能なユーザー行動の一覧を取得できる
  • ゲーム上のある状況(盤面)下で特定の行動を行った際にどうなるかを(高速に)シミュレートして取得できる

本取り組みでは開発進行の便宜上、上記の環境を総括してシミュレータ基盤と呼称しています。

alt

alt

盤面情報としてどんな情報を取る必要があるか、どれだけ正確な再現性が求められるかは、ゲームの仕様や要件ごとに異なります。タイトルのプランナー・エンジニアとAIエンジニア間でしっかりとゲームエンジンの設計段階で相談をしておくことが重要です。

何故シミュレータ基盤が必要なのか?

少し極論になりますが、機械学習により作成されるゲームのオートプレイを行うAIとは「あるゲーム上の状況(盤面)とその状況において取りうる行動の選択肢」を入力として、「その状況下において最適な行動」を出力するネットワークです。

※この入力と出力、出力により発生したゲーム内での結果の履歴が、教師あり学習においてAIがお手本とするゲームのプレイログになります。

AIの学習過程においては、ある入力に対して出力した結果がどれだけお手本と乖離しているか、あるいはどれだけ望ましいかを評価し、その評価を元により最適な選択が行えるようネットワークの修正を繰り返します。

シミュレータ基盤とは、この入力と出力をAIとゲームエンジン間で受け渡し、AIが出力の結果、ゲームにより発生した変化を認知し評価するために必要となる機構です。

この試行はAIの学習時に何千万回と繰り返すことになるため、なるべく高速にシミュレートを行えることが望ましいです。

3. シミュレータ基盤の導入におけるアンチパターン
〜開発の上流工程で会話をすることの重要性〜

(ケース1) 開発の上流工程において事前の相談をしない

シミュレータ基盤の導入コストや導入の実現性はタイトルの開発時に事前に準備を行っておくか否かで大きく変動します。要件・設計・対費用効果・実現性などについて、タイトルのコア設計が走り出す前に一度、プロデューサー・ディレクター、リードエンジニアとAIエンジニア間で相談の機会を持つことが重要です。

開発初期に設計要件が握れていれば、基盤の開発はそこまで難しいものではありませんが、ゲームエンジンのコアな挙動に関わる内容であるため、リリース後に後付けで基盤導入をしようとした場合、導入コストは跳ね上がります。運用開始後の過忙な時期に、既に組み上がったエンジンのコアに関わる部分を改修することは現実的ではありませんし、ゲーム仕様上、改修がきかないというケースもあるため、そもそもAIの導入が困難となるケースもありえます。

少し極端な例ですが、乱数のシードの切り分けなどがわかりやすい例になります。ゲーム挙動のシミュレートやプレイログの再現を高速に行うために、ゲームの勝敗に影響しないエフェクトの描画などを切りたいケースがあります。パーティクルで使用する乱数のシードと、ゲームの勝敗に関わる挙動についての乱数のシードが分離されていれば問題ないのですが、共用されている場合、迂闊にエフェクトを切るとゲーム上での他の挙動に変化が生じてしまうため、プレイログの正確な再現が利かなくなります。乱数のシードの切り分けは最初から意識して実装されていれば実現コストはほとんどかかりませんが、あとから散漫しているものを改修しようとすると大変です。その他、ゲームロジックをゲームの外部から参照して単独で動作させる手段の用意やゲーム内時間の管理方法、通信遅延の緩衝手段の考慮など設計時に考えておいたほうが良いことは多岐に渡るため、エンジン部の実装についてはリードエンジニアの方と事前によく会話を重ねておくことが重要です。

(ケース2)ゲームエンジン側とシミュレータ側でのゲーム挙動の二重実装

ゲームと全く同一の挙動をするシミュレータを、ゲームエンジンとは別個に用意すればゲームエンジンの実装状況に左右されることなく機械学習を実現することが可能ですが、これはゲームエンジンとシミュレータの多重保守が必要となるため、可能な限り避けるべきです。仕様の更新に対する追従コストもかさみますし、エンジン側との不整合の発生による事故や、保守コストの増大による運用破綻に繋がります。 挙動のシミュレートを行う際は、ゲームエンジン側の処理を直接参照して、同一の処理の二重実装を避けるようにしましょう。

4. シミュレータ基盤の導入によるメリットと導入計画について
〜短期的・長期的の両面からタイトル開発・サービス提供の目線に寄り添った導入プランを考えよう〜

基盤導入における問題点と解決策

機械学習の実現性や期待精度は、事前に見積もりづらく、また実現にもR&Dフェーズを挟んだ長期の期間を見込む場合があります。タイトル開発の初期においては、ゲーム仕様の不確定事項も多く、また教師あり学習で必要となるユーザーのプレイログについてもリリース前に取得することは出来ません。そのため、機械学習の導入効果単独でのリリース前の事前の導入判断は事業責任者にとっても難しいかと思います。

実はシミュレータ基盤の導入については、ゲームプレイを行うAIの作成以外にも、回帰テストの自動化や通信切断時の復帰処理、リプレイ機能の実現などの副次的なメリットが存在し、これらは機械学習の必要なく比較的短期で実現ができます。

確実性の高い短期的なメリットやゲームリリースにおいて必須となる機能をフックに事前の基盤導入だけでも進めておければ、後から機械学習技術の活用や適用を行いたいとなった場合も検討が容易です。

シミュレータ基盤の導入を考えるにあたっては、短期目線で AI活用以外のメリットも踏まえてタイトルリリース時に提供可能な価値、長期目線でタイトルの運用時に提供可能な価値の両面から、タイトル開発・サービス提供の目線に寄り添った導入プランを考えるのが良いかと思います。

基盤導入による短期実現可能なメリット

ここでは機械学習を必要としない短期に実現可能な、タイトル開発・サービス提供上の価値について記載します。

(1)開発品質の向上とQAの効率化

ゲームのプレイログからゲーム挙動を再現することができれば、バグ発生時の再現と原因の追跡が容易になります。また、コード変更前後でのプレイログに対する挙動の再現一致を取ることで、回帰テストの自動実行や、自動テストのテストシナリオを作成するためのGUI環境の構築も比較的容易に実現が可能です。

alt alt

回帰テストの恒常化により、**バグ発生時の原因の切り分けやデグレの抑止が行われれば、エンジニアとQAの負担が下がり、結果として開発品質の向上と運用事故発生の抑止によるレピュテーションリスクの低下に繋がります。**特に長期運用を前提としたゲームなどでは、運用の長期化につれキャラクターやスキル、ゲームルールの増加によりテストケースは加速度的に増加するため、こうした既存のテストケースの検証を自動化する仕組みは非常に有益です。

(2)通信切断時の復帰処理

ゲームのプレイログからゲーム状況を再現する仕組みがあれば、通信切断などによりゲームプレイが中断された際でも、ゲーム再開時に同一の状況を復元することが容易です。ユーザービリティの向上を考える上で、特に対戦ゲームなどでは必須の機能だと思います。

(3)チート検知

クライアント側での入力に対する解決結果(改竄される可能性あり)と、サーバー側で入力に対する再現を行った実行結果を比較することで、クライアント側での改竄を検知することが出来るため、チート検知への活用が可能です。

(4)ゲームリプレイ機能の実現

自分のゲームプレイを振り返ったり、他の方のゲームプレイを観戦したりといったゲームリプレイの機能も、シミュレータの基盤を活用してそのまま実現できます。競技性の高い対戦ゲームなどでは、ユーザー間のコミュニティや話題性の強化、プレイ技術の相互触発といった観点でメリットが大きい機能だと言えます。

(5)シミュレーションベースのAIの構築

探索木を活用したシミュレーションベースのAIの構築も、シミュレータ基盤があれば比較的短期に実現が可能です。シミュレーションベースのAIとは実際に行動した結果をシミュレートしながら結果の評価に基づいて、最適行動を探索していくAIの制作手法で、ルールベースのAIに比べてゲーム仕様の変更に強く保守コストが抑えられるというメリットがあります。

特にターンベース製のRPGやTCGなどと相性がよく、機械学習の必要なくある程度の強度を実現できます。また、ユーティリティベースのAIに見られるような評価方法の工夫と組み合わせることでゲームデザイナー側のコントロラビリティと拡張性の両面を担保することが出来ます。

(参考 )CEDEC2016
ShadowverseのゲームデザインにおけるAIの活用事例、 及び、モバイルTCGのための高速柔軟な思考エンジンについて
https://cedil.cesa.or.jp/cedil_sessions/view/1586

同じシミュレータ基盤を活用する前提上、機械学習を活用したAIへの載せ替えも考えやすく、AlphaZeroに代表されるようなモンテカルロ木探索と深層強化学習を組み合わせたAIなどへの載せ替えも視野に入れやすいため、ゲームジャンルによっては検討の余地が大きい手法だと言えます。

基盤導入による長期目線で実現可能なメリット

ここでは、トップユーザーレベルの精度でゲームプレイを行うAIにより実現するタイトル開発・サービス提供上の価値について記載します。

機械学習を扱う以上、実現性や期待精度については一定の不確定性と、R&Dフェーズを踏まえて開発には長期の期間を見込む必要がありますが、得られる実りも大きいです。

(1)ゲームのバランス調整やオートプレイによるQA検証の補助

バランステストやQA検証について、オートプレイによるテスト実行を併用することで人的なリソースをより優先度の高い調整やテストに割り当てることができるようになり、テスト負荷の抑制と開発品質の向上・安定化・属人性の低下を実現できます。特にゲームの有償商材となるキャラクターについてのバランス設計に関わる事故はユーザーや協業先の信頼低下に直結するため、レピュテーションリスクを低下させる観点でもこうした取り組みは非常に有益であると言えます。

例えば、TCGなどの対戦ゲームなどではデッキのパターンは膨大な数になりますし、運用の継続により新カードが登場するにつれパターン数も増加の一途をたどるため、デッキ間の対戦検証やバランス調整も非常に負荷の高いものになります。AIにより様々なパターン同士のデッキを対戦させ、その勝率をバランス調整にあたっての定量的な指標として参照することで、テスト負荷の抑制と開発品質の向上・安定化に繋げることができます。

alt

バランス設計において定性的な観点以外に、AI同士の対戦結果による勝率といった定量的な指標を併用することは、調整結果に対する客観性を高め、属人性を低下させることにも繋がります。属人性の低下により人員の柔軟な編成が可能になれば、複数のタイトル開発や運用を並行して行う上でもメリットがあります。

alt

(2)PvEの充実による対人障壁の緩和とAIの初心者サポートによるライトユーザーの定着

一般に対戦を主眼としたゲームではゲーム運用の長期化に伴って、初心者ユーザーやライトユーザーのゲームへの参入障壁は拡大する傾向にあります。新スキルや新ルールの登場により学習コストが増加することと、既存ユーザーとの資産差が拡大するためです。また対人戦そのものに心理的な障壁を感じるユーザーの方もいらっしゃるかと思います。

初心者向けから、エンドコンテンツとして耐えうる品質まで幅広くPvEを充実させることができれば、こうした初期の参入障壁を緩和しつつ、ユーザーの間口を広げることが可能です。ルールベースのAIでは実現可能な強度に限界があることと、継続運用にあたってはキャラ追加やルールの変更に伴って保守コストが増加するなどの問題が発生しますが、学習型のAIであればトップユーザーレベルの強度の実現と保守コストの抑制が可能です。

またAIによる打ち手のアドバイスなども、複雑性の高いゲームにおいて何をしていいかわからない初心者の定着を図るにあたって有益だと思います。

基盤導入のプランニングについて

シミュレータ基盤の開発にあたっては様々な導入効果が見込めますが、それぞれに開発期間やコストが異なります。特に機械学習のR&Dを必要とする領域においては、事前に効果が見積もりづらく、一定の不確実性も存在するため、タイトル及びユーザーが必要とする機能は何かについて開発チームとよく相談した上で、無理のない導入プランを計画することが重要かと思います。

通信切断時の復帰処理やQA効率の向上、リリース時のNPC開発などはどのタイトルにおいても必須となるため、これらをフックにして基盤導入を進めつつ、開発・運用状況に応じて段階的に各施策を導入できるように計画し、リスクヘッジを図るのが良いかと考えます。基盤の導入さえ完了していれば、リリース後にあとから機械学習を導入したいとなった場合も比較的検討が容易になります。

図:導入計画の一例( リリース前後での開発プロセスと実現ユースケース ) alt alt

5. おわりに

ゲームへの機械学習技術の導入は、ゲーム業界に置いても今現在、様々な試行錯誤が進んでおり、この後もまだまだ多くのユースケースが開拓されていくと思います。

今回の取り組みによりゲームタイトルへのAI活用がより加速し、ユーザーの方々により多くのDelightを届けることができるようになれば幸いです。ご閲読ありがとうございました。

この記事を読んで「面白かった」「学びがあった」と思っていただけた方、よろしければ Twitter や facebook、はてなブックマークにてコメントをお願いします。

また DeNA 公式 Twitter アカウント @DeNAxTech では、 Blog記事だけでなく色々な勉強会での登壇資料も発信してます。ぜひフォローして下さい。

オセロ・Othelloは登録商標です。TM&© Othello,Co. and MegaHouse / © 2016 DeNA Co.,Ltd.

最後まで読んでいただき、ありがとうございます!
この記事をシェアしていただける方はこちらからお願いします。

recruit

DeNAでは、失敗を恐れず常に挑戦し続けるエンジニアを募集しています。