当前位置: 代码网 > 科技>区块链>区块链技术 > 如何在技术上为传统游戏开发者创造更好的GameFi链游环境

如何在技术上为传统游戏开发者创造更好的GameFi链游环境

2024年04月25日 区块链技术 我要评论
如何让开发者开发出更好的GameFi链游?如何在技术上为传统游戏开发者创造更好的环境?链游的可玩性普遍不高,趣味性不足,更偏向于金融投机,在投机回报下降后,用户规模会迅速萎缩...

如何在技术上为传统游戏开发者创造更好的环境?自上一轮周期中axie和stepn横空出世以来,gamefi和全链游戏始终是区块链行业的热点之一,这一全新的游戏模式在区块链技术之上,在玩家资产所有权、价值转移与游戏内经济体系、规则透明化及社区治理方面,带来了传统游戏平台从未实现的独特体验。这些愿景听起来虽然美好,但却面临着一个始终没有解决的问题:

链游的可玩性普遍不高,趣味性不足,更偏向于金融投机,在投机回报下降后,用户规模会迅速萎缩。

显然这与传统游戏的发展模式背道而驰。传统游戏的顺利发展,往往是靠着游戏机制的趣味性,能吸引到大量用户,同时游戏的开发者可以建立起良好的盈利路径,还可能因自身的影响力拓展出一系列的周边与ip。可以说,那些成功运营下来的传统游戏,其整个系统是正循环的,玩家可以体验到游戏的乐趣,往往也可以在游戏内和游戏外获得一定的经济利益。

相比之下,目前的链游更多是靠着单纯的回报率来吸引玩家。除了可玩性弱以外,web3游戏还面临着使用门槛高、交互流程繁琐等老生常谈的问题。

这一切的根源是什么?不同的人有不同的看法。tabichain团队认为,影响web3游戏的一个重要因素,是优秀的传统游戏开发者因为技术和学习成本问题,难以进入web3生态。对于那些不了解游戏或软件开发的人来说,从web2到web3只是换了一种叙事和环境而已,但实际情况远比想象中恶劣的多。

那么我们该如何通过技术实现,为传统的游戏开发者或相关厂商,缔造一种更友好的环境?下文中,我们将从多个方面,对web3游戏面临的问题,及对应的解决方案进行全面解析,为大家阐述未来的web3游戏业该如何在技术上更适配传统游戏从业者。

阻碍传统游戏开发者进入web3生态的技术原因

在前文中,我们曾简单提到,技术不友好以及学习成本的高昂,是阻碍传统游戏从业者进入web3生态的核心因素,所谓的技术不友好和学习成本高昂,可以展开为以下几点:

1.web3应用与传统软件结构的不同

区块链和其上的应用(dapps)与传统软件架构有着本质不同,要求开发者具备全新的知识体系,如区块链的工作原理、共识协议、智能合约编程模型等。传统的游戏开发者需要花费大量时间来学习solidity或其他智能合约语言,需要理解evm的工作方式。

而且,传统的游戏逻辑通常在中心化的服务器上执行,可以灵活处理复杂的游戏状态和高频交互。在区块链上运行游戏逻辑则需要高度简化或重构,因为每个操作都要发布到分布式网络中执行,然后再上链,这受到区块链性能和成本的严重限制。

2.智能合约的设计限制

evm虽然满足图灵完备,理论上可以表达任意逻辑,但其特性非常不利于游戏开发,例如:

  • 缺乏定时器。以太坊链上的所有操作,必须由eoa账户手动触发。为了实现类似于定时器的效果,开发者需要额外部署一个服务,维护一个eoa账户以及事件列表,来手动触发定时任务。由于上链的延时问题,这些定时任务还不能保证按时完成。

  • 没有回调等机制,不支持多线程和异步。由于solidity是为以太坊智能合约开发而设计的,它的执行环境与传统的运行时环境有显著的不同。evm的操作是事务性的,每次函数调用都需在一个事务中完全执行,而不存在传统意义上的“异步”概念。这意味着在solidity中一次函数调用开始直到结束,都是原子性的,不能被其他事务中断。

  • 没有引用外部数据的能力。虽然有类似chainlink这种预言机,但不论是从集成角度还是数据调用角度看,其易用性与直接通过https请求来获取数据调用有天壤之别,并且这又让开发者增加了额外的集成负担和依赖。

  • 扩展性和性能限制。游戏逻辑必须被简化或分解成多个简单的交易,以避免单一交易的gas费变得过高或超出最大限制,这限制了复杂交互和功能的实现。

