コンテンツに移動
Google Cloud

ポノス株式会社の導入事例: eスポーツ対応の対戦型ゲームを Compute Engine ベースで構築、レイテンシーの比較で最大 2 倍の差が採用の決め手

2018年8月22日
Google Cloud Japan Team

https://storage.googleapis.com/gweb-cloudblog-publish/original_images/logo_ponos.gif

1990 年の創業以来、ゲームを通じてエンターテインメントの可能性に挑戦し続けるポノス株式会社(以下、ポノス)。挑戦の一環として、近年、注目度が高くなっている「eスポーツ」にも対応した対戦型アクションゲーム「ファイトクラブ」をリリースしています。GCP パートナーの株式会社grasys(以下、grasys)の協力のもと、「ファイトクラブ」の企画から開発までをリードした、2 人のキーパーソンに話を伺いました。

https://storage.googleapis.com/gweb-cloudblog-publish/images/cvm5v8cwFrbjTBSY2nJzXLjlXZhIOYzjC0_hz4ipK.max-1600x1600.JPEG

■ 利用している Google Cloud Platform サービス
Google Compute EngineGoogle Cloud Load BalancingVirtual Private CloudGoogle Cloud Storage など

ポノス株式会社
スマートデバイス向けゲームの開発を事業として推進。「GO FAR BEYOND(ななめ上を、行け)」という企業スローガンに基づき、ゲームを通してエンターテインメントという文化の発展に貢献し、世界中を笑顔にする取り組みを推進。

■ 写真左から
いろはスタジオ 技術室 室長 樺山 博史 氏
いろはスタジオ スタジオ長 板垣 護 氏

GCP で世界中のプレイヤーが参加可能な性能と拡張性を両立

「Are You Ready?Fight!さぁバトルがスタート!」-- バトルで勝利することで、富や名誉を獲得できる世界の住人として、自分の分身となるキャラクターを作り、ほかの住人とリアルタイムにアクションバトルが楽しめる対戦型ゲームアプリ「ファイトクラブ」。このゲームをプロデュースする会社がポノスです。

https://storage.googleapis.com/gweb-cloudblog-publish/images/MkJHG0GmEGbAodMkrNDoXyyiIAddcPHfWLam0UbzYv.max-1600x1600.PNG

1990 年 12 月、画像処理技術会社として大阪市に設立されたポノスは、現在、京都市に本社(京オフィス)を置き、自社で企画、開発するオリジナルゲームを、日本市場はもちろん、海外市場にも配信しています。2015 年 10 月には、東京都渋谷区に江戸オフィスを開設。江戸オフィスで企画、開発された「ファイトクラブ」は、2018 年 4 月にリリースされました。

ポノス いろはスタジオ スタジオ長の板垣 護さんは、「単なるスマートデバイス向けのゲームではなく、eスポーツを前提としたゲームを企画・開発しています。」と語ります。現在(2018 年 7 月取材時点)、「ファイトクラブ」では、平日は賞金 1 万円、週末は賞金 5 万円が進呈される「デイリー賞金大会」や、外部スポンサードによる賞金大会などが開催されています。

板垣さんは、「すでにかなりの賞金を稼いでいるプレイヤーもいます。オフライン イベントで、“ 1 か月のバイト代よりも稼ぎました ” と話しているプレイヤーもいるくらいです。」と話します。同社にも 7 名のプロゲーマーが所属しており、自社のゲームの魅力を発信する広告塔として、各種イベントや他社が主催する大会に参加しています。

https://storage.googleapis.com/gweb-cloudblog-publish/images/XCW2J_mTednMQcJEQiqgo6lyIDszIPEQD46fb4P43.max-1600x1600.JPEG

リアルに賞金を稼ぐことができる「ファイトクラブ」は、世界各国でのリリースも検討しており、世界中のプレイヤーが参加しても快適にバトルができる十分なパフォーマンスと、急激なアクセスの増加にも耐える拡張性を兼ね備えた堅牢なインフラが必要でした。そこで同社では、grasys とともに必要な条件を比較検討した結果 、Google Cloud Platform(GCP)を選定しました。

