「あるゲームのNFTを他のゲームでも使用可能」というのは、ブロックチェーンゲームならではの醍醐味といわれていますが、実際に適用された例はごくわずか、かつ限定的なものが多いです。例えばNFTコンバートなんて機能がリリースされていますが、利用できるのは、ほんの数種類のNFTだけですし、NFTを交換してしまっているのでそのまま利用できているわけではありません。
そもそもNFTに記載されているパラメタが全然違うので、そのまま利用するにはゲームを既存のNFTに合わせた設計にするか、NFTをマルチな仕様に耐えうる仕様にしないといけないですね。
そこで、まったく違う方法論で全てのNFTを利用できるゲームを考案しました。
ゲーム名:liberate
コンセプト:自分の所有するどんなNFTでも利用できるゲーム
ジャンル;ソーシャルゲーム
ストーリー:ある滅びを迎えようとしている次元が存在します。あなたの使命は他の次元より兵士を召喚し、その次元を救済することです。
・METAMASK等によるウォレットログイン
・シーズン制を導入(シーズン毎にどうなるかは後述)
・ゲーム内通貨「LIN」を導入。これはトークンでない。
①自分の所有するNFTの一覧が表示される
②一覧からゲームで使用したいNFTを選び、LINを支払う
③選択したNFTの「サービス名(上記画面の場合:イーサエモン)」・「NFT名」より能力値を生成しゲームサーバーに「ユニット」として登録する。
・NFTの情報は「サービス名」と「NFT名」と「画像」のみを使用し、他の能力値は一切考慮しない。
・NFTの所有状態は、召喚時のみに判定するため、召喚後NFTの所有権が移動しても「ユニット」に影響はない。
・ただし、サーバー上でユニットとして召喚されたNFT連番はサーバー上に記録しているため、同じNFTで複数のユニットを作成することはできない。(他のプレイヤーに譲渡しても不可)
・ユニットの能力値は「サービス名」と「NFT名」から関数で算出する。関数の式は公開されず、シーズンごとにリセットされる。
ユーザー側からするとランダムに見えるが、同じ名前のNFTをユニットとして登録した場合、同じ能力値になる。
ユニットの能力値について
・名前:「元NFT」の名前をそのまま引き継ぐ
・LV:召喚当時は1固定。1時間につき1上昇する。
・レアリティ:直接の意味はないが、レアリティが高いユニットは後述の「戦闘力」「会心確率」「会心倍率」が高く設定される。
・戦闘力:相手にダメージの基礎値
・会心確率:戦闘で「会心」が発生する確率
・会心倍率:「会心」が発生した場合に戦闘力に乗算する数値
レベルアップの仕様について
・ユニットは召喚されてから現実時間で1時間ごとにLVが1上昇する。
(雑魚戦の概念がなく、放置でLVが上がる)
・LVが上昇するたび、現在の戦闘力が1.05倍に上昇する。
・LVが上昇するたび、「会心確率」と「会心倍率」はランダムな値が抽選される。
ランダムな値のため、同じ名前のユニットでも異なる値が抽選される。
現在よりも低い値が抽選された場合、現在の値に据え置かれる。
①所有するユニットの一覧が表示される。
②救済に使用するユニットを選択し、軍を編成する。
③軍の戦闘力が表示される。
表示内容について
期待戦闘力:会心発生の確率と倍率を考慮した平均的な戦闘力
最大戦闘力:すべてのユニットの会心が発生した場合の戦闘力
最小戦闘力:すべてのユニットの会心が発生しなかった場合の戦闘力
タイムラインについて
以下の出来事が起きると、画面下部のタイムラインにログが表示される。
タイムラインは最新5件が常時表示される。
・ユニットが召喚された
・ユニットのレベルが上がった
いわゆるレイドボス戦。
ボスのHPは全プレイヤーで共有する。
①以下の2つのどちらかを選んでボスに攻撃を行う。
・NOMAL ATTACK
・FINAL ATTACK
②NOMAL ATTACKを選んだ場合、軍の各ユニットに対して会心が発生したかを抽選、会心補正後の戦闘力を足しあわせ、戦闘力と同値のダメージをボスに与える。
例)A(戦闘力100、会心倍率3.5)、BA(戦闘力200、会心倍率2.5)、C(戦闘力1000、会心倍率10.0)のうちBだけが会心が発生した場合、
100+(200×2.5)+1000=1600
となり、1600点のダメージをボスに与える。
再度NOMAL ATTACKを行うためには12時間を空ける必要がある。
③FINAL ATTACKを選んだ場合、NOMAL ATTACKの計算をしたのちその値の5倍をボスに与える。
FINAL ATTACKは1シーズンに1回しか行うことができない。
③ボスのHPが0になった時、シーズンが終了し、各プレイヤーに報酬が支払われ、シーズンリセット処理が行われる。
報酬について
多種多様なランキングを用意し、その内容に合わせて「称号NFT」か「ゲーム内通貨LIN」のどちらかを受け取ることができる。
・レイドボスに与えたダメージ
・レイドボスにとどめを刺した、もしくはボスの体力を一定の目標値(体力の半分など)にした
・ユニットのレベルの合計
・会心が発生した回数
・NOMAL ATTACKを行った回数
・など
「称号NFT」は所有していると、このゲームで永続的にごくわずかな有利な効果をもたらす。
・シーズン開始時に+50LIN
・召喚したユニットの戦闘力+10
等。基本的にランクの低い称号(例えばレイドボスに与えたダメージ100位以内など)ほど、LINで受け取ったほうが効率が良いように設計される。
また、基本的にLINは基本的にこのタイミングでしか無料で得ることはできない。
プレイヤーに報酬を配った後、シーズンリセットを行う。
・プレイヤーが所持するユニットをすべて削除
→ゲーム上でのプレイヤーの所有物はLINのみとなる。称号NFTはイーサリアムウォレットに送付されるため。
・召喚されたNFT連番の記録を削除
→前シーズンで召喚したNFTも再度召喚可能に。
・ユニットの能力値の算出関数の変更。
→前シーズンでレアリティが高かったNFTが低くなったり、その逆があったりなど。
・新たなレイドボスの発生
ゲームシステムとしては以上です。
このゲーム、NFTを使用しますが、NFT自体は召喚時に参照するだけなので、ゲームでの功績などは何もNFTの内容に影響を及ぼしません。レベルが上がるのも、あくまでゲーム内のユニットであり、NFTのパラメタを変更することはありません。
参照するだけなので、どんなゲームのトークンでも利用できるはずです。
また、NFTはゲームのアセットというよりは個人に対する勲章の役割に向いていると思うので、報酬はランキングに基づくNFT(基本的に名誉+ゲームを続けるインセンティブ)とゲーム内マネーのみ、残りのデータは定期的にリセットするという思考に至りました。
ゲーム内で使用するユニットは他のゲームで他のゲームで集めてもらえばよいですし、参入時期によってレベル差で勝負にならないというのは避けたかったというのもあります。
このゲームでできることの可能性
・情報の取引
「どのNFTがこのシーズンで強いのか」は実際に召喚してみないとわかりません。召喚するにはLINが必要になります。やみくもに召喚するには当然大量のLINが必要です。
でも、もっと確実に強いユニットを召喚する方法があります。
「強いユニットを召喚した人に聞けばいい」
そのため、プレイヤーの所持ユニットを表示するページを見る行為にLINが必要になるようにしようと思っています。そして、支払われたLINの半分を見られたプレイヤーに還元する。「誰がボスに何点のダメージを与えた」という中途半端な情報だけを流し、詳細は見せないというような手法を織り交ぜながら。
・短期レンタル
強いユニットを召喚できるNFTが判明した場合、それを所有するひとから一瞬だけ借りればいいわけです。で、召喚したら返せばいい。これでアセットとしてのNFTの流動性がふてたりするといいですね。