深度解析全链游戏引擎MUD

欧易OKX

欧易OKX

               

欧易OKx是全球三大比特币交易所之一,注册即开最高6万元盲盒,100%中奖!

           官网注册

游戏引擎在游戏开发中发挥着至关重要的作用。对于全链上游戏来说,同样需要一个能够帮助开发者快速部署游戏逻辑的工具。这不仅能够缩短开发周期,还为后续的迭代开发和开放生态中的互操作提供了统一的数据标准。

传统游戏引擎

游戏引擎是一种用于开发和创建电子游戏的软件框架。它包括了游戏开发所需的许多核心功能,对于传统的Web2游戏来说,一般包含如渲染引擎、音频处理、物理模拟和动画系统等。通过使用游戏引擎,开发者能够专注于游戏设计和创意,而无需从头开始构建整个技术基础设施。游戏引擎为游戏开发者提供了一个快速有效的工具,以降低开发成本和时间。

有许多知名的Web2游戏引擎,如Unity、Unreal Engine和Godot等。这些引擎不仅适用于专业开发者,也适用于独立开发者和初学者。游戏引擎具有高度可定制性,可以根据项目需求进行调整。它们通常支持跨平台开发,允许开发者为多种设备(如个人计算机、游戏机和移动设备等)创建游戏。此外,许多引擎还提供了对虚拟现实(VR)和增强现实(AR)的支持,以满足不断发展的技术需求。游戏引擎还包含了一套丰富的工具集,可以帮助开发者轻松地创建游戏世界、角色和物品。这些工具有助于实现高效的游戏开发流程,例如可视化的场景编辑器、脚本编辑器以及动画和特效工具等。

自动草稿

全链游戏引擎

游戏引擎在游戏开发中发挥着至关重要的作用。对于全链上游戏来说,同样需要一个能够帮助开发者快速部署游戏逻辑的工具。这不仅能够缩短开发周期,还为后续的迭代开发和开放生态中的互操作提供了统一的数据标准。

在这个领域中,较为成熟的项目是由Lattice工作室开发的基于Solidity的全链游戏引擎MUD。它使开发者能够迅速将游戏逻辑部署到智能合约中,并实现合约与客户端状态的同步等功能,从而显著提高开发效率。

值得注意的是,目前全链上游戏除了采用Solidity编写外,StarkNet的Cairo也是一种常用的语言。然而,MUD并不能很好地兼容Cairo。因此,StarkNet生态中的两个活跃项目Realms和Briq的创始人共同开发了基于Cairo的全链上引擎Dojo。由于Dojo的核心理念与MUD相似,引发了MUD创始人Ludens的不满。但在一番争议之后,Ludens最终表示愿意协助将MUD部署到StarkNet上。

ECS架构

开发游戏引擎时遇到的最大问题是如何表示游戏对象,游戏对象可以从没有控制或交互的简单2D图像到具有控制、声音、动画和AI的异常复杂3D对象。在概念上,很容易将游戏对象理解为表示游戏中具有多个功能的实体。最开始使用面向对象变成OOP的架构,现在更为流行的是ECS架构(Entity Component System)。

自动草稿

ECS通过将逻辑、数据和实体分离,提高了游戏开发的灵活性和可维护性。这种架构模式有助于降低代码复杂度,减少耦合,从而提升性能和开发效率。ECS由以下三个主要部分组成:

  1. 实体(Entity):实体是游戏世界中的基本对象,如角色、道具或场景物体等。实体本身并不包含任何数据或逻辑,而只是一个唯一标识符,用于关联组件和系统。
  2. 组件(Component):组件用于存储实体的属性和数据。每个组件负责表示一个特定的特征或功能,例如位置、速度或生命值等。组件只包含数据,不包含任何逻辑。通过将不同的组件组合在一起,可以轻松地创建具有各种功能和特性的实体。
  3. 系统(System):系统负责处理游戏逻辑和行为。系统根据实体所拥有的组件来执行相应的操作。例如,一个处理移动的系统会查找具有位置和速度组件的实体,并根据其速度更新位置。系统独立于实体和组件,使得游戏逻辑更加模块化和可复用。

ECS模式有助于解决传统面向对象编程(OOP)在游戏开发中的一些问题,如继承层次过深和代码重用困难等。ECS使得游戏对象的构建更加灵活,可以通过组合不同的组件轻松创建出复杂的行为。此外,ECS还有助于优化性能,特别是在处理大量游戏对象时。许多现代游戏引擎,如Unity和Godot,已经采用了ECS作为其核心架构。

