Starknetのオンチェーンゲームエンジン「Dojo」の概要と、オンチェーンゲーム領域における「ゲームエンジン」の現状と課題について考察

今回は、Cairo(Starknet独自の開発言語)でオンチェーンゲームを開発するためのフルスタックツールチェーン「Dojo」について解説します。

derio

以前、Solidity(EVM上で実行されるスマートコントラクトの開発言語)とJavaScript(React, TypeScript)で構築されているオンチェーンゲームエンジン「MUD」について取り上げましたが、イメージとしては『MUDのStarknet版がDojo』といっても差し支えありません。

Starknetのオンチェーンゲームには、RealmsIsaac, Influenceなどがありますが、それらはDojoを用いて開発されたのではなく、独自に実装を行い提供しています。

ちなみにStarknet上のオンチェーンゲームは、「Cartridge」というweb3版のSteamのようなブラウザウォレットを用いることで、簡単にプレイすることができます。

ただし、一般的に「オンチェーンゲーム」を構築することは非常にハードルが高いとされており、またその定義や標準規格が定まっていないのが現状です。

そこで、オンチェーンゲームを構築することが難しいという課題に対処するために、LatticeのMUDや今回ご紹介するStarknetのDojoは、『ゲームエンジンを構築することで開発者の参入障壁を下げてあげよう』といった方向性で解決を試みています。

しかし、オンチェーンゲームビルダーの中には『定義や標準規格が定まっていない今の段階からゲームエンジンの開発を試みるのは時期尚早だ』と考える人もいます。本記事ではそういった背景についても最終章の考察で触れつつ、オンチェーンゲームエンジンの現状とその課題、また将来的な発展可能性などについても述べていきたいと思います。

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

STEP
「Dojo」とは

まずは、Cairoでオンチェーンゲームを開発するためのフルスタックツールチェーン「Dojo」の概要について解説します。

STEP
DojoとMUDの共通点ならびに相違点

続いて、SolidityとJavaScriptで構築されているオンチェーンゲームエンジン「MUD」と比較し、「Dojo」との共通点ならびに相違点について確認していきます。

STEP
【考察】オンチェーンゲーム領域における「ゲームエンジン」の現状と課題

最後に、MUDやDojoのようなオンチェーンゲームエンジンの現状や、そのようなツールの現時点での課題、将来的な可能性などについて、筆者の私見を交えながら考察してまいります。

本記事が、DojoやオンチェーンゲームエンジンMUDとの違い、またそれぞれの特徴ポイントなどについて理解したいと思われている方にとって、少しでもお役に立てれば幸いです。

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

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

目次

「Dojo」とは

概要

Dojoは、Cairo(Starknet独自の開発言語)でオンチェーンゲームを開発するためのフルスタックツールチェーンです。

フルスタックツールチェーン(Full Stack Toolchain)とは、Web開発における全ての段階で必要な開発ツールを含んだ一連のツールのことを指します。これには、フロントエンド、バックエンド、データベース、デプロイメントの各ステージで必要な開発ツールが含まれます。

Dojoは、Cairo言語プラグインが提供する機能を活用し、ブロックチェーンのプロパティをゲームに簡単に統合することができる『最高クラスの開発者体験』を提供することを目指しています。

Dojoの特徴ポイントは以下の通りです

  • ECS(Entity Component System)パターンによるシンプルな構成
  • 言語プラグインとマクロを活用した簡潔な実装
  • 効率的にコンパイルされたストラテジーを持つ表現力豊かなqueryシステム
  • クライアントライブラリのための型付きインターフェース生成

次章で詳しく述べていきますが、DojoもMUDと同じくECSパターンを採用していたり、開発者のオンチェーンゲーム構築への参入ハードルを下げるために、簡潔さ・シンプルさを重視した設計となっています。

なお本記事では割愛しますが、Dojoを使ってオンチェーンゲーム開発を試みたいという方は、GitHubページをご参考ください。

コアメンバー

上写真は、Dojo構想当初のコアメンバーの一覧表になります。

詳細は最終章の考察パートで述べますが、TopologyのGuiltyGyoza氏などは「方向性の違い」から、現在あまり関わっていないとのこと。

執筆時点では、CartridgeBriqRealmsのメンバーが中心となって開発を進めているようです。

DojoとMUDの共通点ならびに相違点

出典:twitter.com/I_D_Theory/status/1627732838740119554

