体验Web3.Unity并回顾GameFi探索之路

近期,由chainsafe旗下的web3 Unity SDK 推出更新,不仅可以集成常规token交互的入口更内置了登录、资产交易等平台,笔者从小白unity开发者的角度出发,尝试接入web3.Unity的SDK,结合对gamefi、DeGame的重大事件发展做综合评价
全文核心逻辑如下:
图片
web3.unity SDK 是什么?
其中 SDK 是软件开发工具包(Software Development Kit)的缩写。它是一组用于开发软件包、应用程序等的工具和资源的集合。
Unity Asset Store是Unity Technologies 运营的一个在线市场,提供了各种用于开发游戏和应用程序的数字艺术品、工具和资源。开发者可以在Asset Store中购买或出售各种类型的数字资产,例如3D模型、纹理、音效、代码、插件和编辑器扩展。
Unity Web3 SDK提供了一些预设功能和工具,用于帮助开发者更容易地构建Web3游戏。它支持基于EVM的链,例如Ethereum、Polygon、Moonbeam、Cronos、Nervos和Binance Smart Chain等。
为什么会有针对web3的unity插件需求?
SDK的本身是工具属性,所以这款web3.unity他的核心受众是开发者,目的是降低游戏开发者对链知识的学习成本。对于传统游戏开发而言,出于渲染效率考虑最主要的语言是C++和C#等,而这些与目前区块链社区主要的js/go/rust/python的开发栈相对有所差异,因此从签名算法到钱包以及合约交互都会有较多的代码工具上缺失。
在Unity Asset Store中已经有不少知名公司如小狐狸,infura,Truffle,或者公链都针对局部功能接入推出SDK,而本文讲述的web3.unity,虽然还未完全经过验证并纳入Store中,但已经可以源码包导入进行试用。
图片
这些的SDK同质化较高,都是围绕GameFi方向链改的必要工具提供代码封装后入口,以web3.Unity为例,他提供核心的功能如下
在游戏内实现多种资产代币的自定义交互(ERC20/721/1155)
在游戏内便捷接入跨游戏的交易市场
提供多种的NFTMint方案
提供钱包登录,社交登录等封装
多网络支持,各签名验签常用工具封装
虽然上述的功能,在区块链的开发者看来都是很简单的事情,但是过往的很多链改游戏,更多是更native在web3的人出发主导开发,在游戏性上有所缺失,而如今越来越多的易于游戏开发者接入区块链的SDK,则是让更擅长游戏本身的开发者占据主动性。
游戏怎样接入web3.Unity?
笔者不是Unity高手,所以在配置环境接入SDK空耗了很多时间,但是在步入实际开发也能显著感受到接入的轻量程度。
下图是通过webGL唤醒钱包登录
图片
下图是通过为某个按钮绑定点击触发的事件,效果是将该button的文本修改为链上的某个token合约的名字
图片
实际写入的Onclick()代码也非常简单,只有4行
在这个SDK中相对亮眼的功能是集成了NFT交易市场部分。
通过官方文档的记录,是使用 web3.unity SDK 的类方法实现的
基本是围绕链下订单簿撮合的模式,大概逻辑是官方提供了和Opensea,X2y2等一致的中心化后台,这里的则是对seaport这样的执行交易协议做授权。
显然,如果在游戏中,买卖资产还需要跳转到os等外部网页平台去进行交易,是特别打断破坏游戏性的事情,所以sdk提供了交易市场中心化后台的各种接入服务,比如
在游戏内获取所有上市销售的 NFT
在游戏内指定NFT和报价执行购买
这些预设的功能都可以很好降低NFT买卖的复杂度,其实别说游戏侧开发者了,就是熟悉合约的开发者,要脱离opensea的网页入口单独执行上架下架购买收藏等功能,都得消耗上不少时间还容易出错。