jayli / jayli/mc-lite

提示词

Open
#41 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
JavaScript
Stars
1
Forks
0
PR merge metrics
No merged PRs in 30d

Description

树实体Tree.js的树叶被Chunk的边界切割了,而且我发现brich_tree、brichtreewithsnow、tank 也被Chunk 的边界切割了,但UglyHouse好像是好的,不会被Chunk边界切割,请你检查一下其他实体是否存在被Chunk边界切割掉的问题。先不要管src/assets/mod里加载的模型实体以及RealisticTree,这两类比较特殊,先解决JSON加载的实体以及程序中生成的方块组成的实体的被切割的问题。补充信息,790e8412ce66bfe916cff49377bab1359d7b40ef这次提交尝试修复实体被切割的问题,现在看似乎没有修复。请你继续调查一下原因。

对于优化玩家交互复杂度的目标,反向数据流 (Chunk → Worker) 仍不够透明,这个是很严重的问题吗?是否值得进一步优化?

优化玩家交互复杂度的目标,_revealNeighbors() 中跨 Chunk 调用逻辑复杂,这个复杂度的优化迫切吗?

你建议增加集成测试,基于现有的case,关于Chunk的生成、玩家消除、放置方块时的原方块面的可见性,跨Chunk的方块放置/移除测试,FaceCulling 竞态条件测试,等这些场景是否仍然欠缺,如果补充的话,我需要你在不动原始功能性代码的基础上,补充测试用例。

—————————

现在frozenmountain有时候一侧山体会像被切割一样直接是垂直到底的一面墙,这个形态不太符合山的形状,我怀疑是山体的中心位置太过靠近map边缘导致的。请你调研是否是这个问题,我不希望存在被切割成垂直到底的一面山墙的样子。frozenmountain map要跟周围的地形有更平缓的衔接,衔接处的高低差不要超过2个空格。请你分析原因并尝试解决这个问题。

现在有一个问题,就是散弹枪 mag7 射击击毁方块的时候,因为方块消失的很快,有可能会造成 OA 计算跟不上,进而导致销毁的一部分方块区域相邻的方块的面没有进行 OA 阴影绘制,我猜测是mag7 销毁方块的速度太快导致的,我想先增加 mag7 击毁方块的连锁定时器的延迟时间试试看,看能否避免这个问题。

我想这样解决这个问题,请在mag7散弹枪射击的时候加一个定时器,射击击毁方块期间不进行 OA 阴影绘制,在方块被消除之后1s统一进行绘制,请注意,游戏原有的 AO 计算逻辑和 face culling 逻辑是分开的,face culling 是应当在方块被消除的时候立即计算,以避免方块消除后有空洞的出现。AO 计算是延迟异步的,这两个动作应当分开。原来的 AO 计算我记得是在 AOSystem.js 中 实现,在 Worker 中被调用的。我希望新加的 AO 任务定时器的功能要跟原有的 AO 计算更好的整合和兼容,不要起冲突。

src/world/Chunk.js 在 AO 防抖期间,跳过 Face Culling 更新的这个逻辑,似乎有点问题,无论什么时候,删除方块的时候都要立即将跟他相邻的方块的面做Face Culling以判断是否显示,我的需求是 AO 计算延迟,而不是 face culling 延后。请确认你的修改是否有这个问题。

另外 _scheduleAOUpdate 方法跟原有的 AO 计算的时机有冲突吗?原有 AO 计算的时机我记得应当是误操作后1秒后执行一次,这两个会有冲突吗?

------------------------------

AO 计算应该跟 Face culling 分开,我希望 AO 计算全部放到 worker 中,因为 AO 不会影响功能,只是影响美观。玩家跟主世界的直接互动的部分应该在主线程里面,比如放置一个方块或者删除一个方块时的及时响应,删除一个方块后的立即执行相邻面的 face culling 等应该越快越好,AO 绘制不用那么及时。所以我想 在不影响游戏体验的情况下,AO 计算是否可以移除主线程放入worker中。

这种情况下在 Chunk.js 中的 AO 计算是否有必要呢。

另外据你观察 WorldWorker.js 和 Chunk.js 中的 AO 绘制逻辑是否一致,跟AOSystem.js里的实现一致吗,似乎应当将 AO 计算统一抽象出来放到AOSystem.js中,由它专门统一的处理 AO 的批量和增量计算、应用到网络以及和worker的通信等动作。我觉得重构方向应当是采用统一的 AOSystem.js

最后一个问题是,FaceCullingWorker.js 中的 computeBatchAO / computeIncrementalAO 是否需要。有没有必要集成到AOSystem.js中。

请你根据这些信息做详细分析架构,给出重构建议。

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by tracing the existing chunk-boundary, face-culling, and AO flows across src/world/Chunk.js, AOSystem.js, WorldWorker.js, and FaceCullingWorker.js, using commit 790e8412ce66bfe916cff49377bab1359d7b40ef as context. Separate the entity clipping, frozenmountain, mag7 timing, and AO architecture requests, then identify the relevant integration-test cases and define completion for each scoped change.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript
Domain
game-dev
Issue type
Bug
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.