當(dāng)前位置:首頁 > 物聯(lián)網(wǎng) > 區(qū)塊鏈
[導(dǎo)讀] 由ERC 721Token代表的游戲裝備 從 Cryptokitties 開始,目前的以太坊 Dapps 游戲以Token為中心,符合ERC 721標(biāo)準(zhǔn)。 ERC 721Token標(biāo)準(zhǔn)定

由ERC 721Token代表的游戲裝備

從 Cryptokitties 開始,目前的以太坊 Dapps 游戲以Token為中心,符合ERC 721標(biāo)準(zhǔn)。 ERC 721Token標(biāo)準(zhǔn)定義了不FungibleToken元數(shù)據(jù),并將其用作游戲裝備或角色。

例如,在 CryptokitTIes中 ,我們定義了一個連接到ERC 721TokenID的Kitty結(jié)構(gòu)(struct),并在那里存儲了角色的必要參數(shù)。

:kitty.sol

struct Kitty {

uint256 gene;

uint64 birthTIme;

uint64 cooldownEndBlock;

uint32 matronId;

uint32 sireId;

uint32 siringWithId;

uint16 cooldownIndex;

uint16 generaTIon;

}

在Cryptokitteis中 ,此結(jié)構(gòu)中包含的參數(shù)管理由ERC 721Token表示的字符的元數(shù)據(jù)。 各種 Dapps 游戲存在時,符合ERC721Token, 是由擺動到一個單一Token元數(shù)據(jù)和ID來區(qū)分的裝備。

用 Dapp表達 游戲物品

由這種元數(shù)據(jù)的“游戲裝備抽象化”是 Dapps 開發(fā)中非常重要的元素。 在CryptoKitTIes 的示例中,除了作為決定外觀的因素的gene之外,元數(shù)據(jù)還包括關(guān)于交配,父母和世代的信息。 通過在元數(shù)據(jù)中包含這樣的信息,它對應(yīng)于拍賣功能和配對功能,但是將來可能難以添加更多功能。

因此,在 Dapp中 ,可以說在開始時定義的數(shù)據(jù)結(jié)構(gòu)在此之后極大地影響了游戲的發(fā)展。

查看Etheremon 示例,以下結(jié)構(gòu)被定義為表示怪物的結(jié)構(gòu)。

:etheremon.sol

struct MonsterObj {

uint64 monsterId;

uint32 classId;

address trainer;

string name;

uint32 exp;

uint8[] statBases;

uint8[] skills;

uint32 createIndex;

uint32 lastClaimIndex;

uint createTime;

}

例如,在這個 結(jié)構(gòu)中,可以想象 statBases 表示添加了早期怪物參數(shù),技能的技能和參數(shù)。 正如我們在 CryptoKitties 的例子中所證實的那樣 ,開頭定義的元數(shù)據(jù)結(jié)構(gòu)在此之后改變了游戲的可擴展性。

在下文中,我們將考慮ERC 721Token是否能夠正確表示游戲裝備以及ERC 1155Token的有用性,以及它們的示例。

ERC 721代幣可以代表游戲物品嗎?

在符合 ERC 721Token的Dapps 游戲中,游戲物品被表示為Non-Fungible Token ,因此可以逐一區(qū)分它們。 當(dāng)然,對于每個裝備都有自己的屬性或參數(shù)隨用戶開發(fā)而變化的裝備,可以說使用Non-FungibleToken是合適的。

然而,物品如配件的參數(shù)為不變的物品及裝備(如:“草藥”,“劍”,“石子”等等), 這類更準(zhǔn)確的應(yīng)該被分為FungibleToken。 為固有的虛擬代幣提供單獨的元數(shù)據(jù)可以減少游戲裝備的流動性,這可以說是區(qū)塊鏈游戲創(chuàng)新的核心以及在想要節(jié)省數(shù)據(jù)資源的區(qū)塊鏈游戲中會產(chǎn)生多余的情況的一個原因。

我們來舉一個具體的例子。假設(shè)存在不必逐一區(qū)分的“普通的劍”和在游戲中逐個參數(shù)不同的“稀有的劍”。 將前者表示為Fungible,將后者表示為Non FungibleToken是恰當(dāng)?shù)摹?但是,當(dāng)所有物品都被歸類為Non Fungible時,當(dāng)你想要逐一交換“10把普通劍”和“1把稀有劍”,“10把普通劍”時它需要被替換為一把單獨的劍。

