区块链:基础设施是游戏发展的关键(二):初探新框架—Action Registry Core

如何将传统游戏开发中的经验应用到区块链游戏中?由ECS架构所启发,JumpCrypto提出了一种新框架ARC,为全链游戏和资产上链的游戏提供了高效、可重用、易扩展和跨链互操作的支持,让Web3游戏开发更加轻松。

概述

在上一篇文章中,我们讨论了三种链上游戏类型,分别是:完全上链,资产上链,和可选资产铸造。回顾一下,由于目前缺乏支持FOC和OCA的基础设施,大多数游戏工作室选择了OCM方法,以避免给用户带来太多的阻力。在接下来的几篇文章中,我们将重点介绍一些可能支持FOC和OCA的基础设施,以及每个部件在实际应用中可能的设计方案。

首先需要的基础设施是——一个能够高效管理链上资产和游戏状态的系统。定义资产在链上的操作方式对资产可编程性有着实质性的影响。为了更好地了解这样的系统可能会是什么样子,我们决定自己开发一个链上游戏。同时,我们很快发现,当游戏的规模扩大时,基于面向对象编程的传统方法会遇到可扩展性的挑战,因为资产依赖关系会随着游戏规模的扩大呈现出线性的增长。

因此,我们决定尝试使用数据驱动的设计模式,这些模式在传统游戏开发中已被广泛使用,但在链上的实践很少。通过这个过程,我们在Solana上尝试了一个名为ARC的框架,我们认为这是管理链上资产和游戏逻辑最有效的方法之一。传统游戏开发中常用到一种数据驱动的架构模式是实体组件系统(EntityComponentSystem,ECS),ARC正是由ECS所启发构建的。

欧盟中国科技委员会授权xNFT Protocol建设欧中NFT数字藏品合作项目:2021年7月19日,欧盟中国科技委员会正式批准并授权xNFT Protocol建设欧中NFT数字藏品合作项目,以促进欧中之间的文化与经济交流,推进相关产业的发展。

欧盟中国科技委员会是按照欧盟宪法与欧盟成员国法律法规成立的非政府组织(NGO),总部设在西班牙,旨在《中欧投资协定》的框架下建立集中欧盟与中国双边政府、国际组织、创新及科研机构、科学家、科技园区与其他产业服务机构的科技创新平台,逐步建立中欧科技产业与投资互信机制,促进双边技术的转移与转化。其发起单位包括:西班牙科技园协会(PTA)、欧盟Finnova基金会、欧洲技术商会(EUTEC)、欧洲商业峰会(EBS)、欧洲临床试验基础平台(ECRIN)、巴克莱银行(Barclays)、西班牙国家研究委员会(CSIC)、西班牙大学联盟等。西班牙科技园协会主席Felipe Romera Lubias为委员会主席,欧盟Finnova基金会总干事Juanma Revuelta为委员会副主席。[2021/7/21 1:07:50]

在本文中,我们将介绍ECS的工作原理、它在传统游戏中为什么如此重要、如何将这种理念扩展到构建类似ARC的框架,以及可能的底层架构。

欧盟议会收到要求建立加密犯罪受害者基金的请愿书:一份递交给欧盟议会的请愿书希望说服欧盟为加密货币犯罪的受害者提供财政支持。律师Jonathan Levy周三提交了这份请愿书,寻求实施一项“补偿受害者的监管计划”,这些受害者因欺诈、黑客攻击和敲诈勒索而被窃取了数字资产。到目前为止,已有44名支持者在请愿书上签名。Jonathan Levy希望欧盟对加密货币交易收取每欧元0.0001分的费用,这些交易将被纳入一个“受害者超级基金”。(Coindesk)[2021/1/15 16:15:41]

我们的目标是为开源研究做出贡献,并帮助推动链上游戏基础设施的发展。秉着这种精神,我们决定开源ARC参考实现,并欢迎社区给予任何反馈。

ARCGitHub链接:

传统游戏开发中的ECS是什么?

ECS是近年来广泛应用于视频游戏的一种架构。与经典的面向对象编程相比,ECS可以将数据与行为分离,因此在视频游戏领域具有一定优势。在传统的Web2游戏中,它可以帮助提高游戏性能,同时在开发游戏本身时,也能更好地控制游戏逻辑。

了解传统OOP方法在面对多个依赖关系时的局限性,可以更好地帮助理解ECS的优势。

OOP面临的挑战-钻石继承问题