全链游戏和Web2游戏甚至常见的GameFi游戏(游戏资产上链但游戏本身不上链)有很大不同,比如,编程语言多采用Solidity,游戏对象的属性状态储存在智能合约中,这就导致面向对象编程完全无法使用,只能采用ECS架构。

我们来看Solidity,其实已经在不知不觉中使用过这种模式的变体。以ERC-20合约为例:ERC-20合约将每个地址的代币余额存储在一个映射中(从address到uint256余额)。我们可以将每个ERC-20合约视为一个具有两列的表:”地址”和”余额”。这对应于具有单个模式值(”余额”)的组件。表中的每行都将一个实体(”地址”)与一个组件值(”余额”)关联起来。一个地址可以在许多独立的ERC-20合约中持有余额,这对应于一个实体与许多独立的组件值关联。在当前的ERC-20参考实现中,状态和逻辑是耦合在同一个合约中的。在ECS中,我们将有一个通用的”转账系统”来处理从一个地址向另一个地址转账代币的逻辑,通过修改代币组件中存储的状态。

另一个例子是一个简单的视频游戏,可用的组件有”位置”和”生命值”。具有位置的实体在位置组件中有一个条目,具有生命值的实体在生命值组件中有一个条目。”移动系统”可以实现将实体从一个位置移动到另一个位置的规则。”战斗系统”可以根据涉及实体位置的规则实现战斗逻辑,并修改实体的生命值。

MUD游戏引擎

MUD是一个以太坊应用程序框架。其核心是一组合约接口和使用它们的约定。这些核心接口和库使得一系列周边工具、集成和库能够更加顺畅地进行,从而使链上应用程序的开发变得更加简洁。

自动草稿

MUD 可以实现如下功能

目前

  • 在合约和客户端之间进行状态同步,无需定制网络代码
  • 通用索引器(无需定制索引代码)
  • 无缝合约升级(+ 开发过程中的自动合约升级)
  • 合约共享状态
  • Optimistic 更新
  • 合约和系统的自动生成类型
  • 与合约状态进行交互的查询语言
  • 用于检查和修改合约和本地状态的数据浏览器
  • 位打包实用工具

未来

  • 本地模拟事务(包括Optimistic状态)
  • 内置支持账户抽象化
  • 合约包管理器

MUD的框架包含8个库文件。

自动草稿

  • SOLECS是MUD的核心Solidity库,包含了链上组件、系统等的接口和参考实现。由于所有状态都存储在组件中,并且所有状态更新都在中心World合约中注册,MUD可以提供开箱即用的网络逻辑,以实现合约和客户端状态的同步。
  • RECS是用TypeScript实现的一种响应式ECS库。它可以独立于任何链上组件使用,但也可以与SOLECS共同使用,以便在客户端上以相同格式镜像链上状态。
  • Services包含了使用上述方法同步链上状态的通用索引器。
  • Network是智能合约和节点做状态同步的库。

基于StarkNet的Dojo在功能上和MUD非常类似,甚至可以认为是用Cairo语言把MUD重新写了一遍,所以不再具体讲解。在MUD的开发者文档中给出了一个具体的例子来教会大家如何在一天时间就能开发出一个全链游戏:Emojimon(表情怪兽)。感兴趣的朋友可以参考这篇官方教程:https://mud.dev/tutorials/emojimon/

基于MUD开发的游戏

Sky Strife

Sky Strife是一个基于MUD构建的链上游戏。游戏以快节奏的实时战略(RTS)战斗为特点,展开一场争夺谁能带着“Ember Crown”逃离战场的激战。

自动草稿

Kamigotchi

Kamigotchi 是一款具有PvP机制的多人在线角色扮演闲置游戏。您可以使用您的Kamigotchi(简称“Kami”)从世界各地散布的节点中收获$KAMI。$KAMI可用于升级您的Kami并购买食物。然而,收获会消耗您的Kami的生命值,当生命值较低时,其他玩家可以使用他们的Kami猎杀您的Kami。您需要保持您的Kami充饥并仔细观察它们以获得最大产出。死亡并不是永久的,核心NFT不受影响,但这会让您付出代价——被杀死的Kami在游戏中无法再次使用,除非使用商店中的某些消耗品复活,当然这需要$KAMI。此外,您的Kami会因为这次经历而心情受挫。

自动草稿

Muddy Forest

Muddy Forest是一款完全基于链上的大型多人在线实时战略太空征服游戏,游戏中的每个动作,从运输、发送资源到占领星球等,都发生在区块链上。

