LIBERATEという「どんなゲームのNFTでも使用できるブロックチェーンゲーム」を開発中のZAPです。
現在ゲーム自体は完成していて、クローズドβテスト中。
ちなみに今でもこちらから参加可能です。
このゲーム「LIBERATE」で僕が行いたいことはブロックチェーンゲームの可能性を探求することです。
今できていることは、
・個人でブロックチェーンゲームを開発、運営できること
・GAS代がかからず、運営のランニングコストもかからないゲームが作れること
・他社が発行したNFTを勝手に利用してゲームに組み込めること
というあたりで、個人的にはブロックチェーンとしては十分な成果だったかと思います。
そして、この他で僕がやりたいことはゲーム間の連携「コラボ」です。
よく人気アニメのキャラなどがゲストキャラとして登場するコラボキャンペーンとかあったりしますが、そういうのは著作権的にも、費用的にも、社会信用的にも無理なので、やりません。
僕がやりたいのは「他ゲーム間のデータ連携」です。
これはやろうと思えばできるんですね。
クリスペAPIというものが公開されています。
APIというのはネットワークゲームの部品みたいなもので、「世間一般に公開してもよいデータ」を「特定のアドレスに公開する」という機能を持っています。
これでユーザーデータの一部が取得できるんですね。
例えば僕のクリスペのユーザーIDは「003047」なんですけども、
「https://cryptospells.jp/public_api/players/003047.json」
にアクセスすると、ユーザー情報の一部が見えるという仕組みになっています。
このデータを利用して、例えば、クリスペでLevelが1上がるたびに、「LIBERATE」の方でも能力が上がったり、ゲーム内マネーが増えたりということが可能になるわけです。
以下フローを書きます。
前提:「クリスペ連携」ボタンを作成する。
「クリスペ連携」ボタン押下時
テーブル:ユーザーを参照。
項目:クリスペユーザID、クリスペLVがNullであるか確認。
①クリスペユーザID、クリスペLVがNullの場合
入力フォームを表示
「クリスペユーザIDを入力してください」
入力されたデータをもとにクリスペAPIを起動。
・取得できた場合:APIから取得した値をテーブル:ユーザーに登録。
"id"→クリスペユーザID、"level"→クリスペLV
・取得できなかった場合:エラーを表示
②クリスペユーザID、クリスペLVがNullでない場合
クリスペユーザIDをもとにクリスペAPIを起動。
・取得できた場合:APIから取得した"level"とクリスペLVを比較
("level"ークリスペLV)×50を項目:所有LINに加算
"level"でクリスペLVを上書き
・取得できなかった場合:エラーを表示
この流れを作るだけでクリスペで遊ぶほど、LIBERATEでLIN(ゲーム内マネー)が増えるという流れを作ることができます。
まあ、セキュリティ的にはガバガバなんですけどね。
少なくともクリスペには迷惑はかからないので。
やってみようと思います。