【Curio】独自のECSゲームエンジンを構築し、あらゆるモノや条約をスマートコントラクトで実装するオンチェーンゲーム「Treaty」について解説

今回は、ECS(エンティティ・コンポーネント・システム)パターンを用いたオンチェーンゲーム「Treaty」の概要と、それを構築する「Curio」について解説していきます。

さて昨今では、StarkNetやGnosis、Optimismチェーンなどを中心に、オンチェーンゲーム開発が盛り上がりを見せてきている状況です。

StarkNetでは「MatchboxDAO」が、OptimismではLatticeのMUDが主導となり、サードパーティの開発者がオンチェーンゲームを構築しやすいよう、各所でその環境整備に取り掛かっています。

そんな中で、Curioはノーコードでカスタムrollupを作成できるツール「Caldera」を用いて独自のECSゲームエンジンを構築し、それを用いたオンチェーンゲーム「Treaty」を開発していることから、注目を集めつつあります。

また、社会契約を含めあらゆるゲームオブジェクトとその条約をオンチェーン実装しており、今までのオンチェーンゲームにはなかった独自路線での社会実験をおこなっていることも、個人的に興味深いと考えています。

ということで本記事では、CurioというクリエイティブグループならびにオンチェーンゲームTreatyについてご紹介することで、本プロジェクトの概要ならびに要点、そして斬新なオンチェーンゲームとしてのモデルなどについて理解していただくことを目的とします。

追記:Curioがシードラウンドで$2.9Mの資金調達を行なったことをアナウンスしました。

でははじめに、この記事の構成について説明します。

STEP
運営組織「Curio」について

まずは、本記事のメインテーマであるオンチェーンゲームTreatyを運営する組織「Curio」の実態について、解説します。

STEP
Treatyとは

続いて、独自のECSエンジンを構築してあらゆるゲーム内リソースのトークン化を行うオンチェーンゲーム「Treaty」の概要とその注目ポイントについて解説します。

STEP
ゲームプレイまでの全体的なフロウ

最後に、オンチェーンゲーム「Treaty」を始めるまでの流れと、ゲーム画面やオブジェクトについての簡略的な解説をおこなうことで、本ゲームについての理解を深めていただくことを目的とします。

本記事が、Curio・Treatyの概要や特徴的なポイント、ゲームをプレイするまでの実際の流れなどについて理解したいと思われている方にとって、少しでもお役に立てれば幸いです。

※本記事は一般的な情報提供を目的としたものであり、法的または投資上のアドバイスとして解釈されることを意図したものではなく、また解釈されるべきではありません。ゆえに、特定のFT/NFTの購入を推奨するものではございませんので、あくまで勉強の一環としてご活用ください。

イーサリアムnaviの活動をサポートしたい方は、「定期購読プラン」をご利用ください。

目次

運営組織「Curio」について

まず本章では、大元となる運営組織「Curio」について深掘りしていきます。オンチェーンゲーム「Treaty」については次章で解説します。

出典:curio.gg

Curioは、クリプトのコンポーザビリティ(構成可用性)とスマートコントラクトの力を通じて、豊かで広範なソーシャルインタラクションを作成するためのゲーム構築に焦点を当てたクリエイティブグループです。

現在は主に、次章で後述するTreatyを始めとした「4Xストラテジー」×「オンチェーン/コンポーザブル領域のゲーム」の構築に力を入れています。

4Xは、ストラテジーゲームのサブジャンルの一つ。ストラテジーゲームの中でも、”eXplore”:探検、”eXpand”:拡張、”eXploit”:開発、”eXterminate”:殲滅、の4つの性質を兼ね備えた作品を指す。

出典:Wikipedia
出典:blog.curio.gg/coming-soon

Curioは、ECSモデルを採用したオンチェーンゲーム開発をおこなっているものの、一般的にオンチェーンゲーム開発で使われ始めている「LatticeのMUD」を用いず、独自のゲームエンジンを構築・採用しています。

以下の記事でも少し触れましたが、ゲーム内のキャラクターにトークンを付与するためのスマートコントラクトやトークン化レイヤー、AA(Account Abstraction)レイヤーなどを備えた「独自のゲームエンジン」をベースに設計されている点が、Curioゲームの特徴ポイントとなります。

また、先日サンフランシスコで開催されたETH SFイベントでは、次章で詳述するオンチェーンゲーム「Treaty」のデモを参加者に体験してもらい、盛り上がっている様子も見られました。

実際にこの体験会に参加した方によると、ゲーム自体とても面白く、独自チェーン使うなど体験面でも非常に優れていたと同時に、開発チームの人が非常にパッション溢れる方だったとのこと。

次章では、そんなオンチェーンゲーム開発に情熱を捧げるCurioチームが手掛ける、最初のプロダクト「Treaty」について概観していきます。

Treatyとは

出典:blog.curio.gg/untitled

概要

Treatyは、土地を確保し経済を発展させることで競い合うという意味で「古典的な4X戦略ゲーム」でありつつも、それを”完全オンチェーンで”実現するゲームプロジェクトです。