欧盟首席经济部长:欧洲必须成为数字金融的主要规则制定者之一:欧盟正在准备拟定一种新的加密货币监管制度,其中可能包括对Libra等“全球稳定币”项目的更严格要求。据欧盟的首席经济部长Valdis Dombrovskis在6月26日的演讲中表示,欧洲必须抓住机会成为数字金融的主要规则制定者之一,而加密货币和区块链技术将会成为欧盟第一个测试的案例。据此前报道,今年三月欧盟委员会(European Commission)已经开始收集来自欧盟公民、企业、监管机构和其他利益相关方的反馈,以便在欧洲层面上建立加密资产和市场的监管框架。从去年12月开始的公众谘询将持续至2020年3月19日,最终定稿预计将于第三季度确定,目前三季度即将到来,因此该加密货币监管制度也呼之欲出了。据悉欧盟数字金融战略的三个主要领域:1、深化数字金融服务的单一市场;2、促进数据驱动的金融部门;3、在保持技术中立的同时激发创新。[2020/6/29]

假设我们正在构建一个非常简单的游戏,具有以下属性:

三个实体:i)Mammal,ii)Fish,iii)Amphibian

Mammal可以在陆地上呼吸,但不能在水里呼吸

Fish可以在水里呼吸,但不能在陆地上呼吸

动态 | 荷兰欧盟委员会代表:荷兰区块链初创公司发展氛围很好:在2019年ANON区块链峰会上,荷兰欧盟委员会代表Jolanda ter Maten接受采访时表示,区块链初创公司气氛非常好,有一些大企业已真正开始进入区块链,如Rabobank,荷兰银行也正在进入区块链领域。但同时对于大规模采用,Jolanda ter Maten表示,人们需要更多地了解区块链,区块链是什么以及如何以开放的心态帮助其发展,这一点也很重要。[2019/5/1]

Amphibian既可以在水里呼吸,也可以在陆地上呼吸

在传统的OOP中,Mammal可以作为一个实体,继承自基类LandBreather,Fish可以作为一个实体,继承自基类WaterBreather。在这里,我们遇到了Amphibian的挑战,它既具有LandBreather的属性,又具有WaterBreather的属性,但不能同时继承两者。在经典的面向对象编程中,这被称为“钻石继承问题或菱形继承问题”。这个问题在游戏中比其他应用更为普遍,因为游戏角色、物品和资产的数量随着特征和依赖关系的增加而增加。虽然存在一些变通方法,但对于游戏来说,我们认为ECS是最优雅的解决方案。

ECS作为一种解决方案

基于ECS的游戏具有以下特性:

金色财经独家分析 “如果区块链诞生在欧盟成立前”的猜想:试想如果区块链诞生在1990年代前,欧盟会是什么样子?日前来自欧盟的多条关于区块链的消息让笔者开始思考这样的问题,欧盟数据保护条例、区块链打击假新闻、欧洲议会五个方面监管数字货币等等举措,引人思考欧盟与区块链的内在联系。区块链是世界性的,欧盟也是打破国界的,其“促进和平,追求公民富裕生活,实现社会经济可持续发展,确保基本价值观,加强国际合作”的目标或许恰巧与区块链不谋而合,欧洲从经济到文化、等多方面的一体化,已经践行着区域经济一体化的构想。

如果区块链诞生在欧盟之前,也许这项技术可以从一开始就融入欧盟的框架中,那么:1、欧元也许已经成为欧洲唯一加密法币;2、各国经济数据将因区块链而变得更加透明从而货币政策的针对性更强,欧盟各国的经济协调将更为密切,因而经济差距也将缩小。如果欧盟曾经是一个区块链的世界,欧债危机可能会被更有效的预测或避免,欧盟各国经济差距的缩小或许不会有现在的英国脱欧。

虽然欧盟成立之初互联网才刚刚开始普及,欧元诞生之时互联网泡沫刚刚破裂,比特币进入人们视野的那几年欧盟几乎完成了扩张,一切都看似“年代错位”。猜想只是猜想,今时今日区块链技术背景下的欧洲却或许可借助区块链技术,再次巩固和振兴欧洲经济,虽然看似多中心化的理念与区域一体化稍显矛盾,但欧盟却有望将二者完美结合。[2018/5/14]

Entity-组件的唯一标识或容器

Component-不具备行为的纯数据类型,可以“挂载”到实体上

System-与具有一定组件集合的实体匹配的函数

实体可以包含零个或多个组件。通过使用系统,实体可以动态地添加/删除/修改其组件。

为了了解ECS如何解决游戏中OOP面临的限制,我们可以使用ECS解决上面举例遇到的问题。在ECS模式下,我们会创建两个组件:LandBreather和WaterBreather。系统LandBreatherSystem处理具有LandBreather组件的任何实体的移动,而系统WaterBreatherSystem处理具有WaterBreather组件的任何实体的移动。实体可以如下所示:

Mammal:

Fish:

Amphibian:

然后,您可以动态地为实体添加更多组件,例如Fly或Fight,并且也可以在它们下面创建具有不同组件的更多实体。

什么是ARC?

ARC是一个受传统ECS架构启发的链上信息组织框架。与ECS一样,ARC有用于组件的无数据容器——实体,以及可以“挂载”到实体上的无行为的纯数据类型——组件。

