自律型世界(オンチェーンゲーム)の構築をサポートする「MUD」の概要と、MUDを用いた主要ゲームプロジェクト「OP Craft」「Sky Strife」について概観

どうも、イーサリアムnavi運営のでりおてんちょーです。

イーサリアムnaviでは、毎日大量に流れてくるクリプトニュースを調査し、その中でも面白いトピックやクリプトネイティブな題材を選び出し、それを分かりやすく読みやすい形でお伝えしています。パラパラと内容を眺めているだけでも、事業やリサーチの新たなヒントに繋がることがあります。世界の最先端では、どのようなクリプトコアな試みが行われているのかを認識するだけでも、 思わず狭くなりがちな視野を広げてくれるでしょう。

昨今では、世界中のクリプトコアな人たちを中心に「オンチェーンゲーム開発」がおこなわれており、弊メディアでもDark ForestやIsaacなど先進的な事例についてピックアップしてきました。

これらの事例を見て、「私もオンチェーンゲーム開発をやってみたい!」と思われた方もいらっしゃったのではないかと思います。

しかし、いざオンチェーンゲームを構築しようとした際に、0からどのように作り上げていけば良いのか、多くの人は分からないでしょう。

そこで今回は、EVMチェーンエコシステムでオープンソースライブラリなどを提供し、そのような課題解決をサポートしてくれる「MUD」についてピックアップしていきたいと思います。

出典:Mud Workshop (figma)

MUDを用いることによって、オンチェーンゲーム開発が簡易になるとともに、各ゲームに相互運用性をもたせることで「自律型世界」を構築しようという野心的な取り組みに参加することが可能になります。

詳細は順を追って解説していきますが、本記事を読むことで自律型世界(オンチェーンゲーム)の構築にはコンポーザビリティや相互運用性、保守性の高いコードを記載することがいかに重要なのかについて、ご理解いただけるかと思います。

ということで本記事では、「MUD」という自律型世界を構築するためのオープンソースエンジンや、MUDを使って展開されているオンチェーンゲーム「OP Craft」「Sky Strife」などについて紹介・解説していきたいと思います。

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

STEP
「MUD」について

まずは、「MUD」とは何なのか、またその運営元である「Lattice」などについて、簡潔にご紹介します。

STEP
MUDの理解を深めよう

続いて、MUDの理解を深めていただくために、オンチェーンゲーム開発における課題とその解決策としてのECSパターンの概要、そしてMUDの今後の発展可能性などについて解説していきます。

STEP
MUDを使った主要プロダクトを概観

最後に、執筆時点までにMUDを用いたオンチェーンゲーム開発が進められている「OP Craft」「Sky Strife」について概観していきます。

本記事が、「MUD」の概要・注目ポイントなどについて理解したいと思われている方にとって、少しでもお役に立てれば幸いです。

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

「定期購読プラン」の詳細はこちら

「定期購読プラン」は現在、トライアル期間を設けているため、初回は30日間無料でプランにご登録いただけます。この機会にぜひお試しいただき、サービスの魅力を体験していただければ幸いです。

※ 1ヶ月間の無料トライアル期間終了後に、自動的に有料プランへと移行します。
※ 無料トライアル期間中にご解約いただければ、ご利用料金は発生いたしません。


目次

「MUD」について

出典:mud.dev

概要

MUDは、Autonomous Worlds(以下「自律型世界」と表記)を構築するためにつくられた、オープンソースのツールです。

オンチェーンゲームを超える概念として「自律型世界」を提唱しており、それをEthereumエコシステム上で構築する際の全ての困難な問題を解決するために、オープンソースのライブラリを提供しています。

MUD(マッド)は、「Multi-User Dungeon」の略称です。

出典:MUD – An Engine for Autonomous Worlds | Lattice @ Devcon VI Bogotá

また、オープンソースにするために、コンポーザビリティの高い設計がなされている点も特徴的です。

