Mud:GameFi 开发新引擎/范式
演讲由 Lattice 主持。
在开发一款链游的时候,以下几个方面让开发者头疼:
状态同步:客户端需要和智能合约同步状态
添加新的状态
互相可操作性
在传统链游开发中,开发者创建结构体,添加读取数据的函数,释放事件来帮助客户端同步状态。ERC20,ERC721 和 ERC1155 标准用来保证互操作性。
Mud 从传统游戏开发中借鉴了 Entity Component System。Entity 是属性,例如血量,攻击。Component 将 Entity 和数值联系在了一起。
在这样的编程范式中,我们解藕了具体对象以及其它属性。当我们想要将 Entitiy 向左移动时,我们不在意我们移动了什么对象,只要位置 Component 可以调用。
接着我们将所有 Component 连接到 World 合约。所有人都可以在 World 合约中注册新的 Component。这样标准的数据结构保证了可组合性,以及未来可以更加方便地添加新内容。
为了加快数据同步速度,Mud 带来了 Indexer。因为 GameFi 所以依赖的数据相对独立,Indexr 可以只对游戏相关交易进行索引和查询。这大大增加了查询的性能。