找回密码
 立即注册
查看: 350|回复: 0

开启链游技术架构新序章 — 基于Arweave打造纯链上游戏

[复制链接]
发表于 2022-9-23 13:35 | 显示全部楼层 |阅读模式
前言:GameFi的繁荣及衰落
2021-2022链游市场经历了高光时刻,我们看到了《Axie Infinity》单日收入超过《王者荣耀》、看到了《StepN》仅用四个月内达成30万日活用户,成为2022第一季度最火爆的加密应用、看到了用户争抢《Otherside》土地发售引发的天价gas费。
越来越多的资本进入链游赛道,仅2022年第一季度的融资规模就超过2021年半年的规模,6-8月中链游更是成为融资规模最大的赛道。同时上亿级别的融资越来越多,MetaApp完成1亿美元C轮融资,DigiDaigaku 母公司 Limit Break 已通过两轮融资筹集 2 亿美元。


但随着5月份加密市场整体的下跌,大部分项目都不可避免的进入死亡螺旋,无论是用户数量还是代币价格都呈断崖式下跌,Axie Infinity、StepN等明星项目也没有幸免,链游市场一蹶不振。


GameFi市场经过一轮牛熊的洗礼,带给了我们很多畅想的空间,也带给了我们很多问题去思考,无论是从经济模型上摆脱旁氏的束缚,还是从技术架构上完成去中心化的迭代,都有很大的探索空间。
本文将从技术角度出发,探索链游的终极形态 - “纯链上游戏” 是如何实现。
一、链游的技术困局
可以说NFT和Play 2 Earn模式是引爆上一波GameFi牛市的导火索。通过区块链和NFT可以赋予链游颠覆传统游戏的特性:

  • 拥有权:通过链上NFT,玩家真正“拥有”他们的装备,而不是属于游戏运营商。
  • 开放的市场:玩家可以在市场中自由交易他们的游戏资产,这也诞生了玩家疯狂追逐的Play 2 Earn模式。
  • 可组合性:玩家的装备、物品可以穿越多个游戏进行使用,想象一下你在魔兽世界获得的传奇装备可以在CS GO中使用的场景。Loot给我们做了很好的示范。
故事听起来很酷,但真实的情况并非如此
虽然游戏资产和NFT在玩家手中,但数值产出和保存却在中心化的游戏服务器上,项目方可以随意修改属性,甚至关闭服务器,玩家手中的NFT实际上只是一纸空文。
造成这种情况的技术原因有几个:

  • 高昂的存储成本:存储是区块链上的稀缺资源,以太坊为主的所有公链,实际上都属于计算层,本质还是账本,设计之初就不善于做大量存储工作,项目方不可能将动辄数GB的游戏数据存储到链上。
  • 高昂的计算成本:在链上进行计算要消耗gas费,玩家和项目方都无法承担游戏服务中高昂的计算费用。
  • 无法忍受的响应时间:区块链从发起交易到打包出块要经历漫长的等待过程,快则几秒钟,慢则几分钟。这对于游戏这种需要低延时、高频交互的应用很不友好。
