rheo reports: get rid of flowing liquid - it ... #1931
Labels
No Label
1. kind/balancing
1. kind/breaking
1. kind/bug
1. kind/construction
1. kind/documentation
1. kind/enhancement
1. kind/griefing
1. kind/invalid
1. kind/meme
1. kind/node limit
1. kind/other
1. kind/protocol
2. prio/controversial
2. prio/critical
2. prio/elevated
2. prio/good first issue
2. prio/interesting
2. prio/low
3. source/art
3. source/client
3. source/engine
3. source/ingame
3. source/integration
3. source/lag
3. source/license
3. source/mod upstream
3. source/unknown
3. source/website
4. step/approved
4. step/at work
4. step/blocked
4. step/discussion
4. step/help wanted
4. step/needs confirmation
4. step/partially fixed
4. step/question
4. step/ready to deploy
4. step/ready to QA test
4. step/want approval
5. result/cannot reproduce
5. result/duplicate
5. result/fixed
5. result/maybe
5. result/wontfix
ugh/petz
ugh/QA main
ugh/QA NOK
ugh/QA OK
No Milestone
No project
No Assignees
3 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: your-land/bugtracker#1931
Loading…
Reference in New Issue
No description provided.
Delete Branch "%!s(<nil>)"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
rheo reports a bug:
Player position:
Player look:
Player information:
Player meta:
Log identifier
Profiler save:
Status:
Teleport command:
Compass command:
all flowing liquid nodes could be added to the LBM created in #1633
this would have some performance implications, but probably not as much as letting liquid flow uncontrollably.
another solution would be to modify the engine code to compute flow differently. i think i'm competent enough to do this, but it would be serious work to test it properly, and it's not super high on my priority list. it could even be made a configuration option so as not to break existing setups.
Would upstream benefit from such an engine performance fix?
Wouldn't such a lbm mean that all wells and other existing flowing stuff get recalculated and then redone exactly the way they were before, adding more to the load? As long as we don't remove the source node, the flowing will start again, right? Or am I missing something obvius here?
Is there a way to profile liquid reflow?
Yes, i really don't like the idea of creating our own fork of the engine code.
Yes, it will create some more lag in that case, but less lag in the case of e.g. massive spills in caves that stretch thousands of blocks high and hundreds of blocks wide. Particularly when lava and water spills meet.
I don't remember exactly, but i tweaked some of the following config values on Blocky, and I remember doing some sort of testing to find acceptable values.
current values on blocky are
I apparently had
liquid_loop_max = 10000
set at some point but I removed that, because I think it was too restrictive.But none of that solves the general issue.
EDIT:
note that all of these values are trade-offs, with no clear "correct" value.
liquid_update
interval just means there's more nodes that're waiting to flow when you get around to updating liquidIn light of that, I don't think I made the right choice with regard to my goals for the blocky performance tweaks, which were to try to make step lengths consistent, because that's best for machines. I should have decreased the liquid update interval, and decreased
liquid_loop_max
, while adding a large-ish purge time to ensure that the queue doesn't get out of control.Also, the suggestion in the original description of the issue was to get rid of the flowing nodes entirely. Alias_force them all to air. Which would probably deserve the
kind/meme
label.I can think of some other saner "flowing" mechanics. I'm just daydreaming here, this isn't a concrete proposal yet.
Starting with the "no flowing nodes of any kind" idea, liquids would end up floating if you dug under them. Turning them into a "falling node" doesn't seem like a good solution for that, given what we already know about the behavior of the mime glue nodes when they were in
group:falling
. It seems like perhaps instead, liquid source nodes should "flow" into the space below them, using a similar mechanism to the current flowing mechanism. They would fall, but one node at a time, and no entities. This could be extended to let them flow downards-diagonal if that was available. This could further be extended to create new "leveled" liquid nodes - sort of like 1/8th of a water node or something (the scale could be variable), which could flow over onto neighboring "leveled" nodes if their levels were different enough. This sort of mechanic would also interact well w/ my "bucket_redo" mod (see #1746), as that provides a natural way to pick up partial liquid nodes.Collection of previous dialogue on this topic (this comment will be extended hopefully multiple times)