February 14th, 2023 Livestream
Q&A: Can please explain the difficulty with fixing Belts & Pipes?
01:25 Floating Point errors
This question has 3 related videos
- September 17th, 2024 Livestream Q&A: Is the Pipe Mk.2 bug still a thing? https://www.youtube.com/watch?v=3m36IDlbrKI
- March 14th, 2023 Livestream Q&A: Official answer for Mk.3 Miners? https://www.youtube.com/watch?v=UC-nv6xc1CY
- February 21st, 2023 Livestream Q&A: What's the plan with Mk.4 Belt inaccuracies https://www.youtube.com/watch?v=pJBLbD8iqEo
Suggested Wiki Reference Code
<ref name="yt-zbbsnx-fNoA">[https://youtu.be/zbbsnx-fNoA YouTube - February 14th, 2023 Livestream - Q&A: Can please explain the difficulty with fixing Belts & Pipes?]</ref>
Topics
- Features > Buildables > Conveyor Belts
- Features > Buildings > Miner
- Features > Fluids > Pipes
- Technology
Transcript
can you please explain what exactly is difficult in fixing mark IV belts and Mark II pipes for correct speed isn't that isn't that so hard to fix, so if if it is easy to fix I feel like we should we would have fixed it at this point, that's a good one but that's that's not always the case though because sometimes things just kind of slip through the cracks, but for the mark four belts and like the the inaccuracy there that's weird we don't know exactly why that happens, and we have investigated it and I don't know what the result of that investigation was I think maybe something else came up or something I don't know I'll have to make a note of that because actually I want to check in on that again, belt speed thing but, when it comes to the the the correct speed for pipes however that is due to a, like limitation with the the numbers that we're using we're using we don't have enough Precision with the values that we're using we're getting like two high values that we can't like precisely store within the commuter and that's an issue with like, floating Point values for computing in general, so it's like we need to change like the formula or something like that if we want to make that work, so, yeah it's it's kind of like hard to explain it because you kind of like need to actually see the code and like actually explain it in code but that's that's the gist of it essentially the pipes is then essentially floating Point errors and the mark four belts like being inaccurate that's, weird I don't know what's up with that what's broken with Mark four belts so there's a really strange bug, with and there's a really good QA post on this actually so so you actually don't need to make a keyword post because we we definitely know what the like Reaper cases are for it we just haven't figured out like why it's happening fully so there's an issue where depending on how you divide the belts, aft mark IV speed depending on how you divide the belt you lose throughput on the Belt and we don't know why because it doesn't make any make any sense, that's the gist of it so like depending on how you divide the belt you get different speeds on it, but it's it mostly affects people like that are building really like 100 efficient factories so like not everyone notices it even, and I don't think it's like huge issue like it's not huge number changes but it's enough to like if you want to have like a fully 100 efficient Factory like at some point of the chain you're gonna notice like this numbers don't add up and that might be because of that, so, yeah that's that's essentially that as a software engineer I'm thankful every day that I work in a domain that doesn't require floating Point numbers yeah so when- I remember I remember very vividly when I started doing gamedev and I was fascinated by like wow they're using floating points so often why is that because they're not precise and then like you realize like how much faster it is to use them and it makes sense on the GPU and all that so like yeah kind of makes sense, but it's annoying because they're floating point and floating points it's, the the Precision is floating floating around everywhere it's floating just like never mind I forgot we were streaming for like a second oh my God that's dangerous I mean, that's happened that's happened a couple of times when I was when you were in Australia and I was streaming alone there were a couple of times where I was like I was streaming and then I forgot I was streaming and I started like doing other and then I was like wow this is like streamer I'm watching their chat is moving really fast and then I'm like wait that's my chat jeez any updates refracted Factory game to integer only sorry gone yeah that would be but I mean that's the thing that you could do into your only, for certain parts of it right but then you need to, handle how you do the calculations through the integers so like you need to translate if you want to do any type of, decimal values like you need to translate it and then it needs to make sense within that translation and then the same thing you can also run out of precision at some point too so because like is there isn't there like for example sorry that we're not talking about the pen message right now but like for example like I don't know if people who aren't Computer Sciences or programmers realize this but like isn't like the number 0.1 isn't that like not actually there's something like really simple like that it cannot be represented in floating point I mean there are many numbers that won't be yeah there are many numbers something as simple as that like cannot be represented yeah I think it's also like it varies which numbers doesn't fit and Float exactly yeah different one doesn't so yeah yeah for those of you who don't know how to like who don't know programming or computer science stuff just just FYI certain numbers just like can't even be, presented in a computer yeah we just approximate them and guess or rather their representation is approximated yeah and then you're you're doing calculations that sometimes need to be a precise exact you're doing that on approximations and then when you do that multiple times you know at some point at the end you're gonna deviate from your expected results you know and that's just kind of how it is like there's not the only way to get around that is the use precise values but then they're not as fast and then in certain cases you want to have fast calculations so exactly it's it's a tricky subject yeah like Doubles Doubles are much more doubles are actually precise but then they're much slower to use and they're much bigger I think too I think they're twice the size I'm not sure I can't remember and I can't remember either