ゲームに参加したプレイヤーは、ゲーム内で出会う他プレイヤーと、スマートコントラクトとして実装された条約を元に交渉したり、それらの活動を通して資源などを獲得・割り当てなどをおこないゲームを有利に進めていきます。

そして自分の軍隊や陣地を拡大し、最終的には内側のレイヤーにある中央タイルを占めることでゴールとなります。

詳細は後述しますが、本ゲームで特筆すべきポイントは「全てのモノや資源、契約から条約に至るまでの全てがスマートコントラクト及び統一規格トークンとして表現されている」ことです。

プレイヤーは、オンチェーンにある第三者が作成したTreaty(条約)をカスタマイズして使用しながら、ゲームを有利に進めていくことができます。また、もしあなたが開発者であれば、自分でコードを書いて新しい条約(スマートコントラクト)をデプロイしてゲーム内で使用することも可能です。

一体どういうことなのか、次節の「注目ポイント」で順に見ていきましょう。

注目ポイント

本節では、オンチェーンゲーム「Treaty」の主な注目ポイントについて、以下4つに焦点を当てて解説していきます。

  1. 社会契約をオンチェーン実装
  2. あらゆるゲーム内リソースのトークン化
  3. delegate(委任)の仕組みを採用
  4. データレイヤーにECSゲームエンジンを使用

社会契約をオンチェーン実装

出典:blog.curio.gg/introducing-treaty

Treatyでは、ユーザーが作成した「社会契約」をスマートコントラクトとしてエンコードすることで、トラストレスな合意形成やOTC取引などを実現しようとしています。

例えば、上写真のNATOコントラクトでメンバーとしてマッピングされたアドレスは、互いに攻撃することをコードベースで禁じられます。

これは、現実世界におけるNATOスタイルの合意形成モデル(参加して会費を支払うと他の委員会メンバーを攻撃できない)をオンチェーンで表現しており、非常に興味深い試みであると思います。

その他にも、以下のような条約をサードパーティの開発者が作成し、UGL(ユーザー生成ロジック)としてオンチェーンで共有することが可能です。

  • 経済的利益を侵害する仮想国家を制裁する禁輸協定
  • 資源(ERC20)を獲得する度に、ギルドメンバーに対して課税
  • 送信者と受信者が互いに10タイル以内にいる場合のみ、トークンの転送を許可

これらを活用することで、各ユーザーは独自の戦略に合わせてルールや契約をカスタマイズしながら、独自の条約をパーミッションレスに作成できるようになります。

▼UGL(ユーザー生成ロジック)に関しては以下の記事で詳しく解説されているので、興味のある方はご参考ください。
Next Gen Onchain Gaming with User-Generated Logic

なお、Curioチームから条約のサンプルとして、以下のような.solファイルがGitHubで公開されています。

出典:github.com/curio-research/treaty-contracts/tree/develop/contracts/treaties

どのように社会契約をオンチェーン実装しているのか知りたい方、また自分で条約を作ってみたいという方は、ご参考ください。

あらゆるゲーム内リソースのトークン化

出典:blog.curio.gg/introducing-treaty

TreatyはERC20トークンのデザインパターンから着想を得ており、「approve(承認)」「transferFrom(転送)」といった仕組みを元にして、社会契約をオンチェーン条約として表現しています。

上写真の例では、「建物」「軍隊」など個々のゲームオブジェクトがスマートコントラクトとなっており、それぞれ固有のウォレットアドレス(0x○○○○○)を保持していることが分かります。

そして、「石」「馬」「金(ゴールド)」「騎兵隊」などがERC20トークンとして表現されており、プレイヤーはスマートコントラクトウォレットを制御しながら以下のようなアクションをオンチェーンで起こすことにより、ゲームを有利に進めていくことができます。

  • 首都からロバの背中に石トークンを移す
  • 戦争のためにAlisの戦隊からBobの戦隊に対して5000ユニットの騎兵隊トークンを移動させる
  • ある国の首都に貿易禁止令が出た場合、金(ゴールド)トークン転送をブラックリスト化する

ゲーム内リソースを統一規格でトークン化することにより、サードパーティの開発者の体験がより身近になったり、様々なDeFiサービスと繋ぎ合わせられたりするため、長い目で見て大きなメリットになると期待されます。

 delegate(委任)の仕組みを採用

出典:blog.curio.gg/introducing-treaty

Treatyでは、他のプレイヤー(またはスマートコントラクト)が自分の代わりに関数を実行し、ゲームをプレイできるdelegate(委任)機能を提供しています。

先ほどの節でも述べた通り、TreatyがERC20トークンのデザインパターンから着想を得て実装していて「承認ロジック自体がトークン標準に組み込まれている」ことにより成せる技です。

これによって、例えばAliceがdelegateしたBobというプレイヤーが、Aliceに代わって「moveArmy(軍を動かす)」や「harvestGold(金を収穫する)」などの関数を呼び出せるようになります。