ポノス いろはスタジオ 技術室 室長の樺山 博史さんは、「自社にインフラ担当がいなかったので、外部の会社の協力が不可欠でした。インフラには詳しくないし、クラウド サービスを使うのも初めてだったのですが、grasys のサポート体制は完璧で、非常にやりやすいパートナーでした。」と話しています。

リリース直前にコマンド 1 つでデータベースを簡単に拡張

同社が GCP の検討をはじめたのは、2016 年初夏より。2016 年 8 月に GCP の採用を決定し、2016 年末より開発をスタート。2018 年 3 月に「ファイトクラブ」が完成し、4 月よりサービスの提供を開始しています。GCP を採用した理由を樺山さんは、「『ファイトクラブ』は、日本国内だけでなく、海外展開も考えていたので、レイテンシー対策が重要で、専用ネットワークを持っている GCP は魅力的でした。」と話します。

「grasys が独自に検証した各リージョン間のレイテンシーの比較結果を見せてもらったり、検討の後半に負荷試験を実施したりして、GCP の採用を決めました。各リージョン間のレイテンシーは、他のクラウド サービスに比べ、最大 2 倍の差がありました。2016 年 11 月に、GCP の東京リージョンができたことも採用を決めた理由の 1 つでした。」(樺山さん)

https://storage.googleapis.com/gweb-cloudblog-publish/images/hJag2Oy50Gg1HoFBnwx9QDEofky04WijyUHA5AYdR.max-1600x1600.JPEG

「ファイトクラブ」の基本的なシステム構成としては、プレイヤーの情報を処理する AP サーバー、バトル用の情報を処理するバトルサーバー、プレイヤーの情報を保管するデータベース サーバー、プレイヤーやバトルの状況を一時保管するキャッシュ サーバーが、Virtual Private Cloud(VPC)上に構築されています。プレイヤーからの AP サーバーへのアクセスは、Google Cloud Load Balancing で負荷分散されています。

特長的なのは、バトルサーバーで、アプリケーションが C# で書かれています。「Windows 上で C# を動かすのではなく、.NET Core を使って CentOS の上で C# を動かすという珍しい構成になっています。」と樺山さん。また、アセットバンドルなどのキャッシュ用に、Google Cloud Storage(GCS)を CDN(コンテンツ デリバリ ネットワーク)として使っています。コマンドラインでの操作が柔軟で、導入コストが安いことが GCS 採用の決め手でした。

https://storage.googleapis.com/gweb-cloudblog-publish/images/6eL_LIzypbcYrf6XetzWWQUApfotfsczojhingtyw9.max-1600x1600.PNG
ファイトクラブ システム構成図

「ファイトクラブ」の開発は、プロデューサー兼ディレクターが 1 名、企画が 4~5 名、エンジニアは、サーバー担当が 2 名、クライアント担当が 3 名、grasys から 1 名、デザイナーが約 10 名、デバッカーやサポート担当が数名、プロモーションが 2 名程のチームで実施されました。板垣さんは、「インフラ開発を、grasys にお任せできたので、開発工数を大幅に削減できました。インフラの管理も不要なので、管理工数も減っており、管理上の効果を感じています。」と語ります。リリース後は、インフラに起因するダウンはなく、オンプレミスに比べて稼働率が向上しているので、プレイヤーにとってもメリットがあると感じています。

GCP を採用した効果を樺山さんは、「GCP の利用は初めてでしたが、使いやすかったです。全社的に G Suite を利用しているので、アカウントの管理が楽で、Google アカウントだけで、GCP の操作が行えるのは非常に便利です。いつでも、どこからでも緊急対応ができるので保守性も向上しています。リリース直前にデータベースの負荷が高くなり、データベースを増やす必要があったのですが、コマンド 1 つで簡単に拡張できました。オンプレミスだと、絶対にできないことです。」と話します。

今後の展望について板垣さんは、次のように語っています。「今後、開発するゲームにおいても、今回の GCP で得た経験やノウハウを生かし、技術を横展開していきたいと思っています。また、BigQuery を使ってプレイヤーを分析したり、Google Cloud Machine Learning Engine を利用してプレイヤーごとに違ったイベントを発生させたりすることなどにも興味があります。」

GCP のその他の導入事例はこちらをご覧ください。

投稿先