[レポート]CAPCOMがコンテナ、データ、MLを使ってユーザーに楽しませるゲームを高速に構築する方法 #GAM302 #reinvent

2019.12.05

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは、AWS事業本部の島川です。

本記事ではラスベガスで開催されたAWSの一大イベント AWS re:Invent 2019で発表されたセッションをご紹介いたします。

冒頭、日本のカプコンの社員さんがボケをかましていたセッションで面白かったです笑

今回紹介するセッション

How CAPCOM builds fun games fast with containers, data, and ML

スピーカー

  • Liang Fan - Solution Achitect, Amazon Web Services
  • Inoue Shinichi - VPoE, General Manager, CAPCOM Co., Ltd.
  • Jumpei Nakajima - Engineer System Development Section, CAPCOM Co., Ltd.
  • Kazuki Nakamura - Engineer System Development Section, CAPCOM Co., Ltd.

概要

Resident Evil, Street Fighter, and Monster Hunter are just some of CAPCOM’s many globally successful game franchises. Join the CAPCOM team for the world premiere of a new mobile game in development that uses AWS managed database services and machine learning to speed the development process and innovate on their players’ behalf. In this session, Shinichi Inoue (VPoE), Jumpei Nakajima, and Kazuki Nakamura (senior engineers of system development) share details on how CAPCOM uses services such as Amazon Elastic Kubernetes Service (Amazon EKS) and Amazon DynamoDB.

バイオハザード、ストリートファイター、モンスターハンターは、CAPCOMの世界的に成功している多くのゲームフランチャイズのほんの一部です。 CAPCOMチームに参加して、AWSマネージドデータベースサービスと機械学習を使用して開発プロセスをスピードアップし、プレーヤーに代わって革新する新しいモバイルゲーム開発の世界初演を行います。 このセッションでは、CAPCOMがAmazon Elastic Kubernetes Service(Amazon EKS)やAmazon DynamoDBなどのサービスをどのように使用するかについて詳しく説明します。

レポート

後日AWSから動画がアップされる予定ですので、個人的に面白いと思った部分をまとめます。

環境の推移

  • 2015年からAWSを使い始めている

Monster Hunter Exploreについて(2015年時点)

  • 今回紹介されたゲーム。モンスターハンターのモバイルゲーム。
  • 2015年にローンチされて、合計900万ダウンロード、8回の大型アップデートが行われている。
    • AWSを使い始めた年にローンチしている

アーキテクチャ(2015年)

※ブレブレですみません。

環境はできたがいくつかの問題点があった。

  • 運用負荷を軽減すること
  • データベースのメンテナンスコストを削減すること
  • 特定のエンジニアに依存しないこと
  • プレイヤーの能力をより良く導くこと

これらを解決する必要があった。

採用した主要サービス

  • Amazon Elastic Kubernetes Service (EKS)
  • Amazon DynamoDB

EKSとDynamoDBを取り入れた新しいアーキテクチャ

※手書き版も一緒に添付しておきます。

  • 運用の煩雑さ、メンテナンスコスト、エンジニアに縛られないアーキテクチャ
  • 問題点をクリアすることができた。

補足:EKSと一緒に動くコンポーネント

  • Route53(& external-dns)
  • ALB(& aws-alb-ingress-controller)
  • IAM(& kube2iam)
  • RUNDECK
  • go

MLを用いてゲーム設計を加速する

レベルを決める

  • 適切な難易度の設定はプレイヤーにとっては不可欠なもの
  • 難しすぎてもダメだし、簡単すぎてもダメ。

レベルを決める際の問題点

  • テスターに強く依存する。
  • コストも時間もかかる。

支援ツールの導入

  • RLを使用してAIを作成する。
  • ゲームデータを蓄積する。
  • 結果を可視化する。

なぜAIを使うのか。

  • 動的なゲームアップデートに簡単に対応するため
  • 運用コストの削減

さいごに

クラウドを採用した後にさらにエンジニアの負荷を抑えていくかということにフォーカスしたセッションでした。運用コストの少ないサービスの選択は非常に大切だと思います。任せられるところは任せて自社プロダクトに専念してよりよいサービスを作り上げていくというところに共感しました。