めっちゃカメレオン、流行ってますね
真っ白な体に絵を描いてステージに擬態する、新感覚のかくれんぼゲーム『めっちゃカメレオン』。
気づいたら世界的ヒットですよ
この記事執筆時点で 1500 万本突破ってやばすぎないですか?
- 780円 × 約1500万本 ≒ 120億円 超
- 同時接続 ピーク約20万人
- 作ったのは2人で、開発期間約 2 ヶ月
で、エンジニアとしては気になるじゃないですか
同接20万人って、サーバー代どうなってるの??
想像: 一旦 0 から設計してみる
前提として、私は普段 web/mobile のバックエンド・SRE 的なことをやっているエンジニアで、ゲームのオンライン基盤にはミリしらだったりします。
「めっちゃカメレオン」並びに複数人で遊ぶマッチング型ゲームのサーバーを作るならこんな感じかな〜と想像。
1試合ぶん、ステートフルに動かし続けたいし、そこら辺の管理ができる Agones を GKE とかで立てて、中央にマッチメイカー(振り分け係)を置いて振り分けていく感じ... みたいな?
そして当然ながら、この構成はユーザーがが0人でも金がかかるし同接が増えるほどサーバー代が膨らみます。
120億の売り上げがあるし、手数料や税金を考えても余裕でプラスではありますが、買い切り型のゲームでこの維持費はきついなーって感じの構成ですね
実際: インタビューなどから推察する構成
開発者はインタビューでこう言っています。
『めっちゃカメレオン』は、エンジンはUnreal Engine、マッチング機能にはEOS(Epic Online Services)を使っている。
EOSはすべて無料で、広告費も1円も使っていないという。
① ゲーム進行は P2P
かくれんぼみたいなライトな対戦は、専用のゲームサーバーを立てず、プレイヤーの誰かの端末がホストとして各プレイヤーと直接やりとりする P2P 方式にできます。
ゲームの計算をホストの端末が肩代わりしてくれるので、開発者が高価なサーバー群を常時動かさなくていい。
ここが「同接が増えてもサーバー費が増えない」の1つ目の理由です。
② マッチングなどは EOS を活用
P2P するためにはインターネットと通信ができるように、いろいろと設定する必要があったりしますよね?
それを EOS(Epic Online Services) が全部、無料でやってくれるらしいです。
- EOS ができること
- マッチメイキング / ロビー … プレイヤーを集めて部屋を作る
- NAT punchthrough … 各クライアントの公開IPを特定し、シグナリング経由でお互いに教え合って直接接続を張る
- リレーサーバー … NAT越えに失敗したら、Epic が中継サーバーを挟んで通す。
- 認証・実績・ボイスチャット など
リレーが無料なことは、EOS の公式サポートも明言しています。
the EOS P2P interface handles NAT punchthrough and relay servers automatically and for free
つまり構図はこんな感じですかね。
Epic が Fortnite のために作った巨大インフラを、外部に無料開放しているのが EOS です。
なので スケールのコストは実質 Epic 側が飲んでくれている。 開発者から見ると、同接20万だろうが自分の財布は痛まない、というわけですね。
EOS の料金プランは?
EOS は全部無料です。 従量課金の「プラン」みたいなものがないようです
しかも、Epic Store に出すゲームだけではなくて Steam でも他のプラットフォームでも無料で使えるらしいですからすごいですね。
私もオンラインマッチの必要なゲームを作りたくなったら使ってみようと思います。
細かく自社最適化したい・データを全部握りたい、みたいな規模になると、いずれ自前サーバーを検討することになりまが、個人〜中規模では、無料の恩恵のほうが圧倒的に大きい気がしますね。
まとめ
私が最初に妄想した「中央集権 + ゲームサーバー群」は、スケールがそのままコストになる構成でした。
もちろん公平性が大事な eSports などでは P2P では不十分な場面もあると思いますし一概に悪いとも言えませんが、めっちゃカメレオンなどパーティーゲームでは今回の構成は最適と言えますね。
仕事でプロモを大きく打って、初動から何十万人と来る前提でお金をかけるなら、最初に妄想した専用サーバー構成もアリです。
ですが、個人開発なら話は別で、バズっても破産しない、バズらなくても固定費がほぼかからない構成を選べるかどうかが改めて大事だなと感じることができました。
配信とか見てたら遊びたくなったので私も購入して遊んでみようと思います!
皆さんも良きめっちゃカメレオンライフを。

