当前位置:首页 > 物联网 > 区块链
[导读] 由ERC 721Token代表的游戏装备 从 Cryptokitties 开始,目前的以太坊 Dapps 游戏以Token为中心,符合ERC 721标准。 ERC 721Token标准定

由ERC 721Token代表的游戏装备

从 Cryptokitties 开始,目前的以太坊 Dapps 游戏以Token为中心,符合ERC 721标准。 ERC 721Token标准定义了不FungibleToken元数据,并将其用作游戏装备或角色。

例如,在 CryptokitTIes中 ,我们定义了一个连接到ERC 721TokenID的Kitty结构(struct),并在那里存储了角色的必要参数。

:kitty.sol

struct Kitty {

uint256 gene;

uint64 birthTIme;

uint64 cooldownEndBlock;

uint32 matronId;

uint32 sireId;

uint32 siringWithId;

uint16 cooldownIndex;

uint16 generaTIon;

}

在Cryptokitteis中 ,此结构中包含的参数管理由ERC 721Token表示的字符的元数据。 各种 Dapps 游戏存在时,符合ERC721Token, 是由摆动到一个单一Token元数据和ID来区分的装备。

用 Dapp表达 游戏物品

由这种元数据的“游戏装备抽象化”是 Dapps 开发中非常重要的元素。 在CryptoKitTIes 的示例中,除了作为决定外观的因素的gene之外,元数据还包括关于交配,父母和世代的信息。 通过在元数据中包含这样的信息,它对应于拍卖功能和配对功能,但是将来可能难以添加更多功能。

因此,在 Dapp中 ,可以说在开始时定义的数据结构在此之后极大地影响了游戏的发展。

查看Etheremon 示例,以下结构被定义为表示怪物的结构。

:etheremon.sol

struct MonsterObj {

uint64 monsterId;

uint32 classId;

address trainer;

string name;

uint32 exp;

uint8[] statBases;

uint8[] skills;

uint32 createIndex;

uint32 lastClaimIndex;

uint createTime;

}

例如,在这个 结构中,可以想象 statBases 表示添加了早期怪物参数,技能的技能和参数。 正如我们在 CryptoKitties 的例子中所证实的那样 ,开头定义的元数据结构在此之后改变了游戏的可扩展性。

在下文中,我们将考虑ERC 721Token是否能够正确表示游戏装备以及ERC 1155Token的有用性,以及它们的示例。

ERC 721代币可以代表游戏物品吗?

在符合 ERC 721Token的Dapps 游戏中,游戏物品被表示为Non-Fungible Token ,因此可以逐一区分它们。 当然,对于每个装备都有自己的属性或参数随用户开发而变化的装备,可以说使用Non-FungibleToken是合适的。

然而,物品如配件的参数为不变的物品及装备(如:“草药”,“剑”,“石子”等等), 这类更准确的应该被分为FungibleToken。 为固有的虚拟代币提供单独的元数据可以减少游戏装备的流动性,这可以说是区块链游戏创新的核心以及在想要节省数据资源的区块链游戏中会产生多余的情况的一个原因。

我们来举一个具体的例子。假设存在不必逐一区分的“普通的剑”和在游戏中逐个参数不同的“稀有的剑”。 将前者表示为Fungible,将后者表示为Non FungibleToken是恰当的。 但是,当所有物品都被归类为Non Fungible时,当你想要逐一交换“10把普通剑”和“1把稀有剑”,“10把普通剑”时它需要被替换为一把单独的剑。

因此,在交易时会产生额外的交易成本。 这被认为是区块链游戏中的一大损失,其中交易费是一个大问题。

在这方面,我认为需要一个可以代替Non-FungibleToken和FungibleToken的新Token标准 ,取代ERC 721标准。 从接下来一张我们开始讲述我们计划采用的ERC1155Token。

ERC 1155标准的概述

为了管理多种Token类型的智能合约的标准接口。 单个ERC 1155Contract可以包括Fungible Token,Non Fungible Token或其他配置(例如,半替代Token)的任何组合。

此标准是一个智能合约界面,可以表示 任意数量的 Fungible和Non-FungibleToken类型。 现有标准(如ERC-20)要求为每种Token类型部署单独的Contract。 ERC-721标准中的TokenID是单个非替代索引,这些非替代组被部署为包含整个集合的设置的单个Contract。 相反,ERC-1155多Token标准允许每个TokenID 表示新的可配置Token类型 。 此Token类型具有自己的元数据,耗材和其他属性。

_id参数包含在每个函数的参数中,并指示交易中的特定标记或标记类型。

诸如ERC-20和ERC-721之类的Token标准要求您为每种类型的Token部署单独的Contract。 这会在以太坊区块链中放置大量冗余字节码,并将每个TokenContract分成其自己的授权地址,这也限制了某些功能。 随着区块链游戏和支持它们的平台的出现,游戏开发者可能已经创建了数千种Token类型,并且需要新类型的Token标准来支持它们 。 但是,ERC-1155并非特定于游戏,因此许多其他应用程序可以从这种灵活性中受益。

此设计允许新功能,例如一次传输多个Token类型,从而节省交易成本。 可以在此标准上构建多个Token交易(托管/原子交换),从而无需单独“批准”单个TokenContract。 在单个Contract中描述和混合多个可替代或不FungibleToken类型也很容易。

ERC1155的规格

以下 说明基于EIP1155的ERC1155Token所要求的特征部分。

· 区分Fungible和Non Fungible

Contract中使用的_id是uint256,前半部分和后半部分可以除以128位。