因此,在交易時會產(chǎn)生額外的交易成本。 這被認(rèn)為是區(qū)塊鏈游戲中的一大損失,其中交易費是一個大問題。

在這方面,我認(rèn)為需要一個可以代替Non-FungibleToken和FungibleToken的新Token標(biāo)準(zhǔn) ,取代ERC 721標(biāo)準(zhǔn)。 從接下來一張我們開始講述我們計劃采用的ERC1155Token。

ERC 1155標(biāo)準(zhǔn)的概述

為了管理多種Token類型的智能合約的標(biāo)準(zhǔn)接口。 單個ERC 1155Contract可以包括Fungible Token,Non Fungible Token或其他配置(例如,半替代Token)的任何組合。

此標(biāo)準(zhǔn)是一個智能合約界面,可以表示 任意數(shù)量的 Fungible和Non-FungibleToken類型。 現(xiàn)有標(biāo)準(zhǔn)(如ERC-20)要求為每種Token類型部署單獨的Contract。 ERC-721標(biāo)準(zhǔn)中的TokenID是單個非替代索引,這些非替代組被部署為包含整個集合的設(shè)置的單個Contract。 相反,ERC-1155多Token標(biāo)準(zhǔn)允許每個TokenID 表示新的可配置Token類型 。 此Token類型具有自己的元數(shù)據(jù),耗材和其他屬性。

_id參數(shù)包含在每個函數(shù)的參數(shù)中,并指示交易中的特定標(biāo)記或標(biāo)記類型。

諸如ERC-20和ERC-721之類的Token標(biāo)準(zhǔn)要求您為每種類型的Token部署單獨的Contract。 這會在以太坊區(qū)塊鏈中放置大量冗余字節(jié)碼,并將每個TokenContract分成其自己的授權(quán)地址,這也限制了某些功能。 隨著區(qū)塊鏈游戲和支持它們的平臺的出現(xiàn),游戲開發(fā)者可能已經(jīng)創(chuàng)建了數(shù)千種Token類型,并且需要新類型的Token標(biāo)準(zhǔn)來支持它們 。 但是,ERC-1155并非特定于游戲,因此許多其他應(yīng)用程序可以從這種靈活性中受益。

此設(shè)計允許新功能,例如一次傳輸多個Token類型,從而節(jié)省交易成本。 可以在此標(biāo)準(zhǔn)上構(gòu)建多個Token交易(托管/原子交換),從而無需單獨“批準(zhǔn)”單個TokenContract。 在單個Contract中描述和混合多個可替代或不FungibleToken類型也很容易。

ERC1155的規(guī)格

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

· 區(qū)分Fungible和Non Fungible

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

為方便起見,前半部分稱為 TokenId ,后半部分稱為IndexId 。

例如, 通過運行薄荷功能ERC1155, 產(chǎn)生一次FungibleToken,_id 是: 在 mintNonFungible 函數(shù)發(fā)生兩次NonFungibleToken。

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

· FT的負責(zé)人總是0

· FT的 IndexId (后半部分Id)將始終為0000000000000000

· NFT的負責(zé)人總是1

· 每次執(zhí)行 mintNonFungible 函數(shù)時, NFT的 IndexId (下半部分的Id)都會增加。

因此,在 ERC 1155中,F(xiàn)T和NFT之間的區(qū)別在_id的開始(0或1)處執(zhí)行,并且NFT之間的區(qū)別 由后半部分中的 IndexId 執(zhí)行。 當(dāng)然,F(xiàn)T之間沒有區(qū)別。

· 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,可以指定要移動的多個標(biāo)記和值的ID。

也就是說, 可以在單個交易中交換十個FungibleTokenA,一個Non FungibleTokenB和一個Non FungibleTokenC.

如何定義ERC1155Token的元數(shù)據(jù)

如開頭所述,在定義游戲項時如何定義元數(shù)據(jù)結(jié)構(gòu)非常重要。

雖然ERC 1155Token允許以后自由生成Token,但以后無法自由設(shè)置元數(shù)據(jù)。 因此,當(dāng)使用ERC 1155Token作為游戲項時,有必要在開始時仔細設(shè)置元數(shù)據(jù)。

