文字:JustinZhao
原标题:深度剖析全链条游戏引擎MUD
传统游戏引擎游戏引擎是用于开发和创建电子游戏的软件框架。包含了很多游戏开发所需的核心功能。对于传统的Web2游戏,一般包括渲染引擎、音频处理、物理模拟和动画系统。通过使用游戏引擎,开发人员可以专注于游戏设计和创意,而无需从头开始构建整个技术基础架构。游戏引擎为游戏开发者降低开发成本和时间提供了一个快速有效的工具。
有很多知名的Web2游戏引擎,比如Unity、虚幻引擎、Godot等。这些引擎不仅适合专业开发者,也适合独立开发者和初学者。游戏引擎是高度可定制的,可以根据项目的需要进行调整。它们通常支持跨平台开发,允许开发人员为各种设备(如个人电脑、游戏机和移动设备)创建游戏。此外,许多引擎还提供对虚拟现实(VR)和增强现实(AR)的支持,以满足不断发展的技术需求。游戏引擎还包含一套丰富的工具,可以帮助开发人员轻松创建游戏世界、角色和对象。这些工具有助于实现高效的游戏开发流程,如可视化场景编辑器、脚本编辑器、动画和特效工具。
全链条游戏引擎游戏引擎在游戏开发中起着至关重要的作用。对于全链条游戏,还需要一个能够帮助开发者快速部署游戏逻辑的工具。这不仅可以缩短开发周期,还可以为后续的迭代开发和开放生态中的互操作提供统一的数据标准。
在这个领域,比较成熟的项目是由Lattice Studio开发的基于Solidity的全链条游戏引擎MUD。它使开发者能够快速将游戏逻辑部署到智能合约中,实现合约与客户端状态的同步,从而显著提高开发效率。
值得注意的是,目前StarkNet的Cairo除了扎实之外,也是通用语言。但是,MUD与Cairo并不十分兼容。因此,StarkNet生态系统中两个活跃项目Realms和Briq的创始人共同开发了基于Cairo的全链引擎Dojo。由于道场的核心理念与MUD相似,引起了MUD创始人鲁登斯的不满。不过,经过一番争论,鲁登斯最终表示愿意帮助StarkNet部署MUD。
开发基于ECS架构的游戏引擎的最大问题是如何表示游戏对象,这些对象可以是没有控制或交互的简单2D图像,也可以是具有控制、声音、动画和AI的极其复杂的3D对象。从概念上来说,很容易将游戏对象理解为一个代表游戏中多种功能的实体。最初的面向对象架构改成了OOP,现在更流行ECS(实体组件系统)。
ECS通过分离逻辑、数据和实体,提高了游戏开发的灵活性和可维护性。这种架构模式有助于降低代码复杂度和耦合度,从而提高性能和开发效率。ECS由以下三个主要部分组成:
实体:实体是游戏世界中的基本对象,如角色、道具或场景对象。实体本身不包含任何数据或逻辑,而只包含唯一的标识符,用于关联组件和系统。组件:组件用于存储实体的属性和数据。每个组件负责表示特定的特征或功能,例如位置、速度或健康值。组件只包含数据,不包含任何逻辑。通过组合不同的组件,您可以轻松地创建具有各种功能和特征的实体。系统:系统负责处理游戏逻辑和行为。系统根据实体拥有的组件执行相应的操作。例如,处理运动的系统将寻找具有位置和速度成分的实体,并根据其速度更新位置。系统独立于实体和组件,使得游戏逻辑更加模块化和可重用。ECS模式有助于解决传统面向对象编程(OOP)在游戏开发中的一些问题,如继承层次太深、代码重用困难等。ECS使游戏对象的构造更加灵活,可以通过组合不同的组件轻松创建复杂的行为。此外,ECS还有助于优化性能,尤其是在处理大量游戏对象时。许多现代游戏引擎,如Unity和Godot,都采用了ECS作为其核心架构。
全链游戏与Web2游戏甚至常见的GameFi游戏有很大不同(游戏资产有伤口但游戏本身没有伤口)。比如编程语言中经常使用Solidity,游戏对象的属性状态存储在智能合约中,导致面向对象编程完全不可用,采用ECS架构。
再来看坚固性。事实上,我们已经无意识地使用了这种模式的变体。以ERC-20契约为例:ERC-20契约将每个地址的令牌余额存储在一个映射中(从地址到uint256余额)。我们可以把每个ERC-20合约看作一个有两列的表格:& # 8221;地址& # 8221;还有& # 8221;天平& # 8221;。这相当于具有单一模式值(& # 8221;天平& # 8221;)组件。表格中的每一行都是一个实体(& # 8221;地址& # 8221;)和一个组件值(& # 8221;天平& # 8221;).一个地址可以在许多独立的ERC 20合约中保持平衡,这对应于与许多独立组件值相关联的实体。在当前的ERC-20参考实现中,状态和逻辑耦合在同一个契约中。在ECS中,我们将有一个通用& # 8221;转移系统& # 8221;通过修改存储在令牌组件中的状态,处理将令牌从一个地址传输到另一个地址的逻辑。
另一个例子是一个简单的视频游戏,可用的组件是& # 8221;位置& # 8221;还有& # 8221;人生价值& # 8221;。具有位置的实体在位置组件中有一个条目,具有健康值的实体在健康值组件中有一个条目。”移动系统& # 8221;可以实现将实体从一个位置移动到另一个位置的规则。”战斗系统& # 8221;战斗逻辑可以根据涉及真实* *放置的规则实现,可以修改实体的生命值。
MUD游戏引擎MUD是一个以太坊应用框架。它的核心是一组契约接口和使用它们的约定。这些核心接口和库使得一系列的外围工具、集成和库能够更加顺畅的进行,从而使得链应用的开发更加简洁。
泥浆可以实现以下功能
现在
同步契约和客户端之间的状态,无需定制网络代码的通用索引器(无需定制索引代码)。无缝合同升级(开发过程中的自动合同升级)。最佳合同共享状态。更新合同和系统的自动生成类型。与合同状态交互的查询语言。用于将来检查和修改合同和本地状态的数据浏览器位打包实用程序。
本地模拟事务(包括最优状态)内置合约包管理器MUD支持账户抽象的框架包含8个库文件。
SOLECS是MUD的核心Solidity库,包含了链上组件和系统的接口和参考实现。由于所有状态都存储在组件中,所有状态更新都注册在中央世界契约中,因此MUD可以提供开箱即用的网络逻辑来实现契约和客户端状态的同步。RECS是一个用TypeScript实现的响应性ECS库。它可以独立于链上的任何组件使用,但也可以与SOLECS一起使用,以相同的格式在客户端上镜像链上的状态。服务包含一个通用索引器,它使用上述方法来同步链上的状态。网络是智能契约和节点同步其状态的库。基于StarkNet的Dojo在功能上和MUD非常相似,甚至可以认为MUD是用Cairo语言改写的,就不详细解释了。MUD的开发者文档中给出了一个具体的例子,教你如何在一天内开发出一款全链条游戏:Emojimon。感兴趣的朋友可以参考这个官方教程:https://mud.dev/tutorials/emojimon/.
基于MUD开发的游戏Sky StrifeSky Strife是一款基于MUD打造的网络游戏。游戏以快节奏的即时战略(RTS)战斗为特点,展开了一场谁能凭借“烬冠”逃离战场的激烈战斗。
KamigotchiKamigotchi是一款多人在线角色扮演闲置游戏,有PvP机制。你可以用你的Kamigotchi(简称“Kami”)从分散在世界各地的节点中收获$KAMI。$Kami可以用来升级你的Kami和购买食物。但是,收割会消耗你的卡米的生命值。当生命值低时,其他玩家可以用他们的卡米来猎杀你的卡米。你需要让你的卡米保持饥饿,并仔细观察他们,以获得最大的输出。死亡不是永久的,核心NFT也不会受到影响,但会让你付出代价——被杀死的卡米不能在游戏中再次使用,除非用商店里的一些消耗品复活,当然这需要$KAMI。另外,你的卡米会因为这次经历而受挫。
泥泞的森林泥泞的森林是一个大型多人在线实时战略游戏的基础上链。游戏中的每一个动作,从运输和发送资源到占领星球,都发生在区块链上。
本网站声明:网站内容来源于网络。如有侵权,请联系我们,我们会及时处理。
温馨提示:注:内容来源均采集于互联网,不要轻信任何,后果自负,本站不承担任何责任。若本站收录的信息无意侵犯了贵司版权,请给我们来信,我们会及时处理和回复。
原文地址"全球游戏链,全球游戏链ggc":http://www.ljycsb.cn/qukuailian/222368.html。

微信扫描二维码投放广告
▲长按图片识别二维码