3.数据存储与调用的限制

  • 智能合约的存储空间昂贵且设计有限,不适合存储大量游戏数据。

  • 可能需要用事件日志来间接跟踪游戏状态,而事件的抓取可能并不稳定。诸如何时刷新游戏状态等问题,常常需要玩家或者游戏运营方手动触发。

  • evm采用的账户数据结构,导致其数据索引能力很差。当你查询某个账户的数据时,你只能了解其eth或链原生token的余额,但其拥有哪些erc-20资产、每种资产的余额是多少,无法直接获知。对于nft也是一样的道理。这些信息都封装在每种资产的专属合约中,而不是在用户自己的账户下存储。

我们能够从etherscan等工具中看到某个地址具有何种token及其余额等信息,这些都是由区块链浏览器等周边工具索引而来,而后者要建立专属的庞大数据库,完整爬取所有的区块数据或监听链上事件,才能将链上的全部数据汇总归集。

web3开发者通常要集成类似etherscan,nftscan,the graph等第三方数据提供方,甚至要为其api key付费。此外,这些第三方服务本质都是链下的数据库,可能出现迟滞、出错、超过调用限制、服务不可用等故障。

我们来对比一下,大多数游戏自身的数据库形态与区块链中数据存储方式的差异,两者的不同是显而易见的。大多数游戏的数据结构完全由自己定制,有良好的表达和索引能力,不需要依赖任何第三方服务。

4.与现有游戏资产集成的困难

现有的游戏资产(比如道具和角色)通常不是在区块链上创建和管理的。将这些资产迁移到区块链上,通常要将通用但长尾的数据类型转换成标准的nft或token,这涉及到复杂的迁移和集成工作,会影响到现有的游戏经济系统。

5.升级、补丁与防灾

在以太坊上,智能合约一旦部署后,代码就是不可变的,这使得升级和修补程序比传统软件更为复杂。开发者经常使用代理合约或版本化模式来绕开这一限制,但这增加了整体结构的复杂度,代理合约在使用时需要格外小心,以免存储槽冲突导致数据损坏。另外,管理权限泄露风险也很严峻。

传统游戏的代码升级在技术构造上没这么复杂,唯一可能需要约束的是中心化的升级权限,这可以通过dao等方式实现而非依赖于智能合约。

并且,传统游戏时常会进行数据库的快照或备份。这在平常可能不是很重要,但若遇到升级有重大 bug 时,可以迅速回滚数据,而这在区块链上基本是天方夜谭。即使通过重建合约的方式来对某些游戏的数据进行回滚,如何把旧合约的数据和状态迁移到新合约,仍然很复杂。

6.生态割裂与用户体验问题

不同的公链和vm,其智能合约语言、架构、数据结构等是迥异的。在web2中,游戏开发者会选择unity等跨平台的前端引擎,可以做到一套代码稍加适配运行在iphone、android、桌面端等不同环境;后端由于不运行在用户终端上,所以不存在跨平台问题。

而在web3中这基本是奢望,迁移至一个不同的链或vm,意味着项目整体的重构,要付出巨大成本,更何况初入web3的开发者完全没有经验去选择适合自己的生态,不论是从技术角度还是生态角度。

而在用户体验层面,区块链交互及其复杂,此前盛极一时的账户抽象概念,正是为了解决web3用户体验问题而涌现,在此不做过多赘述。

罗列完上述6大论点,我们总结一下:web2 to web3的开发者面临着巨大的适应门槛,如果他们是web2中的顶尖开发者,完全没必要抛弃web2中的事业不做,去web3这么一个陌生的环境里拓展一些不知道能不能成功的业务。

可以说,顶尖的游戏开发者大多没有进入web3,某种程度上,这使得web3游戏大多偏向金融投机,而不具备特别高的可玩性和乐趣

用户侧也存在同样性质的障碍,web3游戏一系列阻碍用户转化率的操作步骤,导致web2巨大的用户群体没有意愿体验甚至完全不知道web3游戏的存在。

有没有一种infra级别的项目能够解决上述问题呢?tabi chain可能是非常接近web3游戏终极解决方案之一的项目,其核心概念是“全能执行层”(omni execution layer):开发者无需再关心各种vm或运行环境的区别,直接使用自己熟悉的、甚至是可以自定义的运行环境,直接开发或者移植的游戏。

