要約
$XP (Experience Points)は、「人生に経験値を」という理念のもとに開発されている暗号通貨である。$XPはゲーム内の報酬として利用されることを想定している。しかし、2018年1月現在、$XPをゲームで活用する方法は集積されていない。そのため、各デベロッパーが独自で活用法を検討する必要があり、$XPの活用を妨げる原因となっている。本稿では、$XPをゲーム内で活用するために必要な、ユーザーに$XPを配布する方法論について考察を与える。これにより、ゲームデベロッパーは、自身の開発するゲームに$XPをどう組み込むか、という問題に適切な解を得ることができる。そういう記事になるといいなぁ。
背景や前提
本記事の対象読者は、$XPをゲームに組み込むことを検討しているゲームデベロッパーである。また、読者は暗号通貨の基本的な知識を持っているものとする。
登場人物
ゲームユーザー
ゲームをプレイする人。あらかじめ、$XPのウォレットを持っているものとする。
ゲームデベロッパー
ゲームを開発する団体。$XPのウォレットについては、以降に説明するいくつかのパターンで所持している。
用語
XPウォレット
$XPのウォレット。XPアドレスと秘密鍵から成る。
XPアドレス
XPウォレットを特定するアドレスのこと。XPネットワーク全体に公開される情報。
秘密鍵
$XPの送信に必要な秘密鍵。XPウォレットの作成者のみが知る秘密の情報。
XPノード
$XPのネットワークを構築するマシンのこと。相互に接続する。XPウォレットを一つ以上管理することができる。
逆に、XPウォレットはXPノードを利用しなくとも維持できる。
ユーザーのメインウォレット
ゲームユーザーが、ゲームをプレイする前から持っているXPウォレットのこと。
ゲームユーザーは、ユーザーのメインウォレットを投機や買い物に利用している。
活用パターン
ユーザーのメインウォレットをダイレクトに使う
ゲー厶アカウントを登録する際に、ユーザーのメインウォレットのXPアドレスを入力してもらう。
$XPの送信は、ゲームデベロッパーの持つ配布用ウォレットから行う。
利点
- 構成がシンプル。
- ゲームクライアントに、$XPウォレットの機能が必要ない。
欠点
- ゲーム内でウォレットの残高を確認することが難しい。
- 一方的な送信しかできず、$XPの受取ができない。
考察
ゲーム内の実績に対して、実績解除と同時に$XPを配布する。
ゲーム内のイベント報酬として$XPを贈る。
この用途であれば十分に活用できる。
「経験値」という理念にもっともシンプルに答える方法である。
しかし、ユーザーのメインウォレットは数多くの用途で利用されるため、他の$XPに混ざってしまう。ユーザーが受け取る$XPの額にもよるだろうが、ゲームユーザーにとって$XPが「素晴らしい経験」になるとは考え辛い。
ゲームクライアントに専用ウォレットを作成する
ユーザーのメインウォレットとは別に、ゲームクライアント内に専用ウォレットを作成して、一つのゲームだけで利用する方法。
ゲームクライアントにXPノードの機能を持たせる。ゲームデベロッパーから配られる以外にも、ゲームユーザー同士が直接$XPのやり取りをしたり、ユーザーのメインウォレットに送信したりできる。ウォレットの秘密鍵は、ユーザー側で管理する。
利点
- ゲーム固有のウォレットを管理できる。これにより、ゲームユーザーのXPに数値的な意味を持たせることができる。
- 万が一ゲームデベロッパーが解散したり、ハッキングを受けるなどの事態になっても、ゲームユーザーの$XPを保証できる。
欠点
- ゲームクライアントにXPウォレット機能を加える必要がある。
- ネットワーク負荷やメモリ消費量が非常に高くなる。
- 他のXP利用ゲームやウォレットと競合する可能性がある。
考察
「$XPをゲームに使う」というときに考えられる単純な構成。
$XPを文字通りゲームの経験値として使う、ゲーム内通貨として使う、ゲーム内マッチングのレート値として使うなど、さまざまな用途が考えられる。
しかしゲームクライアントの負荷が高くなりすぎるため、実際には使い物にならない。
また、ゲーム中のみオンラインになるXPノードが乱立するため、$XPのネットワークが不健全になるという問題もある。
ただ、2018年1月現在は存在しないが、組み込みに適した$XPの軽量ウォレット(lightweight wallet)が実装できれば、実用に耐えられるはずである。
ゲームサーバー内にユーザごとにウォレットを作成する
クライアント側にウォレットを置くのが実用的でないなら、サーバー側に置いてしまうという案。
ゲームクライアントにはあまり機能を持たせず、サーバー側に$XPの処理を一任する。ウォレットの秘密鍵は、ゲームサーバーで行う。
利点
- クライアントの処理が軽い。
- $XPの数値的な意味を持たせることができる。
- ゲームに都合の悪いトランザクションを無視したり、送り返したりできる。
欠点
- サーバー側のトラブルで$XPを失う恐れがある。
- ゲームデベロッパーが負う責任が大きくなる。
考察
おそらく、$XPをゲームで使う上で、今の最適解がこの方法。クライアントに負荷をかけず、$XPを活用できる。
また、外部からの過剰な$XP送信など、ゲームバランスを崩すような行為にも対処できる。
ゲーム内の行動でいちいち$XPのトランザクションを作成すると$XPネットワーク全体の負荷となってしまうため、ゲーム内では別の形で管理することを推奨する。
全体を通して
$XPを使うモチベーションとは
現段階では、$XPをゲームで活用する上で、他の暗号通貨と比べて利点があるとは云いづらい。ただ「通貨の理念に沿っている」というだけにすぎない。
今後、開発用APIやSDKの提供など、ゲームで利用しやすい枠組み作りが進むことを望む。
法律面での問題
ゲームデベロッパーから一方的に$XPを配るというならあまり問題は少ないだろう。
ただし、ユーザーのメインウォレットとゲームウォレットの間で相互に$XPを出し入れしたり、他のユーザーと$XPを奪い合うような要素を組み込むと、それは賭博とみなされるかもしれない。
暗号通貨を用いたカジノゲームが賭博になるのかどうか、また、暗号通貨を賞品にしたゲーム大会は見とめられるのかどうか、そういった点での法的な見解はまだ追いついていないのが現状だろう。
$XPは新しいことをしようとしていて、新しいことに対して法律は障害物になる。しかし、法を破る存在と認識されてしまうと$XPの将来はなくなってしまう。
ゲームデベロッパーの適切な利用を望むばかりである。