株式会社スクウェア・エニックス/株式会社コロプラの導入事例:『ドラゴンクエストウォーク』に Cloud Spanner、GKE 活用
Google Cloud Japan Team
ここ数年、スマートフォンで取得した位置情報を元に、ユーザーが現実世界を動き回る事で「冒険」感覚を楽しめる「位置ゲー」(通称)が人気です。中でもその大本命とされているのが、人気ゲーム作品『ドラゴンクエスト』シリーズの世界観を盛り込んだ『ドラゴンクエストウォーク』。2019 年 9 月に配信をスタートし、その社会現象的大ヒットにも関わらず、現在までネットワークやシステム系のトラブルがほとんど発生していないという、その秘訣を伺いました。
利用している Google Cloud Platform サービス:Google Kubernetes Engine、Cloud Spanner など
Google Cloud の先進テクノロジーはゲーム開発にも極めて魅力的
「皆さんご存じのように、2016 年ごろに位置情報を活用したタイトル、いわゆる「位置ゲー」が注目を集め始め、ゲーム業界に新たな盛り上がりを生み出しました。私自身、旅行が大好きなこともあって、昔から位置情報を利用したゲームを作りたいと思っていたんです。そこで、スクウェア・エニックスの主力 IP である『ドラゴンクエスト』の世界観を使った位置ゲーを作ったら面白いんじゃないかと堀井さん(「ドラゴンクエスト」シリーズ原作者の堀井雄二氏)に相談したのが『ドラゴンクエストウォーク』の企画がスタートしたきっかけです。」
そう当時をふり返るのは、スクウェア・エニックスで『ドラゴンクエストウォーク』のプロデューサーを務める柴貴正さん。聞けば、堀井さんも位置情報を活用したゲームを実際にプレイしたことがあり、興味をもたれていたとのこと。そこで柴さんは、このアイデアを実現してくれるパートナー探しに奔走。携帯電話時代から現在まで続く老舗位置ゲー『コロニーな生活』を成功させているコロプラ創業社長である馬場功淳さんにアプローチします。
「柴さんから、弊社の馬場にご連絡をいただき、社内で議論を重ねて、プロジェクトがスタートしました。制作体制としては、プロデュース・マーケティングをスクウェア・エニックスさんが、ゲーム開発をコロプラが担当。サービス開始以降の運営については両者共同で取り組んでいます。企画スタート時から現在まで、週に何度も密接にやり取りしながらゲームを練り上げてきました。」(小林さん)
なお、コロプラは 2017 年夏にサービスのバックエンドを Google Cloud Platform(GCP)に移行済み(関連記事はこちら)。最近は、Google Kubernetes Engine(GKE)と Cloud Spanner を使った開発が主流となりつつあります。その魅力について、同社で新作タイトルの立ち上げを担当し続けてきた廣本さんは次のように語ります。
「我々が全社的に GCP を導入した理由は、テクノロジー面で Google Cloud を高く評価しているからです。Google Cloud ならではのさまざまな先進機能は、ゲーム開発においてとても魅力があります。当然『ドラゴンクエストウォーク』もこれらの機能を駆使して作っています。」(廣本さん)
ゲーム事業者として特に重宝しているのが VM のライブ マイグレーション機能と Cloud Spanner。これはコロプラの「メンテナンス時にサービスを落とさない」というポリシーの徹底に非常に重要な役割を果たしていると言います。
「GCP 導入前、このポリシーの実現はサーバー エンジニアの曲芸に近いテクニックと頑張りに支えられていました(苦笑)。しかし、GCP 導入後は物理サーバーのメンテナンスに伴う仮想マシンの移動や、ユーザー数の増減に応じたデータベースの分割・統合を、簡単な操作でシームレスに行うことができるようになりました。当時、こうした機能は他のプラットフォームには無く、とてもありがたかったですね。なお、データベースの課題は、KVS(Key-Value Store)のような手法でも解決できるのですが、我々は長年 MySQL に頼ってきたこともあり、KVS 的なスケーラビリティとリレーショナル データベースの構造を備えた Cloud Spanner には早い時期から注目していました。Google が Gmail などの自社サービスで使っているということで、とんでもないスケールで捌けることはわかっていましたから、約 2 年前から検証をすすめ、すでに『DREAM!ing(ドリーミング)』など、多くの大規模プロジェクトに導入しています。」(廣本さん)
未曾有のアクセスも捌ききる Cloud Spanner と GKE
国内スマホゲーム市場を牽引するオピニオン リーダー的存在と言っても過言ではないスクウェア・エニックスとコロプラですが、そんな両社にとって『ドラゴンクエストウォーク』の開発は極めて高難度なプロジェクトだったと言います。
「ゲームの規模がある水準を超えると、それまで普通にできていたことが急にできなくなることがあります。『ドラゴンクエストウォーク』の開発中、細かなトラブルはそれこそ無数にありましたね。GKE や Cloud Spanner に関しても同様で、課題を解決するため Google Cloud のコンサルティング サービス を利用して、たくさんの具体的なアドバイスをいただきました。問題が見つかったらすぐにソースコードを共有して、ときには製品チームをまきこんで、直しながら一歩ずつ……本当に一歩ずつ問題を乗り越えながら前進していったんですよ。」(廣本さん)
「Cloud Spanner は、たくさんのリクエストを捌ける一方で、上手に仕組みを作ってやらないと、多くのユーザーがアクセスするデータがすぐにホットスポット化してしまいます。また、データベースの規模がとてつもなく大きいため、少しのミスが大きなトラブルに繋がりかねません。ですので開発に際しては、テストツールや負荷対策チームが定常的にデータベースの状況を調査し、問題が起きたらすぐに対策を行う仕組み作りや、開発メンバー全員で勉強会を行うなど、 1 年ほどかけてしっかり準備してきました。結果、プロジェクトを通して Cloud Spanner のプロと呼べるレベルにまで育ったエンジニアも現れ、彼らが終盤のパフォーマンス アップに大きな貢献を果たしています。」(佐藤さん)
「Cloud Spanner は非常に有望な技術ですが、分散しているサーバーを 1 つに見せているという技術なので、その裏の仕組みを理解しているかどうかで、引き出せるパフォーマンスが大きく変わってしまいます。個人的には Cloud Spanner をより多くの方々に使ってほしいのですが、MySQL のような従来型のデータベースのつもりで安易に使うと痛い目を見るかも知れません(笑)。」(廣本さん)
そして、2019 年 9 月 12 日、いよいよ『ドラゴンクエストウォーク』の配信が開始します。そのアクセス数は、当初想定を超える圧倒的なものでした。しかし、大規模ゲームアプリにありがちな初日サーバーダウンはなかったと言います。「結局、その日はトラブルもなく、とぼとぼと(?)家路につきました(笑)」(廣本さん)
その後、今日に至るまで何時間もサービスが停止するようなトラブルは起きていないという『ドラゴンクエストウォーク』。GCP のさらなる利用についても聞いてみました。
「メインで使っている GKE と Cloud Spanner のアップデートが良い感じに進んでいます。我々もこれらを活用し、臆することなく新機能を追加していこうと考えています。その上で、今、欲しいのが、Cloud Spanner のメトリクスを詳細に確認できる機能。より大規模な運用を実現していくためにも、Cloud Spanner の負荷や問題点をすぐに確認できる機能がほしいですね。期待しています!」(廣本さん)
株式会社スクウェア・エニックス
『ドラゴンクエストウォーク』プロデューサー 柴 貴正 氏
エンタテインメント分野において、創造的かつ革新的なコンテンツ/サービスのヒット作品を生み続けるリーディング カンパニー。自社 IP の代表作には「ドラゴンクエスト」シリーズ(累計出荷・ダウンロード販売本数 8,000 万本以上)、「ファイナルファンタジー」シリーズ(同 1 億 4,900 万本以上)、「トゥームレイダー」シリーズ(同 7,500 万本以上)、「スペースインベーダー」シリーズなど。
株式会社コロプラ(写真右から)
クリエイティブ本部 第1エンジニアリング部 部長 廣本 洋一 氏
エンターテインメント本部 エンジニア部 第4グループ マネージャー 佐藤 光 氏
エンターテインメント本部 Cスタジオ マネージャー 小林 傑 氏
創業社長である馬場 功淳氏が、大手ゲーム開発会社在職中に立ち上げた、携帯電話向け位置情報ゲーム『コロニーな生活』事業を法人化する形で 2008 年に創業。2011 年からスマートフォン ゲーム開発にも進出し、現在は『クイズ RPG 魔法使いと黒猫のウィズ』(2013 年~)、『白猫プロジェクト』(2014 年~)など、多くのヒットタイトルを擁する。従業員数はグループ全体で 1,374 名(2019 年 9 月 30 日時点)。
本導入事例 PDF はこちらをご覧ください。
その他の導入事例はこちらをご覧ください。