为方便起见,前半部分称为 TokenId ,后半部分称为IndexId 。

例如, 通过运行薄荷功能ERC1155, 产生一次FungibleToken,_id 是: 在 mintNonFungible 函数发生两次NonFungibleToken。

也就是说,它具有以下特征。

· FT的负责人总是0

· FT的 IndexId (后半部分Id)将始终为0000000000000000

· NFT的负责人总是1

· 每次执行 mintNonFungible 函数时, NFT的 IndexId (下半部分的Id)都会增加。

因此,在 ERC 1155中,FT和NFT之间的区别在_id的开始(0或1)处执行,并且NFT之间的区别 由后半部分中的 IndexId 执行。 当然,FT之间没有区别。

· Token的移动

:erc1155Spec.sol

//移动多个Token

function safeBatchTransferFrom(address _from, address _to, uint256[] calldata _ids, uint256[] calldata _values, bytes calldata _data) external;

//移动Token

function safeTransferFrom(address _from, address _to, uint256 _id, uint256 _value, bytes calldata _data) external;

正如上面提到的,ERC1155Token, 除了safeTransferFrom, 支持功能还提供了safeBatchTransferFrom。 在这里,使用uint256 [] _ ids,uint256_value,可以指定要移动的多个标记和值的ID。

也就是说, 可以在单个交易中交换十个FungibleTokenA,一个Non FungibleTokenB和一个Non FungibleTokenC.

如何定义ERC1155Token的元数据

如开头所述,在定义游戏项时如何定义元数据结构非常重要。

虽然ERC 1155Token允许以后自由生成Token,但以后无法自由设置元数据。 因此,当使用ERC 1155Token作为游戏项时,有必要在开始时仔细设置元数据。

正如我们在前面的示例中看到的, CryptoKitties 元数据和 Etheremon 元数据是完全不同的。 这是因为 ,虽然 CryptoKitties中没有所谓游戏中战斗的概念,但 Etheremon 具有诸如战斗,技能增长和进化等参数。 如果您打算创建一个高度可扩展的游戏,例如,以NonFungibleToken示例,将需要同时拥有想要战斗的装备(角色)和与战斗无关的装备(例如:怪物和装备物品)。 此外,一些装备 (角色)将随着游戏的进展而增长, 并且一些角色将保持与其初始值不变。 另外,对于FungibleToken,有“收获”是恢复装备,并且还有诸如“剑”和“枪”之类的装备,这些也会增强装备技能。

如何设置可以表达这些差异的抽象元数据? 当使用ERC 1155Token作为游戏物品时,这一点被认为是非常困难的一点。

作为不FungibleERC1 155Token的元数据,参考ERC 721案例,定义gene和技能等元数据,并且在具有增长和变化的Token的情况下,适当地改变这些值。有可能通过表达角色的成长

另一方面,在 FungibleToken中, 除了包括在现有ERC 20标记中的 totalSupply 和name之类的参数之外 ,我们认为还应包括关于装备特征,string和 uint 类型的,像skills和effects这样的信息参数。

在任何情况下,通过设置适当的元数据,将能够创建比现有 Dapps 游戏更具有可扩展性和流畅性的游戏。

ERC1155Token元数据设置示例

以下是 使用ERC1155的游戏道具的示例。 例如,以下的Non FungibleToken为例。

:nonFungible.sol

struct NonFungibleMetaData {

uint256 id;

uint256 genes;

uint8[] skills;

string name;

uint256 winCount;

uint256 papaId;

uint256 momId;

uint256 saleDuration;

bool isOnSale;

}

在此示例中 ,设置元数据以支持Non-FungibleToken的名称,能力,外观,交配和拍卖等功能。 如果这是现有 Dapp 字符 的 图像,则上述功能可能不是必需的和充分的。

另一方面, 请将以下内容视为FungibleToken。

:fungible.sol

struct FungibleItems {

string name;

uint256 totalSupply;

uint256 itemPrice;

FungibleItemExecInterface tokenContract;

mapping(address =》 uint256) balances;

}

在这里,我们准备了FungibleToken名称,总供应量,价格,持有量和装备执行界面。

通过设置 FungibleItemExecInterface ,可以将如草药和武器之类的Fungible物品抽象化,甚至可以执行其物品。

下面是 FungibleItemExecInterface的示例。

:fungibleItemEffect.sol

contract FungibleItemExecInterface {

function modifyGenes(uint256 _gene) external returns(uint256);

function modifySkills(uint8[] _skills) external returns(uint8[]);

}

这里 定义了两个函数。 modifyGenes 是一个接收 nonFungibleItem 的gene之后并将修改的gene 返送回去的函数。

另外,ModifySkills 是接收NonFungibleItem的skills后将修改的skills返送回去的函数。

通过以这种方式定义界面,可以为更改每个装备赋予角色的效果。

如果想为每个游戏(例如战斗或抽奖系统)实现独特的功能,则需要考虑进一步考虑与线下时的合作,但通过设置如上所述的元数据,它将适用于多个装备,更有可能灵活的对应。

Dex 与ERC1155Token的兼容

Moldex α版本通过构造符合带有如上所述的ERC1155Token的 Dex 实现更具有灵活性的Token传输 。

目前的 ERC 721的 Dex 仅支持Non FungibleToken,但是通过支持包括Fungible Tokens在内的ERC 1155标准, Moldex 不仅适用于Non Fungible和角色,还适用于“购买10个草药”这样Fungible的装备。 这不仅会增加游戏间的资产转移,还会促进ERC 1155Token的传播,并有望为 Dapps Games做出进一步的发展与贡献 。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