今回は、ECS(エンティティ・コンポーネント・システム)パターンを用いたオンチェーンゲーム「Treaty」の概要と、それを構築する「Curio」について解説していきます。
さて昨今では、StarkNetやGnosis、Optimismチェーンなどを中心に、オンチェーンゲーム開発が盛り上がりを見せてきている状況です。
StarkNetでは「MatchboxDAO」が、OptimismではLatticeのMUDが主導となり、サードパーティの開発者がオンチェーンゲームを構築しやすいよう、各所でその環境整備に取り掛かっています。
そんな中で、Curioはノーコードでカスタムrollupを作成できるツール「Caldera」を用いて独自のECSゲームエンジンを構築し、それを用いたオンチェーンゲーム「Treaty」を開発していることから、注目を集めつつあります。
また、社会契約を含めあらゆるゲームオブジェクトとその条約をオンチェーン実装しており、今までのオンチェーンゲームにはなかった独自路線での社会実験をおこなっていることも、個人的に興味深いと考えています。
ということで本記事では、CurioというクリエイティブグループならびにオンチェーンゲームTreatyについてご紹介することで、本プロジェクトの概要ならびに要点、そして斬新なオンチェーンゲームとしてのモデルなどについて理解していただくことを目的とします。
A new player has arrived …
— Curio (@0xcurio) February 21, 2023
We raised $2.9M from @BainCapCrypto, @tcg_crypto and others to build the next generation of crypto games hyper focused on composable user-generated content. pic.twitter.com/pN8uWGqhub
でははじめに、この記事の構成について説明します。
まずは、本記事のメインテーマであるオンチェーンゲームTreatyを運営する組織「Curio」の実態について、解説します。
続いて、独自のECSエンジンを構築してあらゆるゲーム内リソースのトークン化を行うオンチェーンゲーム「Treaty」の概要とその注目ポイントについて解説します。
最後に、オンチェーンゲーム「Treaty」を始めるまでの流れと、ゲーム画面やオブジェクトについての簡略的な解説をおこなうことで、本ゲームについての理解を深めていただくことを目的とします。
本記事が、Curio・Treatyの概要や特徴的なポイント、ゲームをプレイするまでの実際の流れなどについて理解したいと思われている方にとって、少しでもお役に立てれば幸いです。
ありがとうございます! https://t.co/dpoftSsZCJ
— Curio (@0xcurio) February 4, 2023
※本記事は一般的な情報提供を目的としたものであり、法的または投資上のアドバイスとして解釈されることを意図したものではなく、また解釈されるべきではありません。ゆえに、特定のFT/NFTの購入を推奨するものではございませんので、あくまで勉強の一環としてご活用ください。
イーサリアムnaviの活動をサポートしたい方は、「定期購読プラン」をご利用ください。
運営組織「Curio」について
まず本章では、大元となる運営組織「Curio」について深掘りしていきます。オンチェーンゲーム「Treaty」については次章で解説します。
Curioは、クリプトのコンポーザビリティ(構成可用性)とスマートコントラクトの力を通じて、豊かで広範なソーシャルインタラクションを作成するためのゲーム構築に焦点を当てたクリエイティブグループです。
現在は主に、次章で後述するTreatyを始めとした「4Xストラテジー」×「オンチェーン/コンポーザブル領域のゲーム」の構築に力を入れています。
4Xは、ストラテジーゲームのサブジャンルの一つ。ストラテジーゲームの中でも、”eXplore”:探検、”eXpand”:拡張、”eXploit”:開発、”eXterminate”:殲滅、の4つの性質を兼ね備えた作品を指す。
出典:Wikipedia
Curioは、ECSモデルを採用したオンチェーンゲーム開発をおこなっているものの、一般的にオンチェーンゲーム開発で使われ始めている「LatticeのMUD」を用いず、独自のゲームエンジンを構築・採用しています。
以下の記事でも少し触れましたが、ゲーム内のキャラクターにトークンを付与するためのスマートコントラクトやトークン化レイヤー、AA(Account Abstraction)レイヤーなどを備えた「独自のゲームエンジン」をベースに設計されている点が、Curioゲームの特徴ポイントとなります。
また、先日サンフランシスコで開催されたETH SFイベントでは、次章で詳述するオンチェーンゲーム「Treaty」のデモを参加者に体験してもらい、盛り上がっている様子も見られました。
Thank you to everyone who came to our ETH SF event! We hope you all had a blast 🥳🥳
— Curio (@0xcurio) November 9, 2022
To all who played – watch out for something special in your wallets in the coming weeks pic.twitter.com/g9R8KfLo5G
次章では、そんなオンチェーンゲーム開発に情熱を捧げるCurioチームが手掛ける、最初のプロダクト「Treaty」について概観していきます。
Treatyとは
概要
Treatyは、土地を確保し経済を発展させることで競い合うという意味で「古典的な4X戦略ゲーム」でありつつも、それを”完全オンチェーンで”実現するゲームプロジェクトです。
ゲームに参加したプレイヤーは、ゲーム内で出会う他プレイヤーと、スマートコントラクトとして実装された条約を元に交渉したり、それらの活動を通して資源などを獲得・割り当てなどをおこないゲームを有利に進めていきます。
そして自分の軍隊や陣地を拡大し、最終的には内側のレイヤーにある中央タイルを占めることでゴールとなります。
詳細は後述しますが、本ゲームで特筆すべきポイントは「全てのモノや資源、契約から条約に至るまでの全てがスマートコントラクト及び統一規格トークンとして表現されている」ことです。
プレイヤーは、オンチェーンにある第三者が作成したTreaty(条約)をカスタマイズして使用しながら、ゲームを有利に進めていくことができます。また、もしあなたが開発者であれば、自分でコードを書いて新しい条約(スマートコントラクト)をデプロイしてゲーム内で使用することも可能です。
注目ポイント
本節では、オンチェーンゲーム「Treaty」の主な注目ポイントについて、以下4つに焦点を当てて解説していきます。
- 社会契約をオンチェーン実装
- あらゆるゲーム内リソースのトークン化
- delegate(委任)の仕組みを採用
- データレイヤーにECSゲームエンジンを使用
社会契約をオンチェーン実装
Treatyでは、ユーザーが作成した「社会契約」をスマートコントラクトとしてエンコードすることで、トラストレスな合意形成やOTC取引などを実現しようとしています。
例えば、上写真のNATOコントラクトでメンバーとしてマッピングされたアドレスは、互いに攻撃することをコードベースで禁じられます。
これは、現実世界におけるNATOスタイルの合意形成モデル(参加して会費を支払うと他の委員会メンバーを攻撃できない)をオンチェーンで表現しており、非常に興味深い試みであると思います。
その他にも、以下のような条約をサードパーティの開発者が作成し、UGL(ユーザー生成ロジック)としてオンチェーンで共有することが可能です。
- 経済的利益を侵害する仮想国家を制裁する禁輸協定
- 資源(ERC20)を獲得する度に、ギルドメンバーに対して課税
- 送信者と受信者が互いに10タイル以内にいる場合のみ、トークンの転送を許可
これらを活用することで、各ユーザーは独自の戦略に合わせてルールや契約をカスタマイズしながら、独自の条約をパーミッションレスに作成できるようになります。
なお、Curioチームから条約のサンプルとして、以下のような.solファイルがGitHubで公開されています。
あらゆるゲーム内リソースのトークン化
TreatyはERC20トークンのデザインパターンから着想を得ており、「approve(承認)」「transferFrom(転送)」といった仕組みを元にして、社会契約をオンチェーン条約として表現しています。
上写真の例では、「建物」「軍隊」など個々のゲームオブジェクトがスマートコントラクトとなっており、それぞれ固有のウォレットアドレス(0x○○○○○)を保持していることが分かります。
そして、「石」「馬」「金(ゴールド)」「騎兵隊」などがERC20トークンとして表現されており、プレイヤーはスマートコントラクトウォレットを制御しながら以下のようなアクションをオンチェーンで起こすことにより、ゲームを有利に進めていくことができます。
- 首都からロバの背中に石トークンを移す
- 戦争のためにAlisの戦隊からBobの戦隊に対して5000ユニットの騎兵隊トークンを移動させる
- ある国の首都に貿易禁止令が出た場合、金(ゴールド)トークン転送をブラックリスト化する
delegate(委任)の仕組みを採用
Treatyでは、他のプレイヤー(またはスマートコントラクト)が自分の代わりに関数を実行し、ゲームをプレイできるdelegate(委任)機能を提供しています。
先ほどの節でも述べた通り、TreatyがERC20トークンのデザインパターンから着想を得て実装していて「承認ロジック自体がトークン標準に組み込まれている」ことにより成せる技です。
これによって、例えばAliceがdelegateしたBobというプレイヤーが、Aliceに代わって「moveArmy(軍を動かす)」や「harvestGold(金を収穫する)」などの関数を呼び出せるようになります。
なお、delegateデータは統一されたECSシステム(※次節で詳述)に保存されるため、プレイヤーは必要に応じてdelegateの詳細を表示したり、パーミッションレスに別の場所で再利用したりすることもできます。
データレイヤーにECSゲームエンジンを使用
ECSについてご存知ないという方は、ぜひ以下の記事をご一読ください。
執筆時点において、オンチェーンゲームにおけるECSゲームエンジンの代表格は「MUD」といって差し支えないと思われますが、実はTreatyではMUDを用いていません。
ゲーム内のキャラクターにトークンを付与するためのスマートコントラクトやトークン化レイヤー、さらにAA(Account Abstraction)レイヤーなどを備えた「独自のECSゲームエンジン」をベースに設計されています。
ゲームプレイまでの全体的なフロウ
本章では、オンチェーンゲーム「Treaty」を始めるまでの流れと、ゲーム画面やオブジェクトについての簡略的な解説をおこなうことで、本ゲームについての理解を深めていただくことを目的とします。
なお、筆者の作業環境はPC(Mac)とGoogle Chromeです。
準備編(ゲームスタート画面まで)
まずはwebサイトにアクセスします。
執筆時点では、ログインするためにweb3ウォレットかメールアドレスが必要なので、今回はMetaMaskを使用します。
ネットワークの変更を求められたら「Approve => Switch Network」をクリックし、『Curio Constellation V3』ネットワークに変更します。
完了したら、「Enter username」欄に名前を入力し、「Join game」ボタンをクリックしてゲームを始めます。
ゲーム画面がローディングされるのでしばらく待機すると、以下のような画面が表示されます。
マウススクロールで画面を縮小すると、右下赤枠部のようなゲーム画面全体が映ります。また、左クリックしながらマウスを動かすと視点移動できます。
ゲームオブジェクトを確認
自分の首都をクリックすると、上写真右部のようなメニュータブが表示されます。青と赤で示している2種類の資源(クリスタル・食糧)は、主に以下などの目的で使用されます。
- 首都をアップグレードする
- 軍隊を編成する
- タイル(ゲームの空間単位)を征服し、自分の帝国を成長させる
ゲーム内の1マスは「タイル」と呼ばれ、各タイルにはバーバリアン(敵)や水晶鉱山(資源)、山(障害物)などが乗っていたり、空きタイルになっていたりします。
これらタイルに軍隊を送って征服(自分の領地化)していきながら、獲得した資源で首都・軍隊などを強化しつつゲームを進めていき、またその道中でオンチェーン条約を用いて交渉を有利に進めていくというのが、簡略的ではありますがTreatyの全体フロウになります。
ゲーム内のすべてのオブジェクトやその処理(条約)内容がオンチェーンに乗っており、またUGL(ユーザー生成ロジック)という新たなゲーム体験を創出している点においても、Treatyは大変興味深いオンチェーンゲーム事例であると思います。
今回は長くなるのでゲームプレイ以降については省略しますが、興味がある方は「Treaty: A Guide for Players」記事や、「Treaty Video Tutorial」動画などをご覧ください。
まとめ
今回は、CurioというクリエイティブグループならびにオンチェーンゲームTreatyについてご紹介することで、本プロジェクトの概要ならびに要点、そして斬新なオンチェーンゲームとしてのモデルなどについて概観しました。
本記事が、Curio・Treatyの概要や特徴的なポイント、ゲームをプレイするまでの実際の流れなどについて理解したいと思われている方にとって、少しでもお役に立ったのであれば幸いです。
また励みになりますので、参考になったという方はぜひTwitterでのシェア・コメントなどしていただけると嬉しいです。
🆕記事をアップしました🆕
— イーサリアムnavi🧭 (@ethereumnavi) February 4, 2023
今回は、@0xcurio が開発するオンチェーンゲーム「Treaty」について解説📝
社会契約をオンチェーン実装し、あらゆるゲーム内リソースのトークン化に挑む斬新なゲーム🎮
MUDではない独自のECSゲームエンジンを使用している点も注目ポイントです👀https://t.co/WfsShFAW0W
イーサリアムnaviを運営するSTILL合同会社では、web3/crypto関連のリサーチ代行、アドバイザー業務、その他(ご依頼・ご提案・ご相談など)に関するお問い合わせを受け付けております。
まずはお気軽に、こちらからご連絡ください。
- 法人プランLP:https://ethereumnavi.com/lp/corporate/
- Twitter:@STILL_Corp
- メールアドレス:info@still-llc.com