delegate機能が備わることで、オンチェーン条約と連携して機能する「複雑な動作」の実装が可能になるため、オンチェーンガバナンスやスマートコントラクトを通した交渉など、『自律型世界として表現できることの幅』が広がるのではないかと期待されます。

なお、delegateデータは統一されたECSシステム(※次節で詳述)に保存されるため、プレイヤーは必要に応じてdelegateの詳細を表示したり、パーミッションレスに別の場所で再利用したりすることもできます。

データレイヤーにECSゲームエンジンを使用

ECSについてご存知ないという方は、ぜひ以下の記事をご一読ください。

執筆時点において、オンチェーンゲームにおけるECSゲームエンジンの代表格は「MUD」といって差し支えないと思われますが、実はTreatyではMUDを用いていません。

ゲーム内のキャラクターにトークンを付与するためのスマートコントラクトやトークン化レイヤー、さらにAA(Account Abstraction)レイヤーなどを備えた「独自のECSゲームエンジン」をベースに設計されています。

▼「独自のECSゲームエンジン」をはじめとするTreatyの技術概要について深掘りして知りたい方は、以下記事をご参考ください。
How We Built This – Treaty Technical Overview

ゲームプレイまでの全体的なフロウ

出典:blog.curio.gg/untitled

本章では、オンチェーンゲーム「Treaty」を始めるまでの流れと、ゲーム画面やオブジェクトについての簡略的な解説をおこなうことで、本ゲームについての理解を深めていただくことを目的とします。

なお、筆者の作業環境はPC(Mac)とGoogle Chromeです。

準備編(ゲームスタート画面まで)

出典:treaty.earth

まずはwebサイトにアクセスします。

執筆時点では、ログインするためにweb3ウォレットかメールアドレスが必要なので、今回はMetaMaskを使用します。

ネットワークの変更を求められたら「Approve => Switch Network」をクリックし、『Curio Constellation V3』ネットワークに変更します。

ネットワーク変更後しばらくすると、自動で必要なトークンがDrip(配布)されると思いますが、もしされない場合は以下①〜③の通りお試しください。

完了したら、「Enter username」欄に名前を入力し、「Join game」ボタンをクリックしてゲームを始めます。

ゲーム画面がローディングされるのでしばらく待機すると、以下のような画面が表示されます。

マウススクロールで画面を縮小すると、右下赤枠部のようなゲーム画面全体が映ります。また、左クリックしながらマウスを動かすと視点移動できます。

ゲームオブジェクトを確認

画面中央の枠線で囲まれたオブジェクトが、自分の首都オブジェクトです。

自分の首都をクリックすると、上写真右部のようなメニュータブが表示されます。青と赤で示している2種類の資源(クリスタル・食糧)は、主に以下などの目的で使用されます。

  • 首都をアップグレードする
  • 軍隊を編成する
  • タイル(ゲームの空間単位)を征服し、自分の帝国を成長させる

『攻める!守る!資源を集めて自分だけの村を強化しよう! 仲間と一緒に戦うクラン対戦も!』でおなじみのモバイルストラテジーゲーム「クラッシュ・オブ・クラン (Clash of Clans)」をプレイしたことがあれば、イメージしやすいかと思います。

ゲーム内の1マスは「タイル」と呼ばれ、各タイルにはバーバリアン(敵)や水晶鉱山(資源)、山(障害物)などが乗っていたり、空きタイルになっていたりします。

これらタイルに軍隊を送って征服(自分の領地化)していきながら、獲得した資源で首都・軍隊などを強化しつつゲームを進めていき、またその道中でオンチェーン条約を用いて交渉を有利に進めていくというのが、簡略的ではありますがTreatyの全体フロウになります。

ゲーム内のすべてのオブジェクトやその処理(条約)内容がオンチェーンに乗っており、またUGL(ユーザー生成ロジック)という新たなゲーム体験を創出している点においても、Treatyは大変興味深いオンチェーンゲーム事例であると思います。

今回は長くなるのでゲームプレイ以降については省略しますが、興味がある方は「Treaty: A Guide for Players」記事や、「Treaty Video Tutorial」動画などをご覧ください。

まとめ

今回は、CurioというクリエイティブグループならびにオンチェーンゲームTreatyについてご紹介することで、本プロジェクトの概要ならびに要点、そして斬新なオンチェーンゲームとしてのモデルなどについて概観しました。

本記事が、Curio・Treatyの概要や特徴的なポイント、ゲームをプレイするまでの実際の流れなどについて理解したいと思われている方にとって、少しでもお役に立ったのであれば幸いです。

また励みになりますので、参考になったという方はぜひTwitterでのシェア・コメントなどしていただけると嬉しいです。

イーサリアムnaviを運営するSTILL合同会社では、web3/crypto関連のリサーチ代行、アドバイザー業務、その他(ご依頼・ご提案・ご相談など)に関するお問い合わせを受け付けております。

まずはお気軽に、こちらからご連絡ください。

みんなにも読んでほしいですか?
  • URLをコピーしました!
目次