将区块链视为一个可验证的自生长的分布式数据源
本文作者: leeduckgo、msfew、ff
article in mirror: https://mirror.xyz/0x73c7448760517E3E6e416b2c130E3c6dB2026A1d/9cCjcmHL1S6JHBPg6Pl5PwnBsFCX2iwnA4rt69er4X4 项目地址: https://github.com/WeLightProject/tai-shang-world-generator
本期DM(地下城主)
玩家(Offline)
玩家(Online)
玩家(Async)
见:https://github.com/WeLightProject/Web3-dApp-Camp/discussions/26
主题: 基于区块链数据生成游戏地图!
以链上数据为数据源,生成 2D 游戏地图,愉快滴探索「区块链游戏」的可能性。
《可验证的自生长分布式数据源 : 一个看待区块链的全新角度》
区块链系统是多种复杂技术的综合产物。因此,可以从许多不同的有趣视角来看待这个系统:
然而,本项目试图从一个全新的角度出发,将区块链视为一个可验证的自生长的分布式数据源。
这种数据源具备如下特点:
数据以固定的频率自生长,因此,在确定性的规则下,地区、宝物、怪物等等一系列来自于元数据的对象也在自生长!
元数据来自于区块链,所以无需担心元数据的丢失问题与篡改问题。
因为都是链上数据「元数据」和「转化规则」都是「可验证」的 。
区块链的数据读取是免费的,因此相当于我们拥有的是免费的数据源!
0) Web3 dApp Dev Workshop@NonceGeek 介绍
基于炫酷编程。
1) IDEA 介绍
以链上数据为数据源,生成 2D 游戏地图,愉快滴探索「区块链游戏」的可能性。
2) 自由脑暴
思考点:
链上数据源这个 IDEA 是否有意义?
在链上数据源的基础上,我们是否会有其他有意思的分支?
3)本次 WorkShop 要完成的一个小目标
给定后端接口:
https://github.com/WeLightProject/tai-shang-world-generator/wiki/API-Doc
进行一个前端实现,并部署到 Github-Pages 上!
4)总结 + 二次脑暴
在上述的基础上进行二次脑暴。
5)自由吹水
来聊聊区块链!
Web3.0 dApp训练营即有基于 Github Discussion 的,以 Project 为导向的线上训练营,也有线下包括纽约/北京/杭州/南京在内的多个Workshop技术工作坊,旨在让「传统计算机从业者、在校学生、区块链技术从业人员」快速习得基于 Ethereum 等链的 Web3.0 dApp 开发。
Web3 dApp Dev Camp 与 Web3 dApp Dev Workshop 均由 NonceGeek 团队发起。
Web3 dApp Dev Camp 是线上版本,是基于 Github Discussion 的,以 Project 为导向的线上训练营,旨在让「传统计算机从业者、在校学生、区块链技术从业人员」快速习得兼容 Ethereum 框架的链(如Moonbeam、Polygon)的 Web3.0 dApp 开发。
Web3 Dev Camp 信息全集:
配套开源云端教学平台WeLightOS获中国区块链大赛二等奖:
Web3 dApp Dev Workshop 是线下版本,是基于「桌面游戏理念」的线下实践活动,目前规划是:
每半个月在多个据点召开线下 Workshop。Workshop 成员以 Nonce Geek Studio 成员为主,采用半开放形式,会邀请极少数外部成员来参加(定向邀请与开放付费名额)。
在未来规划中,Workshop 将逐步在纽约、杭州、深圳、上海、南京等多个城市开放据点。
NonceGeek在2021年持续探索NFT领域,做了可组合的NFT项目,以及抽象NFT的渲染器等。
在2021年年底,WeLight开展了新的方向探索,例如在Arweave区块链网络上探索 Function-as-a-service 的可能性。
2022年,NonceGeek 会积极尝试元宇宙的项目,在元宇宙这样一个火热但模糊的概念中,做出差异化,找出正确的前进方向。
目前市面上的随机地图生成均是在线下进行地图的随机生成,然后上传地图内对象坐标到区块链上。由于没有可重复性,这样生成的世界是不那么 Web3 的。用户无法自行生成一个与 Sandbox 一样的世界,世界的所有权依然掌控在 Sandbox 手里。
因此,本项目决定从这一点出发,直接通过链上无法篡改的数据(如区块数据、哈希数据)作为种子,进行抽象地图的生成,抽象地图还可以 进一步 Mint 成 NFT,衍生出更多玩法。
项目地址:https://github.com/WeLightProject/tai-shang-world-generator
目前TaiShang World Generator能从每个区块作为的数据源中,结合存储在 Arweave 上的可加载到程序的Runtime里的生成规则,最终生成包含不同元素的不同二维矩阵。
需要注意的是,链上(Polygon+Arweave)负责确定抽象的二维地图,抽象的二维地图渲染成最终的地图,则在链下由游戏运营方负责。
从一串随机数据到地图,实际上传统的游戏中已有先例——
以 Minecraft 为例,地图的生成规则是在编译前就确定的,会在游戏的过程中按照规则生成地图并渲染。
如果在 Web3 中「复刻」地图生成,那么需要确保:「规则代码很小巧」与「编程语言支持动态加载代码」,这样,规则代码本身可以存放到 Arweave 等区块链上,并且允许用户在服务器上加载,就像 FaaS 服务一样。
游戏中普遍的一个做法是将生成规则等配置存储在celeste的云函数容器中。
比较小型的游戏会把规则存储在链上,但是有难以修改的问题。
对于大游戏,生成规则或游戏素材等需要修改的数据才会上传到链上,大多重要数据是放在链下的。
实际的游戏地图,在玩家进行操作后实际上是被升级的,这个问题在这个项目里如何处理?
由于地图的源数据是存储在链上的,因此无法篡改,生成的是原始地图(创世地图)。
源地图无法修改,但后续用户可以像Minecraft一样破坏或建造地图。修改后的地图是一个全新的独特地图。用户可以通过铸造NFT的形式来保存对地图所做的一些交互和修改。这样的思路就类似比特币的UTXO或Arweave的SCP。
用户可以选择直接保存全新修改后的地图或者对地图的操作日志。
由于区块链数据的自增长,生成的所有地图可以拼接到一起,形成一个巨大的地图。
但是这会形成一个问题就是游戏中的玩家增长速度如果小于地图的增长速度,那么就会形成大部分地图的闲置。
这个问题可以通过 Mint 了的地图才有意义,或者通过设计限制规则来解决。
FX Portal 可以实现去中心化地跨链,实现跨链合约之间的通信。在一个链上锁住NFT,就在另一个链上铸造NFT。
过程中,大家聊到了Polygon。Polygon是一个以太坊的拓展解决方案。
以太坊的扩容不会局限于一种协议,而是会有各种不同的扩容,分片和Layer2方案。Polygon目前是一条PoS(权益证明)的以太坊侧链,在使用上和以太坊的网络基本没有任何区别。除此之外,Polygon还提供了SDK,可以让开发者自己搭建简单的区块链网络。目前Polygon正在研究zkEVM,预计会在23年年底推出zk等相关的功能。
成员分享了自己所在的Web3Games组织。Web3Games是一个区块链游戏开发服务公司。
Web3Games的生态包括了区块链游戏,NFT以及DeFi。Web3Games提供链游DID方案,API-as-a-service的服务协议,一站式的区块链门户,以及各种链游开发工作室的资源。
Web3Games提供了基于Substrate的游戏专用区块链网络,支持多环境多智能合约运行,支持WASM和EVM虚拟机。除此之外,这条区块链还支持多项目交流,可以在不同执行环境中进行双向交互。
Substrate在3.0版本之前没有把宏转换成Rust的原生代码,封装很多了底层细节。目前在官方团队的维护下,越来越多非底层的宏都已经开放出来了。Substrate的更新速度比Polkadot快大约15天,更新比较快,具有很多实验性功能,适合开发者学习。
传统智能合约中无法拿到外部的随机数,只能者在合约中通过现在的或未来的链上信息进行生成。当合约源码公开后,容易被黑客攻击,或者被大矿池提前拿到用来生成随机数的区块信息,干扰随机性。
一个例子是,在 Solana 链上,作为一个时不时宕机的链,随机数功能很可能在被DDoS攻击后而被损害。
区块链协会的目前规划主要有两个:
一是布道,让更多人了解区块链;
二是多办活动,多接触更多已经了解区块链的成员。
在自我介绍环节中,有成员问到了Web3 dApp Dev Camp之前所做的WeLightBlockchainOS项目。WeLightBlockchainOS是一个云端的区块链开发工具箱,以类操作系统的界面,帮助开发者快速和容易地上手区块链开发。
在日常的教学过程中,常用的协同教学操作的解决方案是采用VNS技术,远程连接到实际主机中,但是无法解决学生数量庞大的情况。WeLightBlockchainOS通过前端的iframe实现了各个区块链开发工具的集成,实现了教学过程中的文档共享以及远程编写代码的功能。
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!