Hi guys,
I was trying to model simple water flow for a little game project of mine (more of a programming exercise than anything), but I wasn't having much luck with it. So, I figured I'd try my luck here, since DF has a pretty solid fluid system in place, and you guys probably know the quirks of it better than I do.
Now, I have done some research on DF fluids, so don't worry. The wiki wasn't incredibly useful for specifics, but a few posts by Kanddak were
very helpful. In order to emulate it though, I need to understand it...
I went into the object arena, paused the game, and put down a 2x2 grid of water. I stepped frame-by-frame until one of the water tiles updated, noting how many frames it took it to update. I stopped once all the initial water had moved. Now as you can see, 1 frame does not necessarily indicate 1 update. It takes an "unpredictable" number of turns before a fluid will move. Does each tile have an "update timer" similar to a creature's speed? Is this related to fluid density (or whatever the property is called) in the raws?
It's the only explanation I can think of for the "staggered" updates, both in regards to tile position and time, especially since I placed all the water on the same frame on a dry area. Take a look here for a more exaggerated example:
However it seems that whenever a tile DOES update, it will go down to 1/7, dispersing everything else to its neighbours, or at least in the case of a flat area with only minimal water present.