正如我們在前面的示例中看到的, CryptoKitties 元數(shù)據(jù)和 Etheremon 元數(shù)據(jù)是完全不同的。 這是因為 ,雖然 CryptoKitties中沒有所謂游戲中戰(zhàn)斗的概念,但 Etheremon 具有諸如戰(zhàn)斗,技能增長和進化等參數(shù)。 如果您打算創(chuàng)建一個高度可擴展的游戲,例如,以NonFungibleToken示例,將需要同時擁有想要戰(zhàn)斗的裝備(角色)和與戰(zhàn)斗無關(guān)的裝備(例如:怪物和裝備物品)。 此外,一些裝備 (角色)將隨著游戲的進展而增長, 并且一些角色將保持與其初始值不變。 另外,對于FungibleToken,有“收獲”是恢復(fù)裝備,并且還有諸如“劍”和“槍”之類的裝備,這些也會增強裝備技能。

如何設(shè)置可以表達這些差異的抽象元數(shù)據(jù)? 當(dāng)使用ERC 1155Token作為游戲物品時,這一點被認(rèn)為是非常困難的一點。

作為不FungibleERC1 155Token的元數(shù)據(jù),參考ERC 721案例,定義gene和技能等元數(shù)據(jù),并且在具有增長和變化的Token的情況下,適當(dāng)?shù)馗淖冞@些值。有可能通過表達角色的成長

另一方面,在 FungibleToken中, 除了包括在現(xiàn)有ERC 20標(biāo)記中的 totalSupply 和name之類的參數(shù)之外 ,我們認(rèn)為還應(yīng)包括關(guān)于裝備特征,string和 uint 類型的,像skills和effects這樣的信息參數(shù)。

在任何情況下,通過設(shè)置適當(dāng)?shù)脑獢?shù)據(jù),將能夠創(chuàng)建比現(xiàn)有 Dapps 游戲更具有可擴展性和流暢性的游戲。

ERC1155Token元數(shù)據(jù)設(shè)置示例

以下是 使用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;

}

在此示例中 ,設(shè)置元數(shù)據(jù)以支持Non-FungibleToken的名稱,能力,外觀,交配和拍賣等功能。 如果這是現(xiàn)有 Dapp 字符 的 圖像,則上述功能可能不是必需的和充分的。

另一方面, 請將以下內(nèi)容視為FungibleToken。

:fungible.sol

struct FungibleItems {

string name;

uint256 totalSupply;

uint256 itemPrice;

FungibleItemExecInterface tokenContract;

mapping(address =》 uint256) balances;

}

在這里,我們準(zhǔn)備了FungibleToken名稱,總供應(yīng)量,價格,持有量和裝備執(zhí)行界面。

通過設(shè)置 FungibleItemExecInterface ,可以將如草藥和武器之類的Fungible物品抽象化,甚至可以執(zhí)行其物品。

下面是 FungibleItemExecInterface的示例。

:fungibleItemEffect.sol

contract FungibleItemExecInterface {

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

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

}

這里 定義了兩個函數(shù)。 modifyGenes 是一個接收 nonFungibleItem 的gene之后并將修改的gene 返送回去的函數(shù)。

另外,ModifySkills 是接收NonFungibleItem的skills后將修改的skills返送回去的函數(shù)。

通過以這種方式定義界面,可以為更改每個裝備賦予角色的效果。

如果想為每個游戲(例如戰(zhàn)斗或抽獎系統(tǒng))實現(xiàn)獨特的功能,則需要考慮進一步考慮與線下時的合作,但通過設(shè)置如上所述的元數(shù)據(jù),它將適用于多個裝備,更有可能靈活的對應(yīng)。

Dex 與ERC1155Token的兼容

Moldex α版本通過構(gòu)造符合帶有如上所述的ERC1155Token的 Dex 實現(xiàn)更具有靈活性的Token傳輸 。

目前的 ERC 721的 Dex 僅支持Non FungibleToken,但是通過支持包括Fungible Tokens在內(nèi)的ERC 1155標(biāo)準(zhǔn), Moldex 不僅適用于Non Fungible和角色,還適用于“購買10個草藥”這樣Fungible的裝備。 這不僅會增加游戲間的資產(chǎn)轉(zhuǎn)移,還會促進ERC 1155Token的傳播,并有望為 Dapps Games做出進一步的發(fā)展與貢獻 。

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