除此以外,tabi chain还拥有模块化的共识、安全层等特性,一切都是模块化和可定制化的,以满足不同游戏和应用的需求。

全能执行层:按照开发者需求来选择执行环境

我们来回忆一下,区块链的本质是什么。有人可能会说是去中心化的不可篡改的账本。但如果更接近技术本质来说,应该说是:状态机在分布式网络中的可验证的永久状态同步。

也即,区块链实际在维护一个全网公认的状态机和其运转的状态:

  • 每一次输入都是确定的,被记录在每个区块中;

  • 状态转换函数是确定的,具体表现为区块链客户端中的vm或运行时;

  • 状态的输出也是确定的,也被记录在每个区块中;

因此,一个链的共识体系中,并不一定只能存在一种执行层(如只有evm),不论多寡,只要这条链能验证其上多个执行层的状态,让每个游戏都运行在自己的环境中,就可以解决我们上面说的种种问题

在tabi中,每个游戏或dapp可以构建自己独立的一个service。所有service将各自产生的区块提交至链的共识系统内;supervisor nodes中包含了所有service中的运行时/vm,来校验service区块的状态。

tabi的全能执行层的核心可以看做一个具有多态能力的vm,因此叫做polymorphism vm。

对于已有的区块链vm而言,polymorphism vm需要将该vm囊括入自身的运行环境中,并提供相应的接口调用方法。“囊括”这个概念在这里有两种具体的实现:

共享世界状态:类似ethermint,在cosmos上提供了对evm的支持。但evm仅仅是一个表层,专注于用户交互、合约操作等,让所有的用户侧的操作看起来是在evm上实现的。但这些操作最终的结果和数据,还是会存储在其他cosmos模块中。所以这种evm兼容性其本质是最底层数据的映射。

因此这种映射关系,也可以拓展到其他vm上,比如ethermint可以再加一层svm的模块,这层svm和evm其实对应的都是一份底层数据。

这就类似于在pc上使用vmware来启动一台windows虚拟机,vmware不仅可以访问虚拟机内部的虚拟硬盘,也可以访问物理电脑的硬盘。如果此时再启动一台mac的虚拟机,它也可以用同样的方式来挂载物理磁盘中的数据。这样其实就实现了多台虚拟机对同一个世界的资源与状态的共享。

tabi chain的main service的将采用这种世界状态共享的形式。因此只要有对相应vm的适配,基于该vm开发的dapp可以选择直接部署在main service上而非另起一个service。

独立世界状态:由于不同应用和游戏的需求迥异,有些游戏有自定义的运行时,将所有vm大一统地通过“共享世界状态”的方式囊括进polymorphism vm中并不适合所有情形。因此独立的世界状态也是需要的,这种实现方式相对简单,对数据完全对立的service而言也是最契合的。

但不论采用何种形式,都必须能被supervisor nodes进行验证,也即polymorphism vm中包含了所有实现方式的vm或runtime。

web2游戏移植案例

polymorphism vm具有高度的可定制性,特别是对于web2开发者来说,他们可以使用自己熟悉的语言和框架,将任何业务逻辑移植到polymorphism vm上。

假设minecraft现在想要移植到tabi,大致的流程为:

  • 略微修改minecraft服务端代码(java,其他语言同理),将需要上链的数据移动到一个数据库(或一组)中,并将所有可能导致该db发生变化的函数(也即状态转换函数)也挑选出来。

  • 将该数据库和这些函数,打包为一个jar包,可以理解为java的一种可执行程序。最后再加上jre也即java的运行环境。这一整体加载入polymorphism vm中,最终其所有数据都会上链。

  • 将其他与上链无关的后端逻辑(如组队、聊天等)将运行在链下服务器中。

  • 在tabi chain中启动一个service,并通知supervisor nodes中的polymorphism vm加载相同的jre。

至此所有的流程就结束了。

对开发者而言这些改动是在原有的java语言和框架下完成的。对于任何其他开发方式的游戏也是同样的道理。对用户而言游戏的交互也没有明显的改变。显然,这种移植web2游戏的方式非常迅速和高效,有可能成为web3游戏mass adoption的基础范式。

游戏str状态转换函数细节

