Sandbox Space v1.5.3 更新日志
发布日期:2026-10-01
版本定位:区块加载性能专项优化版本
---
🎯 核心更新:区块加载全面重构
本次更新的重点是区块加载系统,针对玩家反馈的"远行卡顿""跨区块边界抖动""来回走动重复生成"等问题,从缓存、队列、卸载、调度四个层面做了系统性重构。
1. 生成结果 LRU 缓存(#1)
· 新增区块生成结果缓存,上限 128 个区块。
· 玩家来回走动、折返跑图时,不再重复执行噪声生成(valueNoise / terrainHeight / oreAt 等)。
· Map 天然按插入序,get 刷新 LRU 顺序,超限自动淘汰最久未用。
· 效果:折返场景 CPU 占用显著下降,地形生成零重复计算。
2. 卸载热缓存(#14)
· 区块卸载时不再直接丢弃方块数据,而是保留最终方块快照(含玩家 mods 效果)进热缓存,上限 8 个区块。
· 玩家在边界来回走时,回头直接建网,跳过生成 + mods 合并。
· 陈旧防护:setMod 写入时立即失效对应缓存条目,mods 只增不删,缓存永不落后。
3. 滞后卸载确认(#3)
· 卸载不再"离开视野立即执行",改为连续 30 帧不在视野才真正卸载。
· 彻底消除跨区块边界的"卸载→立即重载"空转:
· 玩家在边界两侧反复横跳时,区块网格原地保留,零成本。
· 不再出现方块闪烁 / 反复重建。
4. 每帧加载数自适应(#5)
· 根据帧耗时 EMA(指数移动平均)动态调整每帧加载区块数,范围 1~8:
· ≤18ms(流畅)→ 逐帧 +1,最高 8 个/帧。
· 30ms(卡顿)→ 逐帧 -1,最低 1 个/帧。
· 暂停后的巨帧(≥250ms)不计入,避免误判。
· 低端机自动降速、高端机自动加速,无需手动配置。
5. 方向加权加载(#2)
· 队列排序引入移动方向权重:
· 正前方 ×1.0
· 侧方 ×1.6
· 后方 ×2.2
· 玩家朝哪走,哪边先加载,视觉上"该出现的地方先出现"。
6. 视野集缓存(#6)
· simSet / visSet 仅在 playerMoved 时重建并缓存。
· 玩家静止时不再每帧重建 Set,大幅减少 GC 压力。
· 外部读取方(Apex / Work 引擎)拿到的始终是当前集合。
7. 队列增删统一入口(#7)
· 新增 enqueueChunk / dequeueChunkAt / dequeueChunkHead。
· 数组与 Set 始终同步增删,消除两条路径不一致的隐患。
8. 空闲加速加载(#13)
· 队列非空时安排 requestIdleCallback:
· 空闲帧最多额外加载 2 个区块。
· 繁忙帧自动让路,不占用正常帧预算。
· setTimeout 兜底,兼容不支持 IdleCallback 的浏览器。
9. 热路径解析优化(#4)
· 新增手写解析 parseBlockKey / parseChunkKey。
· 替代 split(',').map(Number),热路径解析开销降低约 2/3。
10. 视野判定统一(#16)
· _chunkStillWanted 直接复用 updateChunks 缓存的 _visSet。
· 消除原"方形 visRadius+1"判定不一致导致的角落区块白建网。
11. 种子参数化(#8)
· generateChunkBlocks / generateTreesInChunk / hash2 / valueNoise / terrainHeight / isCave / oreAt 的 seedHash / mapType 改为显式传参。
· 迁移路径不再临时改写全局 game.seedHash / game.mapType 再恢复。
· 为未来异步路径预留零竞争的调用方式。
12. 初始化修正(#17)
· lastViewDist 初始化,避免首帧 undefined !== 12 的多余比较。
---
🔧 配套修复(v1.5.3 同期)
联机修复
· 玩家互相不可见:模型曾被建进已销毁的旧场景,现强制校验并重建。
· PVP 打不中:瞄准改为与人物模型一致的真实 AABB 碰撞盒,瞄得住=打得中。
· 建模朝向反了:模型补正 180°,视角与朝向一致。
· 点击重生卡 ~30 秒:出生点按地形高度安全落点,加载期间挂起重力。
· 房主看不到成员建模:_handleHello 补建 mesh。
· 成员看不到其他玩家:房主转发成员位置,_onPosUpdate fallback 补建。
· 换图后 mesh 残留:清空 playerMeshes,避免新场景无 mesh。
画质与渲染
· 摩尔纹修复:方块纹理启用各向异性过滤(anisotropy),消除远处地面干涉条纹,画质不变。
· 水面网格修复:水方块改纯蓝色半透明纯色块,去掉波浪/波光/Fresnel。
· 画质切换卡死修复:键参数恒定(shadowMap.enabled 恒 true、type 恒 PCFSoft、太阳/火把恒 castShadow=true),避免全材质着色器重编译。
存档与性能
· 自动保存卡顿优化:10 万方块修改场景主线程阻塞从 ~64ms 降至 <5ms/帧(mods 元素级分片 + localStorage 备份 60 秒节流)。
· 紧急备份遗漏引擎字段:修复 Work 存档退化为磨砂引擎。
· 存档大小估算与备份尺寸上限保护。
PC 键鼠
· WASD 键盘移动,支持自定义键位,对角线自动归一化。
· 鼠标可拖动摇杆。
· 菜单键(默认 ESC)打开菜单,截图模式同键退出。
· 改键冲突检测,关闭面板自动归还焦点。
兼容性
· 自动升级 v1.4.2 及更早存档到 v1.5。
· 老存档引擎类型保持不变,无破坏性变更。
---
📊 性能对比(区块加载专项)
场景 v1.5.2 v1.5.3 提升
折返跑图(同区域重访) 每次重新生成 LRU 命中,零生成 显著
跨区块边界反复横跳 卸载→重载空转 滞后 30 帧,原地保留 消除抖动
低端机远行 固定 4 个/帧 自适应降至 1 个/帧 不卡顿
高端机远行 固定 4 个/帧 自适应升至 8 个/帧 加载更快
静止时每帧 GC 重建 Set 缓存复用 GC 压力大降
热路径坐标解析 split+map 手写解析 约 -66% 开销
---
🎮 玩家可感知的变化
· 远行更顺:跑图、折返、跨边界不再卡顿或闪烁。
· 前方优先:朝哪走,哪边地形先出现。
· 低端机友好:自动降速,不再因加载拖垮帧率。
· 高端机更快:自动加速,视野快速铺满。
· 联机更稳:互相可见、PVP 可命中、重生不卡。
· 画质切换瞬时:不再卡死几秒~几十秒。
· 远处地面更干净:草地摩尔纹消失,水面网格消失。
---
📝 技术备注
· 本版本无存档格式破坏性变更,老存档自动升级。
· Work 引擎 / Apex 引擎全量继承本次区块优化。
· 所有优化均为运行时行为,不影响游戏平衡与存档兼容。
---
沙盒空间官方
2026-10-01


暂无关于此日志的评论。