ゲーム開発者は、MUDを用いてコンポーネントコントラクトを作成したり、既に存在する異なるコンポーネントを使用し組み合わせることで、誰でも相互運用性を備えたオンチェーンゲームを構築できます。

出典:MUD – An Engine for Autonomous Worlds | Lattice @ Devcon VI Bogotá

例えば、これら2つのゲームは完全に異なるジャンルのものですが、全く同じインフラストラクチャ上に構築されています。

ゲームの詳細は「MUDを使った主要プロダクトを概観」章で解説します。

出典:MUD – An Engine for Autonomous Worlds | Lattice @ Devcon VI Bogotá

運営元:Lattice

出典:lattice.xyz

MUDの開発母体は「Lattice」というチームであり、主に以下チームメンバーで構成されています。

筆者はLatticeについて、『オンチェーンゲームの上位版である「自律型世界」を構築するために活動しているクリプトコアなチーム』という理解をしています。

出典:twitter.com/latticexyz

ちなみに、LatticeのTwitterアカウントのフォロワー数は執筆時点では5,200人ほどですが、Larry Cermak氏sassal氏、その他多くのVCの中の人・クリプトコア層の人々からフォローされています。

MUDの理解を深めよう

本章では、まずMUDの理解を深めるための前段階として「ECSパターンの基本的な概要」を中心に解説し、ECSに関する一般的な直感を身につけることを目的とします。

その後、MUDを使ってオンチェーンゲームを構築することでどのような利点があるのかなど、今後の発展可能性について触れていきたいと思います。

少々難解な内容を含みますので、MUDの仕組み部分ではなく概要や導入事例だけおさえたいという方は、本章は読み飛ばしていただいて構いません。

出典:Mud Workshop (figma)

参考記事:
Introduction to the Entity Component System (ECS) pattern

まずECSとは「エンティティ・コンポーネント・システム(Entity Component System)」の略称であり、主にゲーム開発で使用されているソフトウェアアーキテクチャパターンを指す単語です。

ECSパターンは、クラスベースの「継承」のような他の一般的なソフトウェアアーキテクチャのパラダイムに代わるものであり、Latticeチーム曰く『自律型世界を構築する際に抱えていた課題を解消するものであった』そうです。

ECSパターンを使用する以前で抱えていた課題

では、自律型世界をオンチェーンで構築するにあたり、LatticeチームはECSパターンを知る以前にどういった課題を抱えていたのか。

出典:Mud Workshop (figma)

結論から言うと、彼らはECSを知る前の段階において、コードのmaintainability(メンテナンス性)、composability(構成可用性)、mudulability(調節可用性)に大きな問題を抱えていました。

一体どういうことなのか、簡単な例を添えて確認していきましょう。

出典:Mud Workshop (figma)

世界には、生き物や物質などさまざまなエンティティ(実体)が存在します。

ということで、まずはMonster(モンスター)Donkey(ロバ)の2種類のエンティティを用いて、ゲームを作ることを想像してみましょう。

出典:Mud Workshop (figma)

そして、このMonsterDonkeyは、どちらも動くことができるものとします。

この時、クラスと継承のある世界ではMovableという基底クラスを作り、MonsterDonkeyのクラスをこの基底クラスから継承させることができますね。

出典:Mud Workshop (figma)

さてここで、このゲームにCombat(戦闘)を追加したいとします。

Monsterは戦闘に参加しますが、Donkeyは参加しない」としたい場合、CombatロジックをMonsterクラスに入れることになります。

出典:Mud Workshop (figma)

しかし、ここでさらに、『戦闘には参加するが、移動することはできない』 という類の新しいエンティティTower(塔)を追加するとします。

MonsterTowerの両方が継承するCombat基底クラスがあればこの問題は解決されますが、MonsterはすでにMovableを継承しており、多重継承はバグの元になってしまい、コードのmaintainability(メンテナンス性)に大きな問題を抱えてしまうことになりかねません。

「3種類のエンティティ」と「2種類の機能」だけでも、自律型世界の構築に際してすでにアーキテクチャの問題に直面しているのです。