与ECS不同的是,ARC有可以针对特定组件执行的“操作”,而不是“系统”。主要区别在于,传统ECS中的系统是围绕传统游戏中使用的基于循环的架构构建的,而ActionBundles则考虑到了区块链架构是基于推送的。这里概述的ARC的具体实现是针对Solana生态系统的,但其他生态系统中也可以使用类似的架构。ARC的基本架构是一个分为三层的洋葱架构。首先,要有负责维护注册表和实体的核心层。其次,有各种注册表合约,它们负责维护组件和操作的注册表以及治理功能。最后,需要有游戏或修改组件的操作合约。

核心层

核心层负责以下三件事:

初始化新的注册表实例

以NFT或独立实体PDA的形式铸造新实体

维护与实体相关的SerializedComponents

链上只需要存在一个核心程序,因为通过注册表实例,我们可以将不同的组件、实体和规则进行分桶。在EVM链上,这种方法可能行不通,因为每个合约的合约存储有限,所以最好启用多个核心。

具体在Solana中,实体结构类似于为每个MetaplexNFT生成的Metaplex元数据。一个显著的区别是在给定代币上的每个注册表实例都有一个新的实体映射。这意味着一个代币,理论上可以有多个实体,只要它们属于不同的注册表。

这种行为模式是否“优于”一个代币一个实体,这是一个尚待解答的问题。因为核心只处理序列化组件,所以它不需要担心如何反序列化任何东西。这意味着所有反序列化逻辑可以推给游戏或操作层。

注册表实例是赋予注册表及其实例ID的唯一标识。不同的实例有助于在同一核心中实例化不同的“游戏”,从而允许在给定的一组组件和操作中重复使用相同的注册表管理代码——只允许实体不同的实例化。

注册表

注册表程序基本上是一个治理合约。它记录以下内容:

通过SchemaURL注册的组件。

可以修改给定注册表实例的特定组件的已注册操作。

创建新注册表实例的能力。

例如,它可能规定只有管理员才能创建新的注册表实例,或者将该权限交给DAO。

同样适用于用其注册的任何组件。例如,假设给定的游戏X中,存在一个移动操作,允许玩家以每秒1个格子的速度将棋子从一个格子移动到另一个格子。另一个团队来创建“Portals”,在这个注册表中允许更快的移动。要允许Portals操作能够修改单位上的“位置”组件,需要注册表的治理来投票决定是否允许这种规则的改变。例如,它们可能允许特定的注册表实例。

组件的更新权限在注册表这里,因为Actions只是向注册表提交其建议的更改,然后注册表检查治理,将更改提交给核心来修改实体。关键的是,Actions不需要是链上游戏。它们可以是链下游戏基础设施,如预言机,向游戏DAO控制的链上资产层提交更改。

TheActionBundles

Actions是链上或链下代码,具有以下能力:

读取实体PDA并反序列化它们认为有价值的组件。

修改并提交更改后的序列化组件给到注册表,以便与实体一起更新。

特定于应用程序的Actions代码允许游戏的“分层”。例如,可能存在“目标:山丘之王”和“目标:击败”两个Actions,可能可以玩三种游戏。可以实例化一个注册表实例,该实例仅允许第一个Action、第二个Action或两者都处于活跃状态并允许对组件进行更改。

ARC对链上游戏的帮助

对于FOC和OCA类型的游戏来说,ARC具有几个优点,包括:

模式更改的同时,保持向后兼容性。

由于实体可以容纳动态组件,因此可以同时维护组件的v1和v2版本。

这允许旧应用程序可以进行查询,而不会丢失操作支持。

效率-由于实体的大小由它们所拥有的组件决定,因此它们的大小只有在需要时才会变大。

可重复性-由于基础实现非常简单,因此可以在各种生态系统中轻松使用相同的实现。

熟悉性-Web2游戏公司对这个框架也会更加熟悉。

模块化-随着需求的变化,可以模块化地添加新的属性/行为。

可扩展性-链上资产层对于那些使用链上资产的混合游戏以及全链游戏都很有用。

跨链可访问性-简单的跨链序列化框架和跨链身份框架可以简化应用程序向其他链的移植。接下来的文章中将详细介绍。

总结

总的来说,ActionRegistryCore是一个用于管理游戏链上资产层的框架,支持全链游戏和利用链上资产的游戏。这种架构提供了可扩展性,随着游戏资产数量和相互依赖性的增加,可以避免面向对象编程方法可能带来的技术债务。在接下来的文章中,我们将深入探讨基于ARC的链上游戏后端的使用情况,并探索完成堆栈所需的其他基础设施。

作者:DevBharel&ShanavKMehta

编译:Leia

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

链链资讯

[0:0ms0-4:648ms