MUDやそれを用いて構築されたオンチェーンゲームがどのような特徴を持つのかご存じないという方は、まず以下の記事を先に読んでおかれることを推奨します。

さて、前章ではStarknet(Cairo)でのオンチェーンゲーム開発ツール「Dojo」について概観しましたが、Optimismにおけるオンチェーンゲーム開発ツール「MUD」とは何が違うのでしょうか。

共通点

まず、両方ともECS(Entity Component System)パターンに基づいた、シンプルな構成になっている点が共通しています。

出典:twitter.com/GVN908/status/1615758040430694400

ECSではその名の通り、「エンティティ」「コンポーネント」「システム」の3つが、基本的な構成要素です。

  • エンティティ(空箱)
    • 単なるID(uint型)であり、ロジックやデータを格納していない
  • コンポーネント(データ)
    • データを格納し、「エンティティにアタッチ(添付)」することが可能
    • 「プロパティ」と考えることもできるが、データはクラスのプロパティとは異なる方法で構造化されている
  • システム(ロジック)
    • ロジックを実行する
    • コンポーネントだけを扱い、エンティティは扱わない
出典:MUD – An Engine for Autonomous Worlds | Lattice @ Devcon VI Bogotá

ECSパターンを採用することで、既に存在しているコンポーネント同士を組み合わせて新しいタイプのエンティティを作成することが可能になります。さらに、全てのシステムはそのまま機能します。

このため、数多くのエンティティや処理内容が存在する「オンチェーンゲーム」においては非常に重要なポイントとなり、両者ともに採用されているのだと考えられます。

また余談ですが、MUDは実はEthereum上で複雑なアプリケーションの開発フレームワークなのですが、オンチェーンゲームを開発するためによく使用されているため、オンチェーンゲームエンジンとしての印象が強くなっています。

そして、MUDからインスピレーションを受けて、EVM非互換のStarknetでも同様のオンチェーンゲームエンジンを構築したいという考えが生まれ、RealmsチームのLoaf氏を中心にDojoの発案に至りました。

ちなみに、Loaf氏がDojoの発案についてtwitter上で発信した後に、MUDサイドのludens氏が「DojoはMUDインスパイアではなく、非常に独断的なコピーだ」と批判していたこともありました。

derio

狭い業界の中でも批判されることを恐れず、皆がgreart!という中で自身が違和感を覚えた箇所については、はっきりと意見を主張するludensの姿勢は非常に好印象だったので、個人的に印象深いやりとりでした。興味がある方はご覧ください。

相違点

両者で用いられている開発言語は異なります。

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(決定的)なストレージ/デプロイメント モデルになっているそうで、そこも差別化ポイントだと思います。

derio

ゲームデザインとしては、現時点でのMUDを用いたオンチェーンゲームは、「ターン制」の形式が向いているという話は聞いたことがあります。

前回の記事で、「Emojjimon」のMUDチュートリアルに倣いながら、実際にゲームエンジンを使った自律型世界(オンチェーンゲーム)に挑戦してみましたが、ゲームデザインとしてはエリアを一つずつ探索し、モンスターに出会ったらターン制のバトルに発展するような形式になっていました。

一方でDojoでは、Starknetの計算処理能力を生かしつつランダム生成型ダンジョンゲームを構築しようとしたり、標準的な集中型アーキテクチャでは実現できないようなゲームデザインを考える人が見受けられる印象です。

これらの違いからも、今後生み出されるオンチェーンゲームのジャンルが多様化し、コミュニティの色も変化していくと考えています。


最後に次章では、MUDやDojoのようなオンチェーンゲームエンジンの現状や、そのようなツールの現時点での課題、また将来的な可能性などを中心に、マニアックな考察を「定期購読プラン」登録者向けにまとめています。ご興味あればご覧ください。

【考察】オンチェーンゲーム領域における「ゲームエンジン」の現状と課題

出典:techblogcorner.com/2020/02/06/most-popular-game-engines-for-game-development/

この続き: 2,689文字 / 画像3枚

この続きは、 定期購読プランメンバー専用です。
Already a member? ここでログイン

まとめ

今回は、Starknetのオンチェーンゲームエンジン「Dojo」の概要について解説しつつ、オンチェーンゲーム領域における「ゲームエンジン」の現状と課題について筆者の考察を述べました。

本記事が、DojoやオンチェーンゲームエンジンMUDとの違い、またそれぞれの特徴ポイントなどについて理解したいと思われている方にとって、少しでもお役に立ったのであれば幸いです。

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

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

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

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