下载客户端

开发日志 #91 | 铸造厂周五:存档文件大小优化

2025-11-14 15:00:05
发布在FOUNDRY
转载

AI智能总结导读

这篇开发日志介绍了为支持游戏3.0版本火车系统,针对存档文件大小进行的优化工作。因大地图探索导致存档超100MB,团队测试三种方案后,选择不存储未修改区块地形数据的方案,使存档大小减少30%,还能提升好友加入、云同步及存档速度。

各位创始人,大家好! 在今天的铸造厂周五中,我想分享一些为支持3.0版本更新已公布功能所进行的幕后工作,这些功能我们已在第89期铸造厂周五中介绍过。例如,在添加火车系统时,我们希望玩家能更多地利用铸造厂所提供的无限世界。 我初步分析了在更大的世界中使用火车时可能出现的问题,除了一些需要修复的视觉错误外,大部分内容都表现良好。 但一个更严重的问题是,由于大量的世界探索,我用于测试的存档文件大小已超过100MB。这种存档文件增长问题需要通过一些重要的优化来解决。通常我们从反馈玩家(感谢!)那里收到的存档大小在10MB到50MB之间,具体取决于他们在游戏中的进度。当然,有些更投入的玩家拥有更大的存档,但这些存档将从此次存档文件优化中获得更大收益。较小的存档文件之所以有益,是因为它能让朋友加入你的世界时速度更快,与Steam云同步存档的速度也更快,同时还能减少(自动)保存游戏所需的时间。 通过分析,在分享的存档文件中(尤其是我的存档),很大一部分内容只是到达目的地过程中经过的区块地形数据,这些区块之间仅由一条传送带或火车(即将推出!)连接。但所有曾被加载过的区块,无论是否修改,都会被存储在存档文件中。这导致存档文件中约有一半的内容是地形数据。

为解决此问题,我们尝试了几种方案,从较简单的开始: 1. 提高压缩级别(Foundry内部使用Zstandard压缩3D区块数据,效果显著),但这并未带来明显收益,反而导致速度大幅下降。 2. 对多个区块进行分组压缩。由于组内区块之间存在大量重叠和连续性,这似乎是个好主意,但遗憾的是,在我测试的场景中仅获得了15%的改进。 3. 不存储未修改的区块,仅在需要时重新生成它们。这让我们能够节省(双关语无意)大量数据,但它也有一个很大的缺点,那就是必须确保Foundry代码中的所有地方都要在玩家进行任何操作时,告知保存系统某个区块已被修改。 最终我们决定选择最后一个方案,因为前两个方案在解决由火车导致的存档文件大小增加问题上,似乎不如第三个方案有效。为了避免给未来的工作带来太多麻烦,我决定目前只对地形实施重新生成功能,因为地形是所有区块数据中最大的部分。这样做之后,存档文件大小确实减少了30%。

作为一项额外的安全措施,以确保游戏不会删除任何重要内容,我已进行如下设置:游戏将始终完整存储工厂附近的所有区块,并且不会猜测现有存档中哪些区块可能已被修改。 以下是一个基地的示意图,其周围有大量未修改的区块,这些区块现在将不再保存地形数据。

我们将等待收到测试玩家的积极反馈,以确认是否存在任何未预见的问题,但到目前为止,测试结果非常好。区块数据中还存储了大量可以重新生成的内容,因此进一步减少数据量是完全可能的。 - 米兰

评论

共0条评论
face
inputImg
相关阅读
最新更新

最新更新

  • 理解生产效率 — 在空间站中,你可以消耗研发点数来提升生产效率。具体机制如下: 介绍 当你身处空间站时,可以前往研发实验室消耗点数,以降低产品重量、提高产品售价或提升生产效率。前…
  • 测试货运电梯 — 我对游戏中货运电梯的性能感到好奇,因此做了一个小实验 简介 在超过两百小时的游戏过程中,我遇到过一些情况,感觉货运电梯没有达到我期望的性能。虽然可以在游戏内查看…
  • 了解将货物上传至空间站的详细信息 — 关于单位时间内可向空间站上传货物量的信息 简介 在我的Steam指南《更高效向空间站运送货物的方法》中,我提出了在游戏中尽可能高的海拔处放置停机坪的想法,以缩短…
  • 了解装载机、输送机和货运电梯 — 关于装载机、输送机和货运电梯的工作原理及相关数据讨论 简介 这是我的另一篇“理解”指南,不仅会介绍装载机、输送机和货运电梯,还会解释它们的使用方法。 在深入本指…
  • 理解管道、管道系统和泵 — 本指南将介绍使用管道和泵输送流体的基础知识。 简介 这是我的另一篇“理解”系列指南,旨在介绍游戏中的管道和泵及其使用方法。 管道 管道是输送流体的初始方式,建造…
  • 铸造厂计算器Excel表格 — 各位和我一样痴迷于表格的玩家们,我制作了一个电子表格。 这个表格已完成到第5级科研包和涂装机器人的内容,但缺少建筑物的建造需求。 信息说明: 1. 如果你打算编…
  • 了解如何创建简单控制循环 — 这是一份关于如何使用视频设置简单控制回路的简短指南。示例涉及根据存储容器中的物品数量来开关为某些装配机供电的变压器。 创建一个非常简单的控制回路 不久前,我在D…
  • 了解地热喷口、锅炉与能源 — 本指南介绍了如何利用地热喷口群来发电。 简介 最近的2.1版本更新新增了地热喷口,它们位于熔岩洞穴深处。此次更新还添加了一个新组件——地热锅炉,将其放置在喷口上…
  • 数据网络 — 本指南旨在简要介绍电路网络的一些简单用法。 数据网络简介 数据网络是一种非常强大的工具,可用于操控工厂中的机器,为你提供更多自定义机器功能的方式。其应用可以很简…
  • 数据电缆系统 - 首次实装 — 在本指南中,我将介绍自己首次实现数据电缆系统的方法。这或许能帮助你使用这个功能强大但操作复杂的工具。 背景 我开始了新游戏,并设定了以下目标: