书名:《在Sui上构筑Capy蓝本》
作者:Alan
在那个去虚拟化的格斗游戏中,玩者购买、买卖、产卵和点缀调皮的哥斯达黎加半水生动物啮齿类Capybaras。Sui合作开发人员能将这里简述的许多准则和标识符示例用于他们自己的工程项目。
作为Sui区块链上的电子电路第一类,Capys展现了资产使用权、可受让性和静态第一类领域等准则。它们与零件一起出现在玩者的手提包里,包括礼帽、脚踏车和领带。现在要自动预览Capys,请到Capy.art。采用Sui Move合作开发Sui Capys需要表述基本组件,建立类型,最重要的是,建立两个系统文件来历史记录和校正Capys。该蓝本的两个独有的机能是能够产卵两个原有Capys,根据产卵对的特征聚合两个全捷伊Capys。要强调的是,这是两个合作开发人员自动预览,以展现Sui的独有方面,供合作开发人员在建立他们的工程项目时参照。Capys是不贩售的。
严格来说新闻稿
那个DApp目前被认为是晚期的Alpha,因此它的式样边沿可能有点结实。 该dApp运行在Sui的合作开发网,没有犁板的适用性和灵活性。 在采用Capys时,有两个未知的Sui手提包买卖历史的严重错误,他们将在下周一推送两个手提包复原流程来解决那个问题。 他们正计划在不久的今后将Capy.art预览为手提包转接器标准。 Sui Capys是两个专门用以鞭策他们合作开发人员街道社区的模拟。这不是两个布署。请负责任地采用水桶,不要向他们的Devnet行业龙头推送流氓软件。
Capy构架
Capy应用流程(Github)由三个组件组成:capy、capy_items和capy_market。那些组件表述了Capys、零件和买卖监督机制。在合作开发操作过程中,他们首先表述了一些具体的准则,以使蓝本变得更让人融洽和有操控性。
以下准则有利于确定构架和实现:
,因此以后能加进捷伊特性。
希望在Sui上构筑格斗游戏和插件的合作开发人员应该从表述譬如那些核心理念概念开始,这将辅导合作开发操作过程。
Capy Core
Capy组件表述了Sui Capys的核心理念机能:它表述了两个Capy类型,以及授予发布者两个CapyManagerCap,为承载者开放管理机能。它表述了CapyRegistry,集中的蓝本状态,以及它的演变方式。
Type: Capy
Capy是插件的主要类型,是两个具有表述的特性集的自有第一类。32个基因和蓝本特征所需的额外实用信息。Capy有两种能力,key和store。前者使其成为可拥有的资产,后者允许自由转移和包装。
gen特性标志着Capy的世代。第一代Capy的基因为gen 0;较捷伊品种有其父母的基因加1为 gen1,因此有了gen1、gen2等等。 src特性使资源管理器能够显示图像。Capys本身并不存储它们的完整图像,因为它是静态的,在加进新工程项目时能改变。 genes特性存储了基因序列,这是两个32字节的向量,用于计算特性和在育种期间为新生儿选择基因。 item_count是两个实用的特性,跟踪附着在每个Capy上的第一类的数量。 attributes特性存储了育种期间产生的人类可读的特性。例如,{ “name”: “pattern”, “value”: “panda” }。
这组字段是Sui Capys机能的最低要求,包括育种或加进/删除 Items。
Type: Capy Registry
CapyRegistry 是育种所需的共享第一类,它存储了曾经出生的Capys的总数,并包含两个伪随机种子,在下面的基因科学部分进行描述,用于育种期间的基因选择。它包含了在育种阶段分配给新生儿的所有特性表述。
捷伊特操控性被加进到蓝本中,如下文管理机能部分所述:
Type: CapyManagerCap
CapyManagerCap是组件发布时推送给组件发布者(发布事务的推送者)的一种机能。它授权所有组件的管理行为,包括capy_items和capy_market。
Initializer
Capys是两个独立的(非通用)插件,因此其主要逻辑可以在组件初始化中启动。init函数做如下两件事:
建立两个CapyManagerCap并将其推送给组件发布者。 建立并共享两个CapyRegistry。
Admin Functions
为了使插件变得可玩并具有一定的意义,管理员必须执行一系列的动作:
add_gene函数在CapyRegistry中注册了两个捷伊GeneDefinition。在育种操作过程中,系统文件中的所有原有特性都被分配给捷伊Capy。如果两个捷伊GeneDefinition(Attribute)被加进到蓝本中,在这次加进之前出生的Capy不会得到它,但他们的孩子会。每个基因表述都有两个名称和一组选择器,用以选择每个特性的值。 batch function允许批量建立带有预表述基因的Capys。它用于初始化,并在后期阶段为新用户填充更多的Capys市场买卖。
Breeding
创造不可预测性和帮助蓝本进化的主要逻辑是capy::breed函数。任何拥有两只卡比的玩者都能执行那个机能。那个函数的逻辑如下:
initions的列表并设置特性。 发出两个带有新Capy数据的事件。 返回两个捷伊Capy(采用breed_and_keep推送至推送者)。
Gene Science
在他们进入应用中最有趣的部分之前,他们必须注意,那个解决方案并不能提供绝对的不可预测性,因此不应该用于高风险的应用。但它确实通过将用户输入变成两个伪随机修改器来创造某种程度的随机性。
那个蓝本的两个真正有趣和独有的机能是能够产卵两个原有的卡比来产生第三个。捷伊Capy会继承其父母的特征。产卵机能需要两个亲代Capys,并计算新生儿的基因。为了使那个动作公平和随机,他们需要有两个选择算法和两个种子。CapyRegistry提供了种子(存储为capy_hash),并在每次产卵后预览。该算法如下:
采用散列函数(sha3_256)三次加盐聚合三个32字节的向量(标记为A、B和C),那些向量来自capy_hash。 采用第两个向量(A)进行亲本基因选择。如果第N个字节的值超过126,则选择第两个父母的基因。否则,选择第二个亲本的基因。如上图所示,第两个基因将是P2,第二个P1,第三个P2,第四个P1再次出现(直到N=32)。 第二个向量(B)表述了两个突变的机会。如果位置N的值超过250,采用第三个向量(C)中的相同位置来选择突变的值。在那个例子中,第三个基因将发生突变,其值将是42。
Capy Items
那个非常简单的组件表述了可以加进到每个Capy的可穿戴物品,以及他们如何实现前端显示。工程项目只能由Capy管理员加进,因为它需要有CapyManagerCap的授权。
Managing Items
在Capys中加进和删除附件时,使用了静态第一类字段,这是一种更有效、更方便的替代Sui中父子第一类的方法。静态字段允许任意的名称,并且能即时加进和删除。下面的标识符将两个工程项目加进到两个Capy中。
Capy Market
为了收购和出售Capys和CapyItems,他们建立了Capy市场。那个组件利用了静态第一类字段,并锁定了支付价格后能获得的物品。在那个市场构架中,每两个工程项目类型存在两个市场第一类,(CapyMarket sells Capys while a different object, CapyMarket, sells Capy accessories)),列表作为静态第一类字段附加到市场,而列出的第一类附加到列表。
+–> Listing –> TCapyMarket +–> Listing –> T +–> Listing –> T
Marketplace and the List Function
每个Marketplace示例只为一种类型服务。在那个应用中,两个Marketplace示例为Capy类型存在,另两个为CapyItem类型存在。
List函数采用了静态字段。它使列出的工程项目成为清单的两个字段,然后使Listing成为CapyMarket的两个Listing字段。
Capy Inspiration
建立Capy蓝本,以展现Sui的一些关键机能,并在他们他们的工程项目中鞭策合作开发人员。Capy利用Sui的面向第一类的特性,允许玩者能买卖和购买的便携式零件,并根据父母的特性聚合捷伊Capy。他们设计的蓝本是能无限扩展的,因此它将采用户和合作开发人员都感到高兴。
他们希望这里的例子和标识符能对Sui的合作开发人员有所帮助。几个突出的实现包括Capy市场、附件和育种。Capy市场能作为任何买卖或存储监督机制的模型。零件展现了对静态字段的良好采用。育种提供了一种独有的手段,能自动聚合具有无限应用的新第一类。