Node APIの導入で、 ブロックチェーンゲーム開発を効率化。 NFT管理の手間を90%削減、 レイテンシを85%短縮!
株式会社Ginco

- 本日はGincoのNode APIをご利用いただいているdouble jump.tokyoの満足さんに、My Crypto Heroesの開発の裏話や工夫を聞いていこうと思います。
よろしくお願いします。
1|ゲームにかけた時間・情熱・お金がユーザーの資産になる「My Crypto Heroes」
- 早速ですが、「My Crypto Heroes」とはどういったゲームなのか、教えて下さい。
「My Crypto Heroes」は、歴史上の人物をモチーフにしたキャラクターに、装備品を付けてストーリーを進めたり、プレイヤー同士のバトルを行ったり、ギルド単位での対抗戦を行うゲームです。
これらの「キャラクター(ヒーロー)」「装備品(エクステンション)」「ギルド(ランド)」をNFT(注:ノンファンジブルトークン。ブロックチェーン上に記録された固有のデジタルアイテム)としてユーザーに利用してもらっています。
従来のゲームサービスは、ゲームのアカウントやアイテムは、事業者が保有するサーバー上で管理されてきました。ユーザーはこれらを事業者から借りてゲームをプレイしていました。これに対し、マイクリではユーザーの持つ秘密鍵(注:ブロックチェーン上で暗号資産の所有者を証明するための暗号情報)にゲームの情報を紐付け、所有権がブロックチェーン上に記録されています。
つまり、「キャラクターを育てた時間やかかったお金、バトルやクエストにかけた情熱を、ユーザー自身の資産にする」という特徴を持つ新しいゲームなんです。
現在は、ユーザー数8万人、DAU7000人で、世界で最も多くの方に遊んでいただいているブロックチェーンゲームとなっています。
- ユーザー体験として、どういった点が新しいのでしょうか?
これまでのゲームでは、アイテムの二次流通はRMT(リアルマネートレード)として忌避されてきたのですが、ブロックチェーンゲームにおいてはむしろ柱となっています。
二次流通が起こるとアイテムの用途や価値が、ひとつのゲームに閉じずに複数のゲームに開かれていきます。例えば、ドラクエの勇者の剣がFFで使えるようなイメージですね。
これによって、ゲーム内で手に入れたものの価値や魅力の軸が増えることになります。現実世界だと、仕事でカメラが使える人はプライベートでも色んな遊びに誘われたり、家族に喜ばれたりするじゃないですか。同様に、ゲームの中のアイテムも、様々な環境で活用できるようになることで魅力が高まっていくんです。
2|NFTゲームはオフチェーンとオンチェーンの役割分担が重要
- 従来のゲームの構造とMy Crypto Heroesの構造は、どのような点が共通しているのでしょうか?逆に異なっている部分はどこでしょうか?
My Crypto Heroesの例では、構造が大きく異なる訳ではありません。従来のゲームでもチート防止などの観点からゲームの勝敗やアイテム管理は基本的にバックエンドでロジックを組みます。
一方で、スマートコントラクトでゲームのロジックを全て負担すると、ネットワークの事情やGas(ネットワーク手数料)の面でUXが悪くなってしまいます。
そこで、より重要な”資産性”に関する部分をブロックチェーンで管理するために、ユーザーの所有権にまつわる情報をブロックチェーンに記録していくことになります。
- ゲームロジックにまつわる領域と資産所有にまつわる領域とに分けてバックエンドを構築するということですね。
そうです。基本的にオフチェーン領域(注:ブロックチェーンネットワーク外のデータシステム)だけでゲームが成立するように開発をしています。その上で、オフチェーン領域から所有権情報をブロックチェーンに書き込みに行っている訳です。
元々は、全てオンチェーン(注:ブロックチェーン上のデータシステム)で実装しようとしていたのですが、それは現実的ではないことが分かりました。
オフチェーンでの出来事をオンチェーンに書き込む際には、GasをMCH側で負担しているのですが、この頻度を不必要に高めてしまうと、ゲームそのものの持続可能性が失われてしまいます。もちろん、Gasをユーザーに負担させてしまうと、今度はゲームを続けてくれなくってしまいますよね。
そこで、本当に重要な情報だけをブロックチェーンに書き残すような設計にしたんです。
3|GincoのNode APIを導入した理由
- ある程度、ブロックチェーンを利用すべきポイントを見極めてゲームを開発されているとのことですが、それでも尚、私たちのNode APIを利用するに至ったのはなぜですか?
ブロックチェーンの世界において、ノードというのは情報を取得したり、新たな書き込みを行うための窓口になります。
このノードに関して私たちがぶつかったのが「レイテンシ」の問題です。現在、ウォレットやブロックチェーンゲームの多くは、パブリックに公開されている「infula.io」を利用しています。ただ、このノードはアメリカにあるんですよ。
ですから、例えばユーザーが「自分の持っているNFTを一覧で見たい」となった場合に、ノードへ問い合わせに行かなくてはいけません。
すると、このやり取りにすごく時間がかかってしまいます。例えば、100個のNFTを所有するユーザーだと、NFTを一覧で表示するのに60秒くらい時間がかかってしまうんです。また、情報の欠損なども生じやすかったりします。
そこでまず、ブロックチェーンから読み取った情報をプールしてクライアントへ展開するプロキシサーバーを立てました。その上でプロキシサーバーと相互に情報をやり取りするために、国内でノードを運用しているGincoさんにお声がけをしたんです。
- ユーザーへ情報を表示するために、ブロックチェーンから取得しなくてはいけないデータが多い場合、そこで発生するレイテンシが問題になる、ということですね。
サービスがスケールする、つまり、ユーザーが増えたり、ユーザーの持つNFTが増えたりするにつれて、ユーザーが読み取ろうとする情報が増えていくことになります。このとき、不幸なことに「多くのNFTを持つコアユーザーほど、UX上の不便さを被る」という状況が生じてしまうんです。
マイクリの場合は、最初にオンチェーンのNFTを売り出している事情もありますが、「NFTをオンチェーンの流通市場に持っていきたい」というユーザーが一定の閾値を超える段階になれば必ず、この壁にぶち当たるのではないでしょうか。
4|ブロックチェーンゲーム開発の面白さ、大変さ
- ゲーム事業者としての知見が活きたところ、逆に大変だったところはありますか?
ゲームプランナーがかなり大変だろうな、と思っています。例えば従来のソシャゲだと、上位のコアユーザーが欲しがるもの、持っていないものを狙い撃ちでアセットを生み出していくことが多いです。
一方、マイクリの場合は最初に「インフレしない」「再販しない」「ナーフしない」という約束をユーザーと結んでいます。この「最初のカードが一番強くて希少」というルールを守りながらバランスを取れるようにプランナーが工夫を凝らしています。
- マジック・ザ・ギャザリング(注:トレーディングカードゲームの一つ)、伝説の初期カード”Power9”みたいなものですね!
ブロックチェーンゲームはユーザーとの約束が何より重要です。
インセンティブモデルが全く異なるので、従来のゲームを作ってきた方にも「全てを忘れてゼロからブロックチェーンの報酬系を考えてくれ」と伝えながら開発を進めています。MCH+の開発支援の中でも、実装ではなくそういった作法や考え方から伝えることが多い。
- 今、どういった事業者にブロックチェーンを使う魅力があるとお考えですか?
ビジネスとして、単純に売上を追うならソシャゲとかの方が分かりやすい。ただ、現在のゲーム開発というのは初期に多額の投資を行って後から回収、というモデルのため、キャッシュフローが改善しにくいという事情があります。
ブロックチェーンゲームは、アセットの販売から始められるので、新興の事業者でも健全なゲーム開発に取り組めるというメリットが在るように思います。
- 既存のゲーム事業者が参入してくる際に気をつけることはありますか?
オープンに拓けた場を設計できないと、ブロックチェーンでやる意味がなくなってしまいます。miimeやOpenSeaのようなマーケットプレイスで自社のアセットが流通する未来を見据えてサービスを作ることが重要です。
そのため、IPを持っているプレーヤーであったとしても、攻めの姿勢がないとBCを使う理由を失うんじゃないでしょうか。
5|Node API導入の結果、レイテンシは1/8に、手間も1/10に削減
- ご利用いただいて「Node API」でよかったことはなんですか?
ノードのレイテンシが全く違いました。インフラを考える際に、近くて早いのは何より良いことですよ!
例えば、キャンペーンなどでNFTを新規発行する場合などに、大量のトークン情報をブロックチェーン上に書き込みにいかなくてはいけません。こういった細かな作業工数が大幅に削減できました。
ゲームにもよりけりですが、ユーザーが1000人いてNFTが10個です、というのは現実的ではありません。さらに、例えば野球のゲームでは1チームを作るのに9人分のNFTが必要になってきます。
こうしたケースで、NFTを管理する作業者の工数が10分の1くらいになりました。
- その他に、利用してのご感想はありますか?
安定性についてはインシデントが起こらないと気づかないものですが、ネットワーク事情以外で大規模な障害は起きていませんよね。とても安定しています。
あと、直接連絡を取りやすいのが地味にありがたいです。普通にブロックチェーンを扱っている限りでは、「やっていいこと」と「やっちゃだめなこと」の区別がつきにくいので、いつでもメッセで相談できるのは助かります。
Gincoさんが自社のサービスで使われているノード、というのも安心ですよね。ウォレットサービスがある日突然使えなくなる、ということはありませんから。
- 今後、ブロックチェーンゲームを作っていく方たちへのアドバイスなどはありますか?
ゲーム事業者が、ノードを真面目に運用するのはやめたほうがいい。
自分たちで管理することによって、ゲームの価値が高まるならやるべきだとは思います。しかし、実態はそうではありません。面倒で大変なノード管理に自分たちのエンジニアリソースを割くべきではないのかな、と。
一方で、ユーザーに最良のゲーム体験を実現するためには、可用性・高レスポンス・持続可能性が担保されたノードサービスを利用するのが効率的だと思います。
- 実際にかかるコストは下がりましたか?
元は海外のフリーノードだったので、純粋に支払うコストは発生しましたよ(笑)ただ、作業者の工数や負担感は大きく減っています。
また、以前は大量にAPIを叩きまくると謎のエラーを吐いてきたり、原因不明のことがいっぱい起きていたので、エンジニアのエラー対策やQAのコストは下がっています。
もちろん、これと同様のUXを実現しようと思ったら、ノードを自社で一から構築しないといけないので、そこでかかる基礎開発コストと比較したらとてもお値打ちですよね。
- 最後に、今後のGincoにご要望等はありますか?
フルマネージドのノードといえども、その付加価値はそこまで大きくないのかもしれません。なので、今後アドオンで便利な機能が付いてくると、まごうことなき業界のデファクトスタンダードになるのではないでしょうか。
- 貴重なご意見ありがとうございます!どんどん使い勝手よくしてまいりますので、ご期待ください!
インタビューのポイント
- サービスがスケールする、つまり、ユーザーが増えたり、ユーザーの持つNFTが増えたりするにつれて、ユーザーが読み取ろうとする情報が増えていく
- ゲーム事業者が、ノードを真面目に運用するのはやめたほうがいい。面倒で大変なノード管理に自分たちのエンジニアリソースを割くべきではない
- ブロックチェーンゲームはユーザーとの約束が何より重要です
参考情報
- Road To Devcon 3.0『ERC-721をかぞえて / Enumerate ERC-721』by Ryo Manzoku
- Gincoが日本マイクロソフトと提携。ブロックチェーンサービスの立ち上げを加速する「Ginco Nodes」を開始。