出典:Mud Workshop (figma)

もし多重継承が許されないのであれば、両方のエンティティに対してそれぞれロジックを複製する以外の選択肢はありません。

出典:Mud Workshop (figma)

次に、Inventory(在庫)付きのChest(椅子)を追加し、さらにInventory付きのDonkeyも追加するとしたら、どんなバグが起こり得るでしょうか。たまったものではありませんね。

この段階で、composability(構成可用性)、mudulability(調節可用性)に大きな問題を抱えてしまうことが、容易に想像できるでしょう。

ECSパターンによる解決策

出典:Mud Workshop (figma)

本節では、ECSが先に述べてきた課題をどのように解決できるのかについて見ていきます。

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

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

ECSについての理解を深めるために、ここでは「Movable」「Combat」「Inventory」という3つのコンポーネントを作成するケースを想定してみましょう。

コンポーネントは単なるデータであり、処理の内容などは一切含みません。

ロジックを実行するための処理は「システム」として分けて扱われますが、ここでは以下3つのシステムを追加します。

出典:Mud Workshop (figma)
  • MovementSystem
    • Movableコンポーネントを持つあらゆるエンティティの移動を処理する
  • CombatSystem
    • Combatコンポーネントを持つあらゆるエンティティの戦闘を処理する
  • InventorySystem
    • Inventoryコンポーネントを持つあらゆるエンティティの在庫を処理する

これにて、エンティティの実装は非常にシンプルかつ簡単になりました。

出典:Mud Workshop (figma)

加えて、「ここから更に多くの種類のエンティティを追加したい!」と思った場合でも、シンプルかつ簡単に実装することができるようになるため、より保守性の高いコードを記載することが可能になります。

  • Scout: [Movable]
  • Warchest: [Combat, Inventory]
  • Hero: [Movable, Combat, Inventory]

しかし、ここで最も重要な点は、ECSパターンが「全く新しいレベルの高いコンポーザビリティを開放してくれること」にあります。

出典:Mud Workshop (figma)

各システムは限られたコンポーネントにしか対応しないため、ロジックは高度に分離されると同時に、非常に拡張しやすい構造になっています。

つまり、既に存在しているコンポーネント同士を組み合わせて新しいタイプのエンティティを作成することが可能であり、さらに全てのシステムはそのまま機能してくれます。これが数多くのエンティティや処理内容が存在する「自律型世界」においては非常に重要なポイントとなるのです。

今後の発展可能性

出典:Mud Workshop (figma)

ゲームエンジンのSolidityの部分の話をすると、各コンポーネントはそれ自身がコントラクト(○○.sol)であり、さらに各コンポーネントが自身のことを記録するための「Worldコントラクト」が中心にあります。

これにより、各コンポーネントの値が変わるたびにWorldコントラクトはイベントを発し、クライアントはそれを受信することでローカルステートを表すことが可能になります。

出典:Mud Workshop (figma)

これまで学んできたように、コンポーネントには一切のロジックはなく「データのみ」が格納されており、ロジックは全てシステムに実装されています。

そして、各コンポーネントがWorldコントラクトに自身のことをを記録するのと同じように、全てのシステムもそれ自体がコントラクト(○○.sol)です。

さらにWorldコントラクトの特筆すべきポイントは、「所有者がおらず、パーミッションレスであること」です。

出典:Mud Workshop (figma)

つまり、誰でも独自のコンポーネント(コントラクト)をデプロイし、そのコンポーネントを既存または新規のエンティティに追加して、新しい機能やコンテンツを世界に構築することができるのです。

全てのコンポーネント・システムは各自インターフェイスを実装しつつもWorldコントラクトに記録がなされているのでクライアントをフォークする必要がなく、新しいコンテンツが追加されたら自動的に表示させるといったことが可能になります。

つまり、MUDを使ってオンチェーンゲームを構築する人々は、ゲームをフォークしているわけでも、自分たちの世界を作っているわけでもありません。彼らは、既に存在している「自律型世界」に対して、新しい機能を追加していくことになるです。