所以现在链游的技术架构以“资产上链,链下执行”为主,这种模式仅完成了资产去中心化,但代币的产生是在链下完成,通常在玩家交易前需要提取“提取”操作把游戏内的资产转移到链上。游戏计算和交互大部分也在链下的游戏服务器内进行,这种模式的链游去中心化程度还很低。
很多L2、游戏应用链着手解决计算成本问题,如Avax的subnet、专为游戏服务的IMX等,但都没有从根本上解决存储成本和响应时间问题。也有一些项目进行了纯链上游戏的探索,如Lssac(一款基于starknet的纯链上游戏),但是lssac是轻量级数值游戏,可玩性不高,对于高频交互、动辄10GB资源的3A游戏采用这种方式是不行的。
区块链底层基础设施的瓶颈,造成了现有链游的技术困局,人们被“困在”传统区块链的套子中。
如何才能破局呢?不妨跳出传统区块链 ,尝试一个全新的视角 — 用“非典型”区块链项目Arweave解决链游的技术困局!
二、Arweave与SCP存储共识范式
大多数人对Arweave的了解开始于这波NFT的牛市,Arweave作为去中心存储承载了大量NFT的图片内容。人们喜欢把Arweave与Filecoin做比较,显然大名鼎鼎的IPFS协议和Filecoin的热度更高。但深入了解Arweave后你会发现:其实Arweave能做的远不止存储这么简单!
永久存储与极简的设计理念:经济博弈
Arweave 是一条为“永久存储”数据服务的区块链,通过独特的共识机制和经济博弈保证矿工对数据进行永久保存。
Arweave的有一个理论基础,就是每年存储的成本都是按照30%左右速率下降,成本下降是一个收敛的曲线。那么进行两百年或者更久远的存储收费将是一个常数。所以Arweave可以做到一次付费,永久存储。
IPFS是去中心存储中最知名的项目,始于2014年,2015年全球发布,Filecoin作为IPFS的激励层,直到2020年7月主网才上线。这么硬核的一只团队都要开发如此之久,可见Filecoin的工程化难度之大。这源自于Filecoin使用了一套非常复杂的系统来保节点对数据的存储,并且为此创建了两个数据市场、两套激励机制、两套定价机制。
真的需要这么复杂吗?Arweave的团队选择了截然不同的技术路线 ——极简化的设计,利用经济博弈保证矿工对区块的存储
Arweave采用一种叫做Blockweave(区块坊)的结构。与传统区块链结构不同,Blockweave中的区块除了指向上一个区块外,还指向一个随机的历史区块,称之为回忆区块(recall block)


Blockweave结构
基于Blockweave结构设计出SPoRA共识,在经典的PoW共识之上,矿工要想生成新的区块,还需提供一个回忆区块的存储证明。回忆区块的选择是完全随机的,这就激励矿工去存储更多的历史区块,来提高出块的概率。特别是一个稀缺的历史区块,因为稀缺区块的竞争压力小,出块的概率会更高。简单的说矿工的出块概率 = 拥有随机回忆区块的概率 * 第一个找到 hash 的概率
在Arweave中矿工不需要对所有区块进行下载,但独特的设计激励了矿工去多存储数据, 并且存储稀有的数据, 实现了数据的永久存储。
杀手锏:SCP存储共识范式
除了永久存储之外,Arweave的简洁设计还使之具备承载计算层的能力。这也使得Arweave有潜力成为Web3中最重要的基础设施。
Arweave上运行的dapp采用SCP模式,即Storage-based Consensus Paradigm,基于存储的共识范式。dapp并不直接运行在Arweave上,Arweave只存储用户发送的交易指令,而计算在上层进行,这些计算层就像Arweave上的L2。在L2中将用户所有的输入从Arweave上下载并且按顺序执行,就得到了最终的计算结果。更进一步的,如果将程序运行的源代码也上传到Arweave,那么任何客户端都可以基于源代码和输入执行出最终结果,并且都是一致的,无需信任的。我们把这种模式形容为图灵机纸带
通过SCP构建应用给了开发者极高的自由度。开发者可以使用熟悉的任何语言,无论是Java、Solidity、Python,只要获得标准化的输入,都可以构建出同样的结果。
一个很酷例子就是前端应用,我们把静态前端页面存储到Arweave上,通过浏览器即可直接打开运行,例如Uniswap已经将历史页面放到Arweave上,用户可以通过地址直接访问历史版本的Uniswap网站,并且整个过程都是可信的,前端页面即是即是合约!
到此链游困局的三个难题都解开了:

  • 存储成本:基于Arweave的永久存储非常便宜,目前存储1GB的数据只需要3美元左右,可以说在Arweave上存储应用的成本比租借AWS服务器更便宜。
  • 计算成本:SCP的模式中,Arweave并不负责计算,计算是每个应用服务自己进行,所以根本没有计算成本问题!
  • 响应时间:用户直接访问的是应用层服务,由于计算层是应用服务自己负责,所以响应时间可以做到和传统web服务一样。
