Cat_Anchor 发表于 2023-12-24 16:11:41

[含10张图警告]糖果大陆更新的新结构成功生成,接下来只需加入新房间等内容

本帖含有10张图,总大小3.82MiB(4010132字节)。
------
欢迎收看大型连续剧——糖果大陆1.2.0开发进度第5期。
经历了昨天的失败,我决定打开游戏,让游戏帮我想象相对坐标。我把原本的连接链换成结构方块,让它正确加载结构,然后记录偏移部分的x,y,z的值、旋转角度和翻转值,把它们转化成命令——这就好了。
这次的坐标都是我亲自进游戏测试出来的,总不能失败了吧...https://pic.imgdb.cn/item/6587db37c458853aef70227e.jpg(果然如此。)

生成的结构还是挤压在一起,虽然比上次的结构完全没有拼接要整齐一些,但还是不可玩。不过这在我意料之中,只需要调概率即可。
一个连接链生成连接结构时,会随机以下从4种结构选取一个:[*]向下的楼梯;
[*]直的走廊;
[*]拐弯的走廊;
[*]又长又直的走廊。它们被选到的概率相同,各个权重都是1。但正因为此,有些走廊太短,会与其他结构交叉;有些楼梯会插进刚生成的一个房间里,接着生成第二个房间。我们只需要把又长又直的走廊的权重调大,比如10,然后把其他的调成2,3,5这样的小权重,整体上又长又直的走廊的出现次数就会多。
调了概率以后,结构的生成就正常许多了。https://pic.imgdb.cn/item/6587dd65c458853aef7898b3.jpg(结构的生成终于正常了。)https://pic.imgdb.cn/item/6587dd79c458853aef78e93f.jpg(似乎还有点空间立体感在里面。)

这时,我想到,决定整个结构的规模的值不是写死在代码里的,而是一个动态的值——计分板structure_times中,max_count的分数。为了能修改这个,我简单改了点代码,这就可以通过命令自定义结构的大小了。
于是,我决定来一个挑战——生成64规模的结构。(64规模就是max_count分数为64的意思。)我把max_count的分数设为64,再生成结构——游戏居然完全不卡顿,counter分数暴涨,涨到64后从侧边栏消失了。与此同时,巨大的结构在空中生成。https://pic.imgdb.cn/item/6587df1dc458853aef7f9a01.jpg(这结构可真够大的。)https://pic.imgdb.cn/item/6587df26c458853aef7fc275.jpg(更为怪异的景象出现了。)

这个64规模的结构虽然大,可似乎也就那么回事,我打算生成个更大的。于是,256规模的结构就出现了。(以下图片是在110度广角情况下拍摄的。)https://pic.imgdb.cn/item/6587e33dc458853aef9024c1.jpg(这就是大部分256规模的结构了,还有一小部分没拍到。)

这好像还不够大,才正常正常的16倍而已。于是,我前无古人后可能有来者地把最大结构数设置成了1024,就是正常结构的64倍。执行生成根结构的命令以后...
手机发出了尖锐的爆鸣声——是不可能的,因为结构并非一次性全部生成,而是你走到哪生成到哪。于是,我得到了1024规模的结构。https://pic.imgdb.cn/item/6587e345c458853aef903ace.jpghttps://pic.imgdb.cn/item/6587e34cc458853aef90580a.jpghttps://pic.imgdb.cn/item/6587e353c458853aef90732b.jpghttps://pic.imgdb.cn/item/6587e35ac458853aef908fdd.jpg(大。确实挺大。)

这个最大结构数(max_count)最高可以设置成2147483647,但就算你生成一个2147483647规模的结构,游戏也不会崩溃,顶多有点卡而已。因为结构都是即时加载,你得探索到那里才能继续生成。而且整个结构向下延伸,到不了多久就插进地下,最后就停在基岩层了。因此,理论上不能完成这个生成。但其实可以在1024格高度的虚空世界生成规模稍小的结构,例如2700规模(超过这个规模可能就不能完全生成了),那样的话会更加壮观。

MajorGlint17689 发表于 2023-12-26 23:52:54

恭喜楼主!(迟来的祝贺~
页: [1]
查看完整版本: [含10张图警告]糖果大陆更新的新结构成功生成,接下来只需加入新房间等内容