イーサエモンをプレイして感じたdAppsゲームの限界【前編】

イーサエモンをプレイしてみました。あとソースコードも流し見してみました。そこで感じたdAppsゲームの限界などを述べたいと思います。

イーサリアムのおさらい

イーサエモンの説明に入る前に前知識から。イーサリアムには2つのアカウントタイプがあります。

EOA(Externally Owned Accountの略)

ETHを送受信するために普段みんなが使っているアカウント。ゲームでもユーザーアカウントになる。以下、単にアカウントを呼びます。

コントラクトアカウント

このアドレスにETHを送金すると内包するプログラムを実行できる。コントラクトによっては0ETHでも良いが送金手数料は必要。

スマートコントラクト

上記のコントラクトアカウントへの送金をトリガーに、ブロックチェーン上で動作するプログラムの事。

ゲームのためにスマートコントラクトでできること

  • HPや経験値、レベルといった状態をブロックチェーン上に保存できる
  • コントラクトの実行により状態を変更できる
  • ユーザーのアクションによりコントラクトを実行し、HPや経験値、レベルといったパラメータを増減することで、ブロックチェーン上でゲームを作ることができる
  • ただし先に述べたようにコントラクト実行のために、ユーザーはETHを送金する必要がある

以後、ブロックチェーン上のコントラクトの実行を「オンチェーンで処理する」と言うことにする。

dApps

ブロックチェーン上のプログラムで動作するアプリ。イーサリアムならスマートコントラクトの集合体。dはDecentralized(非中央集権)の意味。

イーサエモンをプレイしてみた感想

イーサエモンは上記のようにイーサリアムのコントラクトの集合で作られたdAppsゲームである。そして、少しプレイしてみて、すべてオンチェーンで処理するdAppsはゲームとしては厳しいと思った。この記事を書いた時点では、イーサエモンはモンスターの状態を更新するアクションを、すべてオンチェーンで処理するようである。

つまり、

  • すべてのアクションにETHの送金が必要である(最初のモンスターの捕獲は0ETHであるが、送金手数料はかかる)
  • 送金するということはトランザクションが発生し、それが終わるのを待つ必要がある

ということである。何をやるにもお金がかかり、かつ、アクションの完了に待ち時間があるゲームなのだ。つまり完全にdAppsでゲームを作るとポチゲー廃課金ゲーム化するということを、イーサエモンは示したと言えるだろう。

イーサエモンは、アクションの実行をポチポチとクリックして行うもので、SNS黎明期に流行ったポチゲーに近いものである。かろうじてdAppsゲームとして形になっているが、MMOのようにマルチプレイヤーが1つのワールドで、リアルタイムに色々なパラメータが書き換わる(HP、経験値、持ち物などなど)ようなゲームを、完全なdAppsで作ることは無理だろう。剣を振るう度に、換金してコントラクトを実行し、ダメージを与えた結果の反映にトランザクションを待つようであればゲームとして成り立たない。

ゲームに限ったことではないが、現状のトランザクション完了の待ち時間から、オンチェーンで処理することは、頻度が低く、待ち時間が許容されることに限ると思う。そうでないとユーザーはストレスをためることになる。娯楽性を追求するなら、オフチェーン処理と連携し、ユーザビリティを下げない頻度でオンチェーン処理する形にする必要があるだろう。ちなみにイーサエモンも近いうちにオフチェーン処理も含め、ゲームとしてより遊べるように改善していくようである。

ただしオフチェーンをはさむと、それはdAppsと呼べないかもしれない。しかし、それはユーザーにとって特に重要ではないように思う。

>>後編につづく