自动草稿

文:JustinZhao

原标题:深度解析全链游戏引擎MUD

风险提示:根据央行等部门发布“关于进一步防范和处置虚拟货币交易炒作风险的通知”,本网站内容仅用于信息分享,不对任何经营与投资行为进行推广与背书,请读者严格遵守所在地区法律法规,不参与任何非法金融行为。本文收集整理自网络,不代表经典网立场,如若转载,请注明出处:https://jingdian230.com/jinse/43887.html

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台用户上传并发布,本平台仅提供信息存储服务。

Special statement: The above contents (including pictures or videos, if any) are uploaded and released by users of the we-media platform. This platform only provides information storage services.

(0)
欧易OKX

欧易OKX

               

欧易OKx是全球三大比特币交易所之一,注册即开最高6万元盲盒,100%中奖!

           官网注册

相关推荐

  • 贷款利率调整:你的房贷负担会减轻吗?

    贷款利率调整:你的房贷负担会减轻吗? 中国人民银行近日宣布将调整贷款利率,对于符合相关条件的存量首套住房贷款,将批量调整利率。这一政策的出台,旨在减轻居民的利息负担。那么,降低存量…

    金色财经 2023年 9月 25日
    131
  • 贷款平台的还款计划与分期付款:轻松规划你的还款生涯

    贷款平台的还款计划与分期付款是借款人在借款过程中必须了解的重要事项。还款计划和分期付款可以帮助借款人更好地规划和管理自己的资金,减轻还款压力,提高资金使用效率。本文将详细介绍贷款平…

    金色财经 2023年 10月 20日
    88
  • 长沙大学生创业可获10万元以下无偿贷款

    现在,大学生成了自主创业的主力军,政府也有不少政策上的扶植。26日,长沙市教育局组织“励志·成材——携手迈向创业成功之路”的创业沙龙,相关职能部门负责人、成功企业家、自主创业大学生…

    金色财经 2023年 6月 13日
    105
  • 金色图览 | Web3游戏周报(3.31-4.6)

    【3.31-4.6】周报概要: 1、链游交易额增长周榜 Top 10 :Gaimin、Bit Hotel、League of Kingdoms、Thetan Arena、Block…

    2024年 4月 9日
    18
  • 车贷已还完 保证金难退

    2012年上半年按期还清了银行车贷,但至今却拿不到贷款时缴纳的还款保证金。市民陈先生近日致电本报表示,因山东海岐投资担保有限公司负责人跑路,而银行方面称没有担保公司出具说明,则无法…

    金色财经 2023年 12月 17日
    119
  • 欧易OKX

    欧易OKX

                   

    欧易OKx是全球三大比特币交易所之一,注册即开最高6万元盲盒,100%中奖!

               官网注册
  • 信用卡可以存钱当储蓄卡吗 信用卡多长时间开卡有效

    对于年轻人来说,手持三五张信用卡是很正常的,毕竟每个月都透支消费。而大家也知道将钱存入银行卡里是有利息的,那么,信用卡可以存钱当储蓄卡吗?一起往下了解下吧。 信用卡可以存钱当储蓄卡…

    2024年 1月 27日
    56
  • 百万医疗保险买了多久生效 是否有等待期呢

    随着人们对健康保障的需求不断增加,百万医疗险成为了越来越多人的选择。但很多人不知道,百万医疗保险买了多久生效?带着疑问一起往下了解下吧。 百万医疗保险买了多久生效? 百万医疗险买了…

    2024年 1月 27日
    58
  • 网贷逾期无力偿还会怎么样?贷款机构将采取五大严格措施

    网贷逾期无力还款,如果客户不想办法解决自己的债务问题,那么就会被贷款机构采取一系列的措施,这些措施都是为了督促客户尽快还款,有些会对客户本身带来比较严重的影响,具体来看贷款机构会对…

    2023年 6月 9日
    101
  • 企业贷款利率或低于5%

    在全国金改的大版图上,深圳前海或将扮演“排头兵”的角色。   近日获悉,前海人民币双向贷款细则有望于12月出台。   市场早已闻风而动。“港资银行招聘人民币跨境…

    金色财经 2023年 10月 17日
    71
  • 年末贷款申请需趁早

    银行信贷扩张随着小微企业对贷款融资的需求的加大而成强弩之末,业内人士分析,无论是企业还是个人,四季度贷款申请应早下手为强。   据数据统计显示,今年小微企业融资需求比去年…

    金色财经 2023年 8月 30日
    89