Recommended Posts

DyingCrow    89

I've noticed today that, sometimes, dupes simply stop delivering dirt to some farm tiles with mealwood planted, while others are normal. I've ruled out lazyness after a whole cycle setting one as top priority, while the farmers would happily deliver dirt to nearby plots. Uprooting and replanting fixes the issue, so it doesn't look like it's the plot itself.

Save is included, if someone wants to have a look at it.

Now, don't ask me why i'm feeding mealwood to my dupes, it's just an... experiment, we can leave it at that ;)

image.thumb.png.1e98abcfb9179d7f707d877f5f183207.png

The Swanky Spaceprison.sav

  • Like 2

Share this post


Link to post
Share on other sites
Gurgel    610
Posted (edited)

I think that generally some delivery targets "lock up". Happend for fridges, mushroms, mealwood in my current base. Fridge is most annoying, as the dupes will just grill everything and drop it on the floor. I probably need to disable the grill not only when the fridge is full, but also when there is more than 30kg in front of it on the floor. 

Edited by Gurgel
  • Like 1

Share this post


Link to post
Share on other sites

I don't know what the cause is, but I have seen this as well, one of the things I also noticed that there's a couple of miligrams of drit in the farm tile. Similar things have cropped up in other devices, such as when my rocket's Oxylite tank has a few milligrams  it, and this causes it that nobody brings any more.

 

Share this post


Link to post
Share on other sites
Sasza22    1,569

This happens to mealwood, dusk caps and even bristle blossom when you use manual delivery. The farm plot requests something like 20 mcg of dirt/water/slime and there is nothing in the errands tab, like literally no task. Saving and loading fixes it. Apparently it can also happen when delivering resources for buildings but a simple cancel and reorder works there.

Seems like the dupes cannot perform a deliver task below a certain amount. Maybe it is caused by the fix for infinite microgram delivery that kept happening for fridges a few patches ago.

  • Like 3

Share this post


Link to post
Share on other sites
Lacost    186

Happened to me too with planter boxes. Just delete them and rebuild. The bug is too rare to by obnoxious but you should file a report in the bug section of the forum.

Share this post


Link to post
Share on other sites
DyingCrow    89
3 hours ago, Sasza22 said:

This happens to mealwood, dusk caps and even bristle blossom when you use manual delivery. The farm plot requests something like 20 mcg of dirt/water/slime and there is nothing in the errands tab, like literally no task. Saving and loading fixes it. Apparently it can also happen when delivering resources for buildings but a simple cancel and reorder works there.

Seems like the dupes cannot perform a deliver task below a certain amount. Maybe it is caused by the fix for infinite microgram delivery that kept happening for fridges a few patches ago.

Good explanation, now i see where the issue is.

image.thumb.png.469e695fca5a7f7010bc3523c1e182ab.png

Share this post


Link to post
Share on other sites
Gurgel    610

Probably a rounding error. If this is short floats, they only have 23 significant bits + sign. Now, if anybody were to subtract those 0.0000496 kg from, say 100kg, they may well end up with the result still being 100kg. And that seems to be the issue in some way.

  • Like 1

Share this post


Link to post
Share on other sites
Lacost    186
11 hours ago, DyingCrow said:

Good explanation, now i see where the issue is.

image.thumb.png.469e695fca5a7f7010bc3523c1e182ab.png

Imagine growing plants in a greenhouse and all of a sudden one starts to wither because it is missing 49.6 mg of dirt.

Apparently, life does not always find a way.

  • Haha 2

Share this post


Link to post
Share on other sites
Gurgel    610
1 hour ago, Lacost said:

Imagine growing plants in a greenhouse and all of a sudden one starts to wither because it is missing 49.6 mg of dirt.

Apparently, life does not always find a way.

Naa, computers are just messed up! 

Share this post


Link to post
Share on other sites
DaveSatx    83
On 5/20/2019 at 3:29 PM, DyingCrow said:

I've noticed today that, sometimes, dupes simply stop delivering dirt to some farm tiles with mealwood planted, while others are normal. I've ruled out lazyness after a whole cycle setting one as top priority, while the farmers would happily deliver dirt to nearby plots. Uprooting and replanting fixes the issue, so it doesn't look like it's the plot itself.

Save is included, if someone wants to have a look at it.

Now, don't ask me why i'm feeding mealwood to my dupes, it's just an... experiment, we can leave it at that ;)

image.thumb.png.1e98abcfb9179d7f707d877f5f183207.png

The Swanky Spaceprison.sav

ive seen it as well and not just with mealwood.  also with mushrooms and slime.  the only fix i've found is to uproot and plant again :/

Share this post


Link to post
Share on other sites
renkousami    0

I encountered the opposite bug once (I think it's resolved now) where they wouldn't stop delivering dirt. 

Share this post


Link to post
Share on other sites
Nightinggale    311
On 5/21/2019 at 9:01 AM, Gurgel said:

Probably a rounding error. If this is short floats, they only have 23 significant bits + sign. Now, if anybody were to subtract those 0.0000496 kg from, say 100kg, they may well end up with the result still being 100kg. And that seems to be the issue in some way.

Decompiling the source seems to indicate the code use floats all over, which is 32 bit. They could have used double, which is 64 bit, but from what I can tell, they use floats. Don't ask me why. It is possible that it's an issue with the decompiler though, though I think it's fairly good for something as simple as telling floats from doubles.

Why even use 32 bit variables today? Do anybody really use 32 bit systems, which are fast enough for ONI?

Share this post


Link to post
Share on other sites
Gurgel    610
1 hour ago, Nightinggale said:

Why even use 32 bit variables today? Do anybody really use 32 bit systems, which are fast enough for ONI?

I doubt any decent decompiler would screw base types up. This is probably a reliable finding. Thanks.

One thing is faster memory I/O, since you only need to move half the bytes. The other is smaller memory footprint. It may not be raw computing speed. A very simple benchmark (just addition) I just did shows pretty much the same speed for float and double. That is with gcc on Linux and the assembler source indicates that SSE2 (which does double) is used. Of course, if this is mostly some vector processing and the SSE unit is fully used, it may have an impact on raw computing speed as well. Would be interesting to see what happens if ONI is compiled with double instead of float. As it is, rounding is tricky and getting it wrong gives the effects we see.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now