Re: [0.15.1] Non-Conducting heat pipes after 60 tile
Posted: Sun May 07, 2017 8:32 pm
You can still use robots, but the maximum reliable heat pipe length is limited to 30 or so.
www.factorio.com
https://forums.factorio.com/
Probably less. I used Robots for placement when I didn't know about the issue and it already caused efficiency issues with the Exchangers closest to the Reactor... with maybe 5-10 tiles distance. So at a distance of 30 tiles they are probably just purely cosmetic.saturn7 wrote:You can still use robots, but the maximum reliable heat pipe length is limited to 30 or so.
The maximum reliable heat pipe length remains 30.MeduSalem wrote:Probably less. I used Robots for placement when I didn't know about the issue and it already caused efficiency issues with the Exchangers closest to the Reactor... with maybe 5-10 tiles distance. So at a distance of 30 tiles they are probably just purely cosmetic.saturn7 wrote:You can still use robots, but the maximum reliable heat pipe length is limited to 30 or so.
Then this would appear to be a report on the flaw of the design. When your design is so egregiously wrong a large number of people think it is a bug, and no one else thinks it's a feature (as the "Not a bug" forum labels it), it's probably a very large bug. Let alone the fact that this feature breaks (more important) orthogonal features: drone placement, blueprints, auto replacement after destruction. It also is just inconsistent.Klonan wrote:
There is something wrong with the design of the system, we are aware of this, the mechanic of the heat transfer isn't clear, from a gameplay perspective it isn't working well
However the actual implementation is working as intended, it was written to act as it is acting, and thus there is no bug.
We have had some discussion about changing the way they work, but as it stands, it is working as it was designed
I recommend implementing it (internally, code wise) parallel to how pipes / flow functions. Treat the reactor / pipes as volumes of water, where the fluid level (heat) 'flows' from high (hot) to cold (low). This should prevent reinventing the wheel, which appears to not be working as intended in current form. Treating heat similar to water level will also prevent the odd mismatches we are seeing (where sections of heat pipes with no heat flow show temperature differences as high as 20C). Further, your intended 'transfer rate' would actually work as expected, since it currently works for pipes. You would naturally see temperature deltas across pipes as you increased the thermal load (flow) on them, which is exactly what you would expect with real heat pipes.Klonan wrote:There is something wrong with the design of the system, we are aware of this, the mechanic of the heat transfer isn't clear, from a gameplay perspective it isn't working wellmalventano wrote:I'm sorry guys but this is most definitely a bug - in more ways than one. Something is absolutely broken with the mechanic as it is currently implemented. You guys are the best / most active developers I have seen across any software project ever, but it baffles me that you can look at what heat pipes are doing and say there is nothing wrong with the implementation. You might as well be saying that 2+2=5 is not a bug.Rseding91 wrote:This is currently how heat pipes work. The order you build the pipes will change how they behave.
It's not really desired to work that way but it's not a bug. We may change it in the future.
However the actual implementation is working as intended, it was written to act as it is acting, and thus there is no bug.
We have had some discussion about changing the way they work, but as it stands, it is working as it was designed
I'm sure the devs are aware of this, but for reason we don't know they have decided to postpone addressing that problem for now. I guess there is some deeper problem with the design of heat pipes that would need considerable effort to fix; and either the devs are not sure yet how to fix it properly, or they have other priorities for the time being (fixing more critical bugs).mOoEyThEcOw wrote:Then this would appear to be a report on the flaw of the design. When your design is so egregiously wrong a large number of people think it is a bug, and no one else thinks it's a feature (as the "Not a bug" forum labels it), it's probably a very large bug. Let alone the fact that this feature breaks (more important) orthogonal features: drone placement, blueprints, auto replacement after destruction. It also is just inconsistent.Klonan wrote:
There is something wrong with the design of the system, we are aware of this, the mechanic of the heat transfer isn't clear, from a gameplay perspective it isn't working well
However the actual implementation is working as intended, it was written to act as it is acting, and thus there is no bug.
We have had some discussion about changing the way they work, but as it stands, it is working as it was designed
I just don't understand how you can implement complex train systems, conveyors, and fluid pipes that can be hooked up in any order and be consistent, but not a simple heat pipe... and still call it a feature!
Since you know heat pipes are not working as intended regardless if it's by design or implementation this issue is a known bug and certainly not not a bug.Klonan wrote: There is something wrong with the design of the system, we are aware of this, the mechanic of the heat transfer isn't clear, from a gameplay perspective it isn't working well
However the actual implementation is working as intended, it was written to act as it is acting, and thus there is no bug.
We have had some discussion about changing the way they work, but as it stands, it is working as it was designed
I would agree with you except the devs marked it as "Not a bug" ("It's a feature") rather than "known issue". If this is a feature working as intended then it doesn't sound like they plan on fixing it anytime soon (like it doesn't even sound like they are planning on doing anything about it this major version; which means it will probably be in 1.0 or last for this entire year), which is super frustrating (I spent like 4 hours trying to figure out why my heat pipe setups weren't working, I got pretty frustrated from dealing with it, major pain point).saturn7 wrote: I'm sure the devs are aware of this, but for reason we don't know they have decided to postpone addressing that problem for now. I guess there is some deeper problem with the design of heat pipes that would need considerable effort to fix; and either the devs are not sure yet how to fix it properly, or they have other priorities for the time being (fixing more critical bugs).
SaurusRex wrote:Signed up after spending a while utterly baffled and eventually finding this thread.
We set up a nuclear plant at our base, but noticed something odd about the heat pipes. Here's a screenshot of the heat exchanger layout for reference (yes, I'm aware of the many ways in which it could be improved).
ScreenshotThere was a strange temperature gradient where the bottom left corner was barely 330 degrees, but the top right corner was nearly 1,000 degrees. We figured it would stabilise after a while, but over 30 hours later it remained like that. We got to the point where we weren't getting enough power, and set out to resolve the issue. After some experimentation got absolutely nowhere and only resulted in more confusion, it was time to do some googling, and I stumbled upon this thread and similar ones on reddit. Upon learning of this oddity we proceed to rip up all the heat pipes and carefully - slowly - place them down one at a time from the reactor outwards. As of now, they're all at least 970 degrees, with absolutely no changes to layout.
If this is "working as designed", then that design should be scrapped.
I've played this game for hundreds of hours, and am consistently impressed with the level of detail and care that has gone into this game, which makes it all the more disappointing that such a fundamentally broken part of an exciting new feature is apparently working as intended and that it MIGHT be changed in the future. The behaviour as it stands is unintuitive, undocumented, and quite frankly bizarre. Please don't let this ugly stain on an otherwise outstanding game remain for long.
Rseding91 wrote:This is currently how heat pipes work. The order you build the pipes will change how they behave.
It's not really desired to work that way but it's not a bug. We may change it in the future.
I've proposed a possible solution that should clear up the confusion/other issues under the suggestion forum. It's an expansion on my earlier post in this thread, but with numbers added to make implementation as simple as possible.Gergely wrote:This bug is still not fixed in 0.15.9 Why is this "Not a bug"?! Placement order matters now?What about blueprints? Robot construction? We all have to "live with this?"
Exactly this! +100mOoEyThEcOw wrote:Then this would appear to be a report on the flaw of the design. When your design is so egregiously wrong a large number of people think it is a bug, and no one else thinks it's a feature (as the "Not a bug" forum labels it), it's probably a very large bug. Let alone the fact that this feature breaks (more important) orthogonal features: drone placement, blueprints, auto replacement after destruction. It also is just inconsistent.Klonan wrote:
There is something wrong with the design of the system, we are aware of this, the mechanic of the heat transfer isn't clear, from a gameplay perspective it isn't working well
However the actual implementation is working as intended, it was written to act as it is acting, and thus there is no bug.
We have had some discussion about changing the way they work, but as it stands, it is working as it was designed
I just don't understand how you can implement complex train systems, conveyors, and fluid pipes that can be hooked up in any order and be consistent, but not a simple heat pipe... and still call it a feature!
Just registered to quote this.SaurusRex wrote:Signed up after spending a while utterly baffled and eventually finding this thread.
We set up a nuclear plant at our base, but noticed something odd about the heat pipes. Here's a screenshot of the heat exchanger layout for reference (yes, I'm aware of the many ways in which it could be improved).
ScreenshotThere was a strange temperature gradient where the bottom left corner was barely 330 degrees, but the top right corner was nearly 1,000 degrees. We figured it would stabilise after a while, but over 30 hours later it remained like that. We got to the point where we weren't getting enough power, and set out to resolve the issue. After some experimentation got absolutely nowhere and only resulted in more confusion, it was time to do some googling, and I stumbled upon this thread and similar ones on reddit. Upon learning of this oddity we proceed to rip up all the heat pipes and carefully - slowly - place them down one at a time from the reactor outwards. As of now, they're all at least 970 degrees, with absolutely no changes to layout.
If this is "working as designed", then that design should be scrapped.
I've played this game for hundreds of hours, and am consistently impressed with the level of detail and care that has gone into this game, which makes it all the more disappointing that such a fundamentally broken part of an exciting new feature is apparently working as intended and that it MIGHT be changed in the future. The behaviour as it stands is unintuitive, undocumented, and quite frankly bizarre. Please don't let this ugly stain on an otherwise outstanding game remain for long.
A form of this already happens with pipes and tanks, which is why I've suggested that the heat system function using a simple port of that code. If I was familiar enough with the mod API, I'd try and roll my own fix, but I'm not nearly experienced enough to pull that off just yet.TruePikachu wrote:Something which I feel might be missing from this thread is an explanation as to how the currently-implemented system works, so that it could be better understood as to why the "issue" is being considered "Not a bug".
Going by the behavior reported here, I believe the underlying implementation is as such: there is a linked list of all the game entities, which is iterated across every game tick so that entities can update themselves; when an entity is created, it is placed at the end of the list, and when an entity is destroyed, it is removed from the list the next time the tick loop reaches it. Heat pipe conductance is done, as such, in the order they were placed, considering their own temperature, their neighbor's temperatures, and the distance from the original heat source.
I feel that, if the above is correct, the best way to implement the heat pipe's update routine would be to ensure that a heat pipe's temperature's changes aren't considered inside of a world update. I think the fastest way to do this would be to have 3 distinct pairs of temperature and delta fields, where the "current", "previous", and "next" pairs cycle every tick (and can be determined by a global counter); the update routine would read the temperature+delta sums that were in effect the previous tick, set the delta fields for the current tick, and prepare the pair for the next tick by zeroing the delta and setting the temperature to the sum of the "previous" temperature+delta and the "current" temperature (not delta), and dividing by two. This would result in nothing considered for calculations being changed inside a tick (such that the build order does not influence the behavior of the pipes), and the two "temperature states" (which alternate each cycle) remaining somewhat identical.
EDIT: I just noticed that the above proposed algorithm can be reduced to using only two pairs of values; it would be acceptable for the entity to update its "previous" pair instead of the theoretical "next" pair, since the temperature+delta would remain the same, and that is what everything should be looking at to compute how the temperatures should end up changing.
Or since there are only sources and sinks they could use some basic network flow algorithms, with a simple update step that involved only updating the connected buildings (or a pipe on demand when hovered). There are even versions that can be updated in place (although the algorithms are only O(V+E) in the first place).TruePikachu wrote: ...