自制开源泰拉瑞亚落沙模拟MOD分享(仿Noita)

来源:哔哩哔哩   2023-01-31 05:02:20
A+A-

开门见山,开源项目地址:

https://github.com/MoebiusMeow/PixelSandbox

做了一晚上的新玩意——


(资料图)

协议是MIT,欢迎各位Mod爱好者参考和使用!

演示gif:

简要说明一下功能

落沙模拟系统,模仿noita

支持整个世界范围的任意量落沙(使用动态区块加载、卸载)

支持可持久化保存(保存在World目录下的一个子目录下,每个chunk单独存了一个文件)

使用GPU计算落沙,跑得很快(60帧)

演示交互方式是

按T放置沙子

挖掘任意物块时会产生一堆沙子

如果你是一个模组开发者或者对模组开发感兴趣的萌新,都可以去clone一下这个项目自己试试看——

https://github.com/MoebiusMeow/PixelSandbox

最后是一些 Q&A

和小k(@-Kyoll-)前两天发的那个落沙模拟有什么关系/区别?

我是看到小k做了才来做的。小k的那个是基于CPU的实现,不支持太多的落沙,因此我就用了一个晚上做了个GPU落沙系统并且开源分享给大家参考。

实现的技术原理是什么?

大致原理就是用大家平时做特效的那种shader来模拟落沙的并行计算。每个像素基于周围几个像素的状态进行更新,类似细胞自动机。

把整个世界划分成区块,计算在区块内部更新。跨区域的落沙移动比较细节,需要额外处理,我的实现方式是给落沙区域加上重叠的padding。

动态区块加载是记录若干最近已经访问过的区块,旧的区块存成文件。因此能够支持超大范围的落沙。

这些技术思路都是来源于noita。所以是的没错,这就是学的noita。大家如果感兴趣可以去搜索noita的gdc talk,里面包含了很多有趣的技术细节。

你的投影Mod怎么样了

还在更新新版本。最近有些别的事,加上过年休息了一段时间,所以进度不是很快。今天是忙里偷闲花了若干小时写了个这个。

关于这个落沙Mod我没有特别想要做成完整的gameplay模组,我是希望其他模组开发者如果感兴趣就直接拿去用,帮ta们做一些本来觉得不好实现的玩法。

感谢大家看到这里~ 希望对各位有帮助!

下次见~

标签: 整个世界 技术细节 有什么关系


Copyright ©  2015-2022 起点办公网版权所有  备案号:皖ICP备2022009963号-12   联系邮箱: 39 60 29 14 2@qq.com