上述例子是web2游戏移植的大致流程。我们还需要对细节了解更多。这次我们用通用的而非具体某个游戏的例子来展示,全能执行层中的运行时会涉及到的细节。

基本上,定制一个游戏的运行环境可以被视为在区块链上创建某个游戏的状态机,在tabi中叫做state transition runtime。

str可以通过以binary或module的形式集成入polymorphism vm。

在类似区块链的系统中,我们需要确保输入的透明度、状态转换的公开可见性以及全局状态的表达能力。为了满足这些需求,我们需要构建具有以下特性的运行时:

  • 世界数据库(world db)包含应用内需要记录在区块链上的所有用户数据。这些数据应该是有价值和重要的,因此需要一种类似区块链的结构来确保其可用性。因此,并非所有数据都需要记录在区块链上。例如,在游戏中,用户的聊天内容一般并不重要是可丢弃的,因此不需要放在区块链上。

  • 它能够表达完整的世界状态。在许多场景中,比如在游戏中,这种表达不一定意味着高度的可跟踪性——一个简单的累加器就足够了,这意味着像默克尔树这样的数据结构并不总是必需的。然而,无论使用什么样的数据结构来代表世界状态,至关重要的是世界数据库的世界状态可以以摘要形式表达。

  • 任何可以引起世界数据库变化的功能被称为状态转换函数,并应该封装在状态转换运行时中。任何在运行时之外对世界数据库的修改都应该被视为非法并拒绝。

  • 输入和输出接口应该符合input interpreter和block proposer的设计。这一点相对简单,在这里不做详细说明。

下列组织结构是该str中必不可少的一些内容。tabi默认会提供一个sdk来方便开发者制作该运行时。

world db

在实践中,游戏或应用程序很可能会使用不止一个数据库,而这些数据库可能是不同的类型。让我们假设特定的游戏同时使用了关系型数据库和键值型数据库。

以下是一个简单的关系型数据库的例子:

  • uid:代表一个唯一的用户,它可以是公钥或其他标识符。

  • nonce:用于预防重放攻击。

  • 额外数据字段:任意类型的数据。

这是一个简单的键值数据库:

状态转换函数

这是一个简单的状态转换函数。当这个函数接收到用户的输入时,它简单地将其乘以5并修改关系型数据库中的数据。

世界状态累加器

我们可以构建一个非常简单的哈希累加器来表示世界状态:

a_s+1 = hash(a_s + hash(query))

通过这样的构造,可以确保在对世界数据库进行任何修改之后,总会有一个唯一且确定的状态与那次修改操作对应。

需要注意的是,这意味着每个状态转换函数必须实现这个方法。这个要求可以通过使用修饰符、接口、钩子或者使用的语言特有的其他逻辑来强制实施。由于不同的语言有不同的特点,这里不讨论具体细节。

键值数据库(kvdb)的更新过程也是相同的。

随机数

任何状态转换函数中不应出现随机数,否则会导致不同的验证者验证时产生不同的结果,而导破坏一致性。随机数应该被纳入系统输入参数之中。

总结

通过上面的两个例子我们可以发现,tabi chain的全能执行层,用模块化的方式为游戏开发者提供了极大的灵活性。由于篇幅所限我们无法在此将所有细节展开讨论,但上述核心内容已经足够论证tabi chain的解决方案是非常实用且新奇的。

在原有的web3体系下,不同链、vm上开发的作品基本不具备可移植性;web2游戏想要进入web3基本等于重写,并且是用开发者非常陌生的语言与环境,并且受到各种难以理解的限制。

在tabi中,开发者使用原有的语言、开发平台、引擎,只需要像调用sdk一样做简单的适配与修改,就可以将自己的作品带入区块链世界中。这种效率的提升与复杂度的降低都是指数级别的。

我们期待其能够为web3游戏的mass adoption的奇点,吸引到web2优秀的游戏开发者,为web3带来有真正娱乐价值和可玩性的游戏。

链游龙头币分享

链游龙头币有sand、mana、enj、uos、gala、gmt、ilv、magic、pyr以及starl,以下是币种详细介绍:

1、sand