MUDを使った主要プロダクトを概観

出典:MUD – An Engine for Autonomous Worlds | Lattice @ Devcon VI Bogotá

本章では、MUDを使用して構築されている2つのオンチェーンゲームプロジェクト「OP Craft」「Sky Strife」について概観していきます。

主要プロダクト①「OP Craft」

出典:dev.optimism.io/opcraft-autonomous-world/

OP Craftは「自律型ボクセル世界」を標榜する、オンチェーン(OP Stack)の3Dボクセルゲームです。

OP Stackは、「あらゆるユースケースに対応するカスタムチェーンを構築するために組み立てられるモジュラーコンポーネントのセット」のことを指す。
参考:Introducing the OP Stack

2022年10月18日に正式ローンチされた本ゲームは、LatticeチームとOptimismチームの技術協力により誕生しました。

出典:dev.optimism.io/opcraft-autonomous-world/

先に解説したオンチェーンゲームエンジン「MUD」と、Optimismの「OP Stack」を組み合わせることにより、3Dの自律型世界を構築しています。

大胆かつ抽象的な表現をすると、『完全オンチェーン版マインクラフト』のようなものです

出典:0xparc.notion.site/Autonomous-Worlds-Arcade-602eb2b16e3f455397cfbb218b0b7843

OP Craftの世界を構成する全ての要素(川・草の葉・山など)や、状態、ユーザーの行動履歴などはオンチェーン情報として格納され、最終的にEthereum(L1)のトランザクションとして記録されます。

derio

今回のメインテーマは「MUD」なのでOP Craftの詳細は割愛しますが、機会があれば別の記事で取り上げたいと思います。

主要プロダクト②「Sky Strife」

Sky Strifeは、MUDゲームエンジンを使って構築された完全オンチェーンRTS(リアルタイム戦略ゲーム)です。

出典:0xparc.notion.site/Autonomous-Worlds-Arcade-602eb2b16e3f455397cfbb218b0b7843

本ゲームの目標は「軍隊を作り、敵を倒し、戦利品を持って最初に脱出すること」であり、大まかなストーリーのあらすじは下記になります。

  • Sky Strifeの舞台となるのは、宇宙の底にあるAmalgema(アマルゲマ)という世界
  • その特殊な位置関係から、空には異世界の「Shards(かけら)」と呼ばれる浮遊島が常に存在している
  • Amalgemaの人々は、この「Shards」の中に貴重なパワーアーチファクトが含まれていることを知った
  • そのため、新たなShardsが出現すると、Shardsをめぐる争奪戦が繰り広げられるようになった

本記事では詳しいゲームルールの説明などは省きますが、執筆時点におけるフェーズは初期ベータ版であり、現状はDiscordで「Sky Strifer」「playtester」のロール保持者のみが参加できる段階となっています。

ちなみに、先日開催されたDevcon Bogotaでは、賞品付きのトーナメントなども開催されていた模様です。興味のある方は、以下のサイトから辿ってみてください。

この他にも、MUDをベースに構築されたオンチェーンゲーム事例はいくつか存在します。興味がある方は、以下の記事にまとめているのでご参考ください。


以上、MUDゲームエンジンを用いて構築されているオンチェーンゲームについて概観しました。

今後は、OP CraftやSky Strifeをはじめとする代表的なゲーム開発が進められていきつつ、MUDベースのオンチェーンゲームが台頭して相互運用されるようにくると、コンポーザビリティの高い設計に努めた効果が表れるようになっていくのではないかと期待しています。

まとめ

今回は、「MUD」という自律型世界を構築するためのオープンソースエンジンや、MUDを使って展開されているオンチェーンゲーム「OP Craft」「Sky Strife」などについて紹介・解説しました。

本記事が、「MUD」の概要・注目ポイントなどについて理解したいと思われている方にとって、少しでもお役に立ったのであれば幸いです。

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

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

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

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