今回は、Cairo(Starknet独自の開発言語)でオンチェーンゲームを開発するためのフルスタックツールチェーン「Dojo」について解説します。
以前、Solidity(EVM上で実行されるスマートコントラクトの開発言語)とJavaScript(React, TypeScript)で構築されているオンチェーンゲームエンジン「MUD」について取り上げましたが、イメージとしては『MUDのStarknet版がDojo』といっても差し支えありません。
Starknetのオンチェーンゲームには、RealmsやIsaac, Influenceなどがありますが、それらはDojoを用いて開発されたのではなく、独自に実装を行い提供しています。
ただし、一般的に「オンチェーンゲーム」を構築することは非常にハードルが高いとされており、またその定義や標準規格が定まっていないのが現状です。
そこで、オンチェーンゲームを構築することが難しいという課題に対処するために、LatticeのMUDや今回ご紹介するStarknetのDojoは、『ゲームエンジンを構築することで開発者の参入障壁を下げてあげよう』といった方向性で解決を試みています。
しかし、オンチェーンゲームビルダーの中には『定義や標準規格が定まっていない今の段階からゲームエンジンの開発を試みるのは時期尚早だ』と考える人もいます。本記事ではそういった背景についても最終章の考察で触れつつ、オンチェーンゲームエンジンの現状とその課題、また将来的な発展可能性などについても述べていきたいと思います。
でははじめに、この記事の構成について説明します。
まずは、Cairoでオンチェーンゲームを開発するためのフルスタックツールチェーン「Dojo」の概要について解説します。
続いて、SolidityとJavaScriptで構築されているオンチェーンゲームエンジン「MUD」と比較し、「Dojo」との共通点ならびに相違点について確認していきます。
最後に、MUDやDojoのようなオンチェーンゲームエンジンの現状や、そのようなツールの現時点での課題、将来的な可能性などについて、筆者の私見を交えながら考察してまいります。
本記事が、DojoやオンチェーンゲームエンジンMUDとの違い、またそれぞれの特徴ポイントなどについて理解したいと思われている方にとって、少しでもお役に立てれば幸いです。
※本記事は一般的な情報提供を目的としたものであり、法的または投資上のアドバイスとして解釈されることを意図したものではなく、また解釈されるべきではありません。ゆえに、特定のFT/NFTの購入を推奨するものではございませんので、あくまで勉強の一環としてご活用ください。
イーサリアムnaviの活動をサポートしたい方は、「定期購読プラン」をご利用ください。
「Dojo」とは
概要
Dojoは、Cairo(Starknet独自の開発言語)でオンチェーンゲームを開発するためのフルスタックツールチェーンです。
Dojoは、Cairo言語プラグインが提供する機能を活用し、ブロックチェーンのプロパティをゲームに簡単に統合することができる『最高クラスの開発者体験』を提供することを目指しています。
Dojoの特徴ポイントは以下の通りです
- ECS(Entity Component System)パターンによるシンプルな構成
- 言語プラグインとマクロを活用した簡潔な実装
- 効率的にコンパイルされたストラテジーを持つ表現力豊かなqueryシステム
- クライアントライブラリのための型付きインターフェース生成
次章で詳しく述べていきますが、DojoもMUDと同じくECSパターンを採用していたり、開発者のオンチェーンゲーム構築への参入ハードルを下げるために、簡潔さ・シンプルさを重視した設計となっています。
コアメンバー
上写真は、Dojo構想当初のコアメンバーの一覧表になります。
詳細は最終章の考察パートで述べますが、TopologyのGuiltyGyoza氏などは「方向性の違い」から、現在あまり関わっていないとのこと。
執筆時点では、Cartridge・Briq・Realmsのメンバーが中心となって開発を進めているようです。
DojoとMUDの共通点ならびに相違点
MUDやそれを用いて構築されたオンチェーンゲームがどのような特徴を持つのかご存じないという方は、まず以下の記事を先に読んでおかれることを推奨します。
さて、前章ではStarknet(Cairo)でのオンチェーンゲーム開発ツール「Dojo」について概観しましたが、Optimismにおけるオンチェーンゲーム開発ツール「MUD」とは何が違うのでしょうか。
共通点
まず、両方ともECS(Entity Component System)パターンに基づいた、シンプルな構成になっている点が共通しています。
ECSではその名の通り、「エンティティ」「コンポーネント」「システム」の3つが、基本的な構成要素です。
- エンティティ(空箱)
- 単なるID(uint型)であり、ロジックやデータを格納していない
- コンポーネント(データ)
- データを格納し、「エンティティにアタッチ(添付)」することが可能
- 「プロパティ」と考えることもできるが、データはクラスのプロパティとは異なる方法で構造化されている
- システム(ロジック)
- ロジックを実行する
- コンポーネントだけを扱い、エンティティは扱わない
このため、数多くのエンティティや処理内容が存在する「オンチェーンゲーム」においては非常に重要なポイントとなり、両者ともに採用されているのだと考えられます。
また余談ですが、MUDは実はEthereum上で複雑なアプリケーションの開発フレームワークなのですが、オンチェーンゲームを開発するためによく使用されているため、オンチェーンゲームエンジンとしての印象が強くなっています。
そして、MUDからインスピレーションを受けて、EVM非互換のStarknetでも同様のオンチェーンゲームエンジンを構築したいという考えが生まれ、RealmsチームのLoaf氏を中心にDojoの発案に至りました。
ちなみに、Loaf氏がDojoの発案についてtwitter上で発信した後に、MUDサイドのludens氏が「DojoはMUDインスパイアではなく、非常に独断的なコピーだ」と批判していたこともありました。
狭い業界の中でも批判されることを恐れず、皆がgreart!という中で自身が違和感を覚えた箇所については、はっきりと意見を主張するludensの姿勢は非常に好印象だったので、個人的に印象深いやりとりでした。興味がある方はご覧ください。
“greatly inspired” is a misleading understatement.
— ludens (@l_udens) December 11, 2022
from reading the README, this is a 1 to 1 copy of the *very* opinionated architecture we have developed over the last 8 months.
this a port of MUD to cairo. it’s not “inspired”. own it.
相違点
両者で用いられている開発言語は異なります。
MUDは、SolidityとJavaScript(React, TypeScript)で構築されているのに対して、DojoはRustとWasm、Cairo(※厳密にはCairo 1)を中心に構築されたオンチェーンゲームエンジンであるという違いがあります。
これは、以下の前提があることが原因で起こっていると考えられます。
- MUD
- EVM互換性のあるOptimism(Ethereum L2)上で構築されている
- 開発言語がSolidityで行える
- Dojo
- EVM互換性のないStarknet(Ethereum L2)上で構築されている
- 開発言語がSolidityで行えず、Cairoという独自開発言語を用いる必要がある
MUDの場合はSolidityで開発が行えるため、既にEthereumやPolygonなどEVM互換チェーンでコントラクトをデプロイした経験がある方は、スムーズに参入できるところが強みです。
逆にDojoの場合、Starknet専用にCairoを勉強する必要があるため、現時点では少しハードルが高くなってしまっています。
また、Latticeチームのludens氏によると、Cairoを用いたDojoの方がdeterministic(決定的)なストレージ/デプロイメント モデルになっているそうで、そこも差別化ポイントだと思います。
ゲームデザインとしては、現時点でのMUDを用いたオンチェーンゲームは、「ターン制」の形式が向いているという話は聞いたことがあります。
前回の記事で、「Emojjimon」のMUDチュートリアルに倣いながら、実際にゲームエンジンを使った自律型世界(オンチェーンゲーム)に挑戦してみましたが、ゲームデザインとしてはエリアを一つずつ探索し、モンスターに出会ったらターン制のバトルに発展するような形式になっていました。
一方でDojoでは、Starknetの計算処理能力を生かしつつランダム生成型ダンジョンゲームを構築しようとしたり、標準的な集中型アーキテクチャでは実現できないようなゲームデザインを考える人が見受けられる印象です。
これらの違いからも、今後生み出されるオンチェーンゲームのジャンルが多様化し、コミュニティの色も変化していくと考えています。
【考察】オンチェーンゲーム領域における「ゲームエンジン」の現状と課題
この続き: 2,689文字 / 画像3枚
まとめ
今回は、Starknetのオンチェーンゲームエンジン「Dojo」の概要について解説しつつ、オンチェーンゲーム領域における「ゲームエンジン」の現状と課題について筆者の考察を述べました。
本記事が、DojoやオンチェーンゲームエンジンMUDとの違い、またそれぞれの特徴ポイントなどについて理解したいと思われている方にとって、少しでもお役に立ったのであれば幸いです。
また励みになりますので、参考になったという方はぜひTwitterでのシェア・コメントなどしていただけると嬉しいです。
🧭オンチェーンゲーム領域における「ゲームエンジン」の現状と課題
— イーサリアムnavi🧭毎週土曜日の昼に配信 (@ethereumnavi) March 4, 2023
🥋Starknetのゲームエンジン @dojostarknet について解説
🥋OptimismのMUDとの共通/相違点も比較
🥋現段階でオンチェーンゲームエンジンは必要なのか、そしてその真価はどこにあるのか
詳しくはこちら👇https://t.co/zcYIZM25vt
イーサリアムnaviを運営するSTILL合同会社では、web3/crypto関連のリサーチ代行、アドバイザー業務、その他(ご依頼・ご提案・ご相談など)に関するお問い合わせを受け付けております。
まずはお気軽に、こちらからご連絡ください。
- 法人プランLP:https://ethereumnavi.com/lp/corporate/
- Twitter:@STILL_Corp
- メールアドレス:info@still-llc.com