the sandbox是一个虚拟游戏世界,通过基于以太坊的功能型代币sand,玩家可以创建和拥有不同的游戏体验,并从中获得收益。游戏玩家可以通过the sandbox game maker,来创建数字资产(非同质化代币,也称nft),将其上传到商店,并通过简单的拖拉方式来创建游戏体验。the sandbox已经与包括atari,crypto kitties加密猫,shaun the sheep等50多个合作伙伴建立了合作关系,来建立由玩家创作和拥有的“边玩边赚”的创意游戏平台。the sandbox旨在通过区块链技术所带来的真正的所有权、数字稀缺性、盈利能力和互操作性的优势,来吸引更多的加密和非加密游戏爱好者,将区块链带入主流游戏世界。

2、mana

decentraland是一个基于区块链的虚拟世界平台,旨在为去中心化的开源项目解决平台商赚取中间平台利润的问题,从而达成内容创造者和游戏玩家之间的低价格支付模式;项目使用区块链技术去获取并转移虚拟产权,并让用户永久性持有这些虚拟产权,甚至对其进行经营,为自己的内容创造获取利润;没有中介费用的存在,这是decentraland最大的特性。

3、enj

恩金是最大的在线游戏社区创作平台,于2009年推出,总部位于新加坡,运营多年,拥有25万个游戏社区公会、电竞团队、minecraft服务器、游戏社区、游戏部族、角色扮演团体、粉丝网站等等,现有1870万注册玩家,每月约60m的全球游戏玩家访问,游戏专注于内容管理系统和论坛创作者,每个社区商店每月销售数百万美元的虚拟商品。目前尝试用区块链来改造现有业务,推出的“恩金币”可让玩家、内容创作者和游戏发行者添加虚拟商品并为游戏和社区提供价值。

4、uos

uos是为ultra生态系统提供支持的令牌,可以用来购买平台上的所有东西,包括游戏、虚拟物品和游戏开发商的广告。ultra将接受传统的支付方式,如paypal和信用卡。这些法定货币交易在后端无缝转换为uos,并在区块链上使用uos令牌完成。该令牌也将在平台上以多种非交易方式使用,包 括 下 注、锦标赛和捐赠。

5、gala

gala games由游戏和区块链行业的大咖创立,重新定义游戏世界。gala网络由用户支持,可在家里的电脑上操作gala节点。用户通过购买gala node的运营许可,根据各人对平台网络的贡献获得奖励。其奖励包括:gala代币、限量版nft以及帮助gala游戏生态系统发展的机会。

6、gmt

stepn是一个边动边赚的运动应用程序。配备nft运动鞋的用户可以到户外活动来赚取代币和nft奖励。stepn有一个内置钱包、nft市场、兑换和一个可以让非加密用户也用起stepn的租赁系统。

stepn有一个双代币系统,一个游戏代币 - green satoshi token (gst) 和一个治理代币- green metaverse token (gmt)。

7、ilv

illuvium是基于以太坊网络构建的开放世界gamefi游戏。该游戏的原生货币ilv用于通过游戏的游戏赚取功能奖励游戏玩家,并作为项目的治理代币。

illuvium利用以太坊第 2 层扩展解决方案immutable x来显着降低交易nft所需的gas费用。与其他流行的gamefi游戏一样,游戏玩家完全拥有他们的illuvials并可以在二级市场上交易nft。illuvium为玩家和投资者提供了一个非常独特的机会,收集、交易、战斗并获得稀有价值资产。

8、magic

magic是treasure metaverse的自然资源,它“启动”nft并将它们从幻想变成生产性的、有收益的资产。玩家可以通过玩游戏、挖矿和参与bridgeworld来赚取 $magic。因此,treasure生态系统由magic持有者管理。

9、pyr

vulcan forged是一个游戏工作室,致力于在以太坊和polygon和bsc上构建nft游戏。在其平台上的一系列游戏中,vulcanverse和berserk是项目的两款主要游戏。 pyr是其原生功能型代币,它允许用户从游戏市场上购买nft,参与抵押并支付学者的注册费。

10、starl

loot是一个链上产生和存储的随机冒险者装备,它是一个社区驱动的nft项目。adventure gold(agld)是社区发起的loot project治理代币,所有loot持有者都能获得agld代币空投。loot nft持有者(每持有1个loot)可以申请10,000个agld,agld代币已经发布。

loot是随机生成并存储在链上的冒险者装备。统计数据、图像和其他功能未被具象化,以供其他社区成员后续探索。

作者:罗奔奔,cto of tabi chain,前web2游戏平台octopus联创

编辑:faust,极客web3

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com