延迟消除工具¶
简介¶
- 【独行长路/Don't Starve Alone】 是一个消除延迟的辅助mod,主要面向单人玩家,特别是从饥荒单机版转到饥荒联机版后,非常讨厌联机版的延迟感的玩家。
- 正如其名字 Dont't Starve Alone 中 Alone 一词的含义,本mod只针对单人模式进行优化,后续更新也不会支持多人游戏。
- 点击链接查看使用说明。
2023-3月更新¶
本次更新包含大量漏洞修复,优化了游戏体验,并增加恢复多人存档的功能。
查看详细更新日志
改动¶
- 新增“恢复多人存档”功能。
- 配置项“偏执模式”更名为“特殊优化”,且改为默认开启。
- 暂时禁用了对云存档的支持。详情
Bug修复¶
- 修复洞穴内的金丝雀不中毒的bug。
- 修复洞穴中不会发生蚁狮塌方的bug。
- 修复部分预设(如地震频率,死亡重置倒计时,季节时长)在洞穴不生效的bug。
- 修复启动界面上,单人设置提示不消失的bug。
- 修复为旧存档添加mod引发洞穴角色重选的bug。
- 修复离线存档在网络不良情况下可能导致付费角色(如旺达)读档失败的bug。
- 修复部分季节boss刷新时间异常的bug。
冲突修复¶
- 修复和调用函数
ShardIndex:Load()
的模组的冲突。(Insight)
底层优化¶
- 开服创建世界后强制退出,避免因自动保存生成的额外镜像。
- 更正了一处拼写错误。
运行原理¶
如果你感兴趣,可以看看这个mod的运行原理:
点击展开
许多玩家发现,即便是在自己电脑上开服玩饥荒,只要存档带有洞穴,就能感受到延迟。这是怎么会事呢?
在多人游戏中,客户端和服务器之间需要进行网络通讯,饥荒联机版的网络通讯频率是每秒15次,这意味着玩家的操作(比如点击鼠标)发送到服务器(威尔逊向鼠标处跑动)会有一个延迟,最高为66毫秒。
这种延迟与网速无关,即使客户端和服务器在同一台电脑上(比如本地开洞穴房,或者本地开专服然后自己加入),延迟依旧存在。
想要完全消除延迟,就得让玩家处于服务端。在一些多人游戏中,开房间的玩家会处于服务端,不受延迟影响,加入房间的其他玩家处于客户端,会感受到和服务器的延迟。
但饥荒这个游戏比较特殊,它有“地面”和“洞穴”两个世界,假如房主目前处于地面服务器,那么当房主进入洞穴时,地面世界会关闭,导致其他在地面的玩家无法正常游戏。为了避免这一点,在饥荒中房主也以客户端的形式连接到服务器,在进出洞穴时,玩家客户端只需要切换连接的世界,而不会关闭世界。因此,即使你是房主,也会感到延迟。
这个机制其实可以优化。在“单人联机”,即只有一名玩家的特殊情况下,不需要考虑队友,只运行这名玩家所处的世界就行了。玩家在地面,运行地面世界;玩家在洞穴,运行洞穴世界。保证玩家一直是主机,延迟就不存在,还能减轻电脑的负担。
于是有了这个mod。
如何使用¶
1. 开启本mod¶
这是一个服务器mod,在启动世界前,你需要在服务器mod列表中勾选它。
2. 单人世界¶
世界人数必须设置为1,否则无法启动。
3.(推荐)将存档类型设置为本地存档¶
使用云存档运行本mod可能会导致未知的bug,这些bug还在测试和修复,在此之前,建议你使用本地存档。
注意
你可以给旧存档添加【独行长路】,但是在添加后,游戏将无法回滚至开启mod之前的时间节点。
如何关闭mod¶
在mod开启的情况下,玩家人数必须是1,只能进行单人游戏。如果你想要回到多人游戏,进入启动界面,点击右上角的小按钮:
在弹出框中填写存档的名字,然后点击“开始转换”。
【独行长路】会创建一个当前存档的复制品,并将其转换为多人模式,当前存档不会受影响。
注意
不要直接关闭本mod。一旦关闭mod,你会丢失在洞穴的所有游戏进度。
注意
恢复存档到多人模式后,尽量不要回滚到恢复以前的时间节点,可能会导致未知的bug。
如何回滚¶
和原版游戏一样,你可以在启动世界之前或冒险中将游戏恢复到更早的时间线上。
如果游戏内回滚行为异常,可以先退出世界,然后在读档界面回滚。
其他注意事项¶
存档格式¶
开启【独行长路】的世界,存档格式和饥荒联机官方格式有所不同,所以会存在一些兼容性问题。
-
创建新世界前,在mod列表中添加本mod,这个世界的存档会采用特殊的储存格式,以支持延迟消除。
-
你也可以给一个活了100天的旧存档添加本mod。在读档时,官方存档格式会被mod自动转换为特殊格式。
-
请勿直接关闭mod:官方代码并不能完全识别mod存档格式,关闭mod会导致部分信息的丢失和重置。
自动保存¶
和单机版类似,每次下洞穴或者回到地面都会额外触发一次自动保存。
由于你是主机,所以每次保存时都会出现轻微的卡顿,这是正常现象。
重新生成世界¶
你可以在游戏内使用指令重新生成一个新世界。
由于一些底层限制,【独行长路】无法同时生成两个世界。在重置世界过程中,它会先生成洞穴,等洞穴生成完毕后再自动生成地面,最后弹出选人界面,整个过程不需要任何操作,耐心等待即可。
专用服务器¶
不要把本mod加到专服,这没有任何意义。
时间同步¶
正常情况下,洞穴和地面的时间会自动同步,植物生长、boss刷新、四季、月相等计时器也会照常运行。
部分依赖于世界运行的机制将失效,例如:当你位于地面时,洞穴内的海星不会每隔一段时间造成范围伤害。(详见特殊优化)
如果遇到时间不同步的情况,请向作者反馈。
游戏掉帧卡顿¶
【独行长路】只会优化延迟,而不会优化帧率。如果出现游戏卡顿,可按如下流程处理:
- 创建新存档,只添加【独行长路】这一个mod,进去玩几分钟。
- 如果仍然有掉帧,说明你的电脑带不动,建议订阅一些能清理地面物品的防卡mod(如掉落物自动堆叠)。假如你财力雄厚,也可以考虑换一台电脑。
- 如果不掉帧了,那说明是一些mod的原因。一些大型mod(如【Tropical Experience,三合一】)和一些优化较差的mod(如【tips,提示猎狗和BOSS的攻击时间】)会对游戏性能造成很大的负担,关闭这些mod可能会改善掉帧的问题。
关于tips为什么优化差,因为这个mod会频繁遍历全局实例哈希表Ents
,这对性能弱的电脑就是个灾难,会带来严重的掉帧。
某个物品无法带进/带出洞穴¶
请先查一查这个物品本身究竟能否带进洞穴,比如切斯特眼骨是没法带进洞穴的。
多人版本¶
正如名字所示,【独行长路】只适合单人世界,后续的版本也不会支持多人游戏。
如果你需要改善多人联机模式下的延迟问题,我觉得你应该去找klei的程序员,这是他们的工作。
测试指令¶
下面是一些有用的控制台命令,有助于排查模组bug:
命令 | 功能 |
---|---|
c_freecrafting() |
开启物品全制造 |
c_godmode() |
开启无敌,死亡后输入该指令可以复活 |
c_save() |
立刻保存 |
c_gonext"cave_entrance" |
传送到洞穴入口 |
LongUpdate(480) |
跳过一定的时间,数字代表秒数,如480秒代表饥荒的一天 |
LongUpdate(480, true) |
跳过一定的时间,但不影响玩家三围 |
TheWorld.minimap.MiniMap:EnableFogOfWar(false) |
小地图全显示(该指令仅在主机生效) |
SetDefaultTimeScale(2) |
将游戏速度设置为2倍速 |