三、基于SCP的游戏架构
服务架构:每个游戏服务都是一个L2


基于SCP的游戏服务架构
基于Arweave的游戏架构中,游戏服务类似Arweave上的一个L2层,负责接收、执行玩家的指令,并将这些指令有序的上传到Arweave上。指令序列一旦打包到Arweave上就具备了不可篡改性,在任何时候都可以基于这些序列构建出游戏最终状态。
这种模式下,客户端只负责记录操作并发送到游戏服务,并不执行任何计算;游戏服务收集玩家操作并进行排序然后执行,并且把执行结果发送给客户端。我们把客户端类比成“视频播放器”,只要将服务器返回的结果表现出来即可。比如玩家跑、跳、攻击操作序列发送到游戏服务器,服务器计算出玩家到了什么位置,对怪物造成了多少伤害,再广播给视野内的所有客户端,客户端同步执行这个序列,这样所有在线玩家都达到了同步状态。
在理想情况下,游戏服务也是一组去中心化的节点,交易验证、交易排序、执行都经过共识,这样比单一节点可信度和安全性都要高。缺点是在计算和响应速度上肯定比不上单节点服务。
这种类型的架构适合实时性要求不是很高的游戏,比如回合制游戏(Axie)、卡牌游戏(SkyWeaver)、经营类游戏(sunflower)、剧情类游戏等。
NFT与代币发行
链游发行NFT和代币已经成为标配,虽然Arweave上已经有PST代币标准(类似以太的ERC20)和NFT发行能力,但由于Arweave不具备以太坊一样的计算能力,所以需要在游戏服务内进行代币发行、结算、交易等。
之前提到Arweave上每个游戏都以L2的方式运行,如果每个游戏都在自己的L2上进行NFT和代币的创建会有一些问题:

  • 重复造轮子:每个游戏项目都要维护相同的功能,例如NFT、代币的发行及交易逻辑。
  • 降低可组合性:每个游戏实现方式不同,很难相互兼容。
  • 增大安全风险:除了游戏外,游戏项目组还要维护代币、NFT发行、交易的代码,这部分代码如何处理不好会使用户损失资产。
所以我们希望有一个专业的L2,负责NFT、代币的发行与交易,以降低游戏开发成本、提高安全性、带给用户更好更统一的交易体验。整个架构就变成了下面的样子:


游戏存储与更新
Arweave上的存储价格非常便宜,目前存储1GB的数据只需要3美元左右,我们完全可以将所有的游戏内容都放到链上,包括游戏资源、执行程序、配置文件等。如同现有的web2游戏一样,玩家在进行游戏前先下载游戏内容。
对于大型游戏和web游戏,可以先下载部分资源,并根据游戏内容实时下载其他资源。这需要在玩家与Arweave节点之间建立一条高速的数据加载通道,在传统web2中这一工作由CDN完成。当然在Arweave生态中,也需要这样的缓存层帮助用户快速拉取数据,缓存层可以直接将Arweave内容缓存在本地,并为用户提供高速下载通道,或者将数据拉取到离用户最近的Arweave节点进行存储。
同样的道理,游戏的更新内容也放到Arweave上待用户拉取即可。
总结
现有链游的技术架构以“资产上链,链下执行”为主,这种模式仅完成了资产去中心化,去中心化程度很低,玩家手中的资产只是一纸空文,项目方仍可随意修改数值。造成这种情况的技术原因有三个:高昂的存储成本、高昂的计算成本、无法忍受的响应时间
利用Arweave构建的纯链上游戏,可以很好的解决上述的问题。Arweave上的应用基于SCP存储共识范式,就像图灵机纸带,Arweave上只记录游戏输入输出,计算交给应用层处理,所以没有计算成本问题和响应时间问题。帧同步技术和这种模式有天然的兼容性,可以在游戏中应用。
这种模式中每个游戏服务都是一个Arweave的L2层。需要一个专用的NFT L2层作为基础设施,为各个游戏提供NFT发行、代币发行、资产交易等经济功能。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-11-25 01:23 , Processed in 0.092814 second(s), 26 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表