[Hanziq] [0.15] Trains with no enabled train station stutter
[Hanziq] [0.15] Trains with no enabled train station stutter
I have a train with 2 stops, both of which are disabled. This causes the train to start moving to the next stop and then stop the next tick because the stop is disabled. Repeat at infinitum. The train stutters and moves very slowly along the track.
Note: One train stop is disabled when a train is present using the new T <id> signal (enable if T = 0).
Note: One train stop is disabled when a train is present using the new T <id> signal (enable if T = 0).
Re: Trains with no enabled train station stutter
What version is that?
Re: Trains with no enabled train station stutter
This has to be 15.11, nothing else supports the 'T' signal.
This is what I think is of the situation, although I'm might be wrong because I have incomplete information.
1. Your train decides to leave.
2. The T signal goes to 0.
3. The Station is enabled.
4. The train moved a tiny bit forward, yet so little that it still considers itself to be at the station. Thus it arrives at its destination.
1. (Again) The train decides to leave, again.
...
Since the train moves a tiny bit each time, at some point it will no longer consider itself to be at the station and it will either go to this station 'the long way' (or it will go to another station, depending on you setup).
This is what I think is of the situation, although I'm might be wrong because I have incomplete information.
1. Your train decides to leave.
2. The T signal goes to 0.
3. The Station is enabled.
4. The train moved a tiny bit forward, yet so little that it still considers itself to be at the station. Thus it arrives at its destination.
1. (Again) The train decides to leave, again.
...
Since the train moves a tiny bit each time, at some point it will no longer consider itself to be at the station and it will either go to this station 'the long way' (or it will go to another station, depending on you setup).
Re: Trains with no enabled train station stutter
it's what IV said.
While it looks silly I believe it's working as intended(it's what you are telling the train to do after all).
Your described situation seems to have no gameplay value. I tested different similar use cases and they seem to work correctly, so I don't see a bug here unless you can give me more use cases.
While it looks silly I believe it's working as intended(it's what you are telling the train to do after all).
Your described situation seems to have no gameplay value. I tested different similar use cases and they seem to work correctly, so I don't see a bug here unless you can give me more use cases.
Re: Trains with no enabled train station stutter
Hey mates.
I would like to have this declared as bug as well .. there is a bug report about this issue in the 'solved bugs section'. I disagree that this is caused by a glitchy network or has no application at all. Lemme give you an example and you can see the application in the attached save. My train world is completely driven by disabled stations. Also each station is controlled by demand. This means if I have delivered a certain amount the station only opens again when this demand falls under a certain level again (this gives room for the trains to handle multiple stations with one simple schedule (A->B))
Application:
- station names are the same for both load (A) and both unload (B) stations
- lets say you have 2 Iron Loads -> 2 trains and -> 2 Iron unloads
- both trains start at the load position (load stations are disabled because the trains are in it - unload stations are enabled because they need iron)
- both trains go to the unload stations - problem here is both trains try to go to the same station! - no problem if you disable the unload station the moment the first train arrives. So one of the A is disabled and the second train goes to the next A. So far so good
- both unload stations are enabled because there is no train
- first train goes to first B - the stations are in this state A=1 (demand is full-filled) A=1 - B=0 B=1
- second train finishes it delivery and goes back to B
- now the 'bug part start'
- both trains are in B and the stations are disabled -> both A have no demand so they are also disabled (both trains in B are going 'nuts' with the stutter bug)
Maybe it is a bit hart to read lemme try a table maybe it helps:
A A B B
0 0 1 1 (both trains at B)
1 0 0 0 (both trains on its way to A - first train arrives)
1 1 0 0 (second train reroutes to second A because the first one is closed)
1 1 1 0 (first train goes back to first B and disables the station so the second train can go to the second B - also first A does not switch on because the demand is still full-filled)
1 1 1 1 (both train are at B and disable the station - both A are disabled because there is no demand. - stutter 'bug')
Also while my save contains some 'silly' combinator stuff it is not necessary for the described use case its just set T=0 -> 1 and a second condition for the A stations.
I hope this helps a bit .. or maybe you can say why the given example is not valid. The given example is just the smallest use case - consider adding more trains and more 'silly' (sorry I found this comment a bit to much so I have to ride on it) combinator stuff and you have a lot of applications where the disabling of all stations in a train schedule makes perfect sense (at least to me).
The trains in this save work mostly like the above described example - Copper Cable Load LCC / Iron Plate Load LCC / Copper Plate Load LCC are the stations that are afflicted by the bug .. just watch it for one or two rounds and you will see how the bug works. The logic at the unload stations is just a hysteresis - bring X amount and come again when X less than Y.
If you still consider this not as a bug I would appreciate a short description how you guys thought the disable feature should be used and maybe we can discuss about it a bit - maybe in the suggestion or general section ofc
anyway take care and have fun
Case
I would like to have this declared as bug as well .. there is a bug report about this issue in the 'solved bugs section'. I disagree that this is caused by a glitchy network or has no application at all. Lemme give you an example and you can see the application in the attached save. My train world is completely driven by disabled stations. Also each station is controlled by demand. This means if I have delivered a certain amount the station only opens again when this demand falls under a certain level again (this gives room for the trains to handle multiple stations with one simple schedule (A->B))
Application:
- station names are the same for both load (A) and both unload (B) stations
- lets say you have 2 Iron Loads -> 2 trains and -> 2 Iron unloads
- both trains start at the load position (load stations are disabled because the trains are in it - unload stations are enabled because they need iron)
- both trains go to the unload stations - problem here is both trains try to go to the same station! - no problem if you disable the unload station the moment the first train arrives. So one of the A is disabled and the second train goes to the next A. So far so good
- both unload stations are enabled because there is no train
- first train goes to first B - the stations are in this state A=1 (demand is full-filled) A=1 - B=0 B=1
- second train finishes it delivery and goes back to B
- now the 'bug part start'
- both trains are in B and the stations are disabled -> both A have no demand so they are also disabled (both trains in B are going 'nuts' with the stutter bug)
Maybe it is a bit hart to read lemme try a table maybe it helps:
A A B B
0 0 1 1 (both trains at B)
1 0 0 0 (both trains on its way to A - first train arrives)
1 1 0 0 (second train reroutes to second A because the first one is closed)
1 1 1 0 (first train goes back to first B and disables the station so the second train can go to the second B - also first A does not switch on because the demand is still full-filled)
1 1 1 1 (both train are at B and disable the station - both A are disabled because there is no demand. - stutter 'bug')
Also while my save contains some 'silly' combinator stuff it is not necessary for the described use case its just set T=0 -> 1 and a second condition for the A stations.
I hope this helps a bit .. or maybe you can say why the given example is not valid. The given example is just the smallest use case - consider adding more trains and more 'silly' (sorry I found this comment a bit to much so I have to ride on it) combinator stuff and you have a lot of applications where the disabling of all stations in a train schedule makes perfect sense (at least to me).
The trains in this save work mostly like the above described example - Copper Cable Load LCC / Iron Plate Load LCC / Copper Plate Load LCC are the stations that are afflicted by the bug .. just watch it for one or two rounds and you will see how the bug works. The logic at the unload stations is just a hysteresis - bring X amount and come again when X less than Y.
If you still consider this not as a bug I would appreciate a short description how you guys thought the disable feature should be used and maybe we can discuss about it a bit - maybe in the suggestion or general section ofc
anyway take care and have fun
Case
Check out the The Nano Factory - only one assembler gameplay
Check out the Bobs Nano Factory - bobs mod - one assembling machine gameplay
Check out the Bobs Nano Factory - bobs mod - one assembling machine gameplay
Re: Trains with no enabled train station stutter
This is not necessary. A properly signaled station with multiple stops will work without the circuit logic. Trains automatically go to an empty station with the same name if one is occupied. Take this bit out and I think your setup will work as intended.Case wrote:- both trains go to the unload stations - problem here is both trains try to go to the same station! - no problem if you disable the unload station the moment the first train arrives. So one of the A is disabled and the second train goes to the next A. So far so good
But to avoid confusion I might make it so trains will never leave the station if there are no enabled stations in it's schedule, thus not creating this loop.
Your demand based trains is a good example for what I expect station disabling to be used for. You have an always enabled supply station and then the demand stations are enabled when needed. Or fully automated single train control by having only 1 station in a train's schedule on at the same time. My opinion in that there should not be systems where all the stations in a schedule are disabled, since a train with only disabled stations will stop in the middle of it's current route, but feel free to give me more examples, maybe something that won't be fixed with the change mentioned above.
Re: Trains with no enabled train station stutter
Hey mate..
Anyway the example was just a simple use case. Let me give you an example where I think a schedule with all disabled stations is valid (at least how I see it).
Train a1: A -> B works like the above example (A is the supply station in this case)
Train b1: C -> D -> "A" -> E
As you can see in this case train b1 would try to go to A when it is not disabled and would be stuck because train a1 is still blocking it. But if you disable A the train would follow its normal route and if A is open the train will go to A. This is something I tried for low demand supplies where it is not important that b1 reaches A (worst case A is never open when the schedule from b1 is at D) in most cases b1 will reach A eventually and can grab supplies (you can also force it with some logic so that a1 will stop for a while) Like I said these are all very basic examples and it gets more and more complex the more trains you add to the network.
Also the first example has no state where the train is on track (aka there is always a station to go for) so it will not stuck at the track because both stations are dissabled. It can only happen if both trains are at station B. My save file has 3 Iron trains because I wanted to test how they behave - its not something I would use.
thanks for reopen this as bug .. I still think at least the fuel drain is a bug and should be somehow fixed .. I'm fine with a train not moving at all when no station is enabled (if he is on track and just stops - fine by me then you have something to puzzle and work around it.)
have fun
Case
hmm I did not know this .. I tested it a couple of times but it did not work .. might be a wrong signal setting .. I will test this againTwinsen wrote: This is not necessary. A properly signaled station with multiple stops will work without the circuit logic. Trains automatically go to an empty station with the same name if one is occupied. Take this bit out and I think your setup will work as intended.
Anyway the example was just a simple use case. Let me give you an example where I think a schedule with all disabled stations is valid (at least how I see it).
Train a1: A -> B works like the above example (A is the supply station in this case)
Train b1: C -> D -> "A" -> E
As you can see in this case train b1 would try to go to A when it is not disabled and would be stuck because train a1 is still blocking it. But if you disable A the train would follow its normal route and if A is open the train will go to A. This is something I tried for low demand supplies where it is not important that b1 reaches A (worst case A is never open when the schedule from b1 is at D) in most cases b1 will reach A eventually and can grab supplies (you can also force it with some logic so that a1 will stop for a while) Like I said these are all very basic examples and it gets more and more complex the more trains you add to the network.
Also the first example has no state where the train is on track (aka there is always a station to go for) so it will not stuck at the track because both stations are dissabled. It can only happen if both trains are at station B. My save file has 3 Iron trains because I wanted to test how they behave - its not something I would use.
thanks for reopen this as bug .. I still think at least the fuel drain is a bug and should be somehow fixed .. I'm fine with a train not moving at all when no station is enabled (if he is on track and just stops - fine by me then you have something to puzzle and work around it.)
have fun
Case
Check out the The Nano Factory - only one assembler gameplay
Check out the Bobs Nano Factory - bobs mod - one assembling machine gameplay
Check out the Bobs Nano Factory - bobs mod - one assembling machine gameplay
Re: Trains with no enabled train station stutter
When a train is blocked for some indetermined time it will repath. If you have stations by the same name and one is busy that can lead to the blocked train choosing the other station. This seems to work reasonably for a multi train stop terminal with all the stops in a row close together.Case wrote:Hey mate..
hmm I did not know this .. I tested it a couple of times but it did not work .. might be a wrong signal setting .. I will test this againTwinsen wrote: This is not necessary. A properly signaled station with multiple stops will work without the circuit logic. Trains automatically go to an empty station with the same name if one is occupied. Take this bit out and I think your setup will work as intended.
But that doesn't happen instantly nor over a distance. If you have stations with the same name at different places, like iron mines, then often trains will go to the same station and halfway there the station becomes busy. The trains in transit should repath right then. Disabling the station causes that regardless of wether the train is at a red signal. Also even with a blocked train the repath might (and often seems to do for mines) just choose the blocked station because it is so much nearer or because some signal to any other station is red too or something. From my experience deactivating a station is the only sure way to make trains not go there.
Re: Trains with no enabled train station stutter
Please do. Prior to 0.15.11 a train with no active train stops would just sit at its station waiting iirc.Twinsen wrote: But to avoid confusion I might make it so trains will never leave the station if there are no enabled stations in it's schedule, thus not creating this loop.
And if you don't then at least make it stop repathing every tick, at least that's what I think is hapening. The train decides to go, it starts driving, it sees the station it is driving to is disabled, it stops, it tries to pick a new station but all are disabled so it picks a disabled station, it start driving again. But I realy hope you make trains not leave a station if they have no destination. It's just a waste of fuel and goes against the concept of disabling stations.
Re: Trains with no enabled train station stutter
EDIT: Version was 0.15.12
Re: Trains with no enabled train station stutter
So, a couple of things to add to this (I posted a duplicate of this bug at viewtopic.php?f=7&t=48400)
- When doing this, the Stuttering will happily move the train forward into a dead end, presumably via momentum (https://youtu.be/krZ2HghhYWg?t=1m27s)
- It's not as simple as "happens when all stations are disabled" - I set up an SR latch (below) so that the station disables when the T signal is set but doesn't re-enable until the train has actually left. The train doesn't even try to start moving once, which seems to conflict with it's behaviour with pulsed disabling signals - I'd naively expect the behaviour to be the same (This circuit works around the problem)
Re: Trains with no enabled train station stutter
Hi Xgkkp,
Here is what I thing about the momentum issue. This is, technically, also not really a bug. It is a corner case of the following scenario:
You have a moving train with stops A and B. B is disabled. Now you disable A. The train is now in a 'no path' condition and breaks, without taking any turns. Even if this leads the train in to a dead end.
Yes, this makes sense in view of my first post in this topic. Stage 2. never happends, so the train never leaves.Xgkkp wrote:
- It's not as simple as "happens when all stations are disabled" - I set up an SR latch (below) so that the station disables when the T signal is set but doesn't re-enable until the train has actually left. The train doesn't even try to start moving once, which seems to conflict with it's behaviour with pulsed disabling signals - I'd naively expect the behaviour to be the same (This circuit works around the problem)
Here is what I thing about the momentum issue. This is, technically, also not really a bug. It is a corner case of the following scenario:
You have a moving train with stops A and B. B is disabled. Now you disable A. The train is now in a 'no path' condition and breaks, without taking any turns. Even if this leads the train in to a dead end.
Re: Trains with no enabled train station stutter
I think that would be a bug, a dangerous one, if it happens like that. I'm talking about the without taking any turns part.IV wrote:Hi Xgkkp,
Here is what I thing about the momentum issue. This is, technically, also not really a bug. It is a corner case of the following scenario:
You have a moving train with stops A and B. B is disabled. Now you disable A. The train is now in a 'no path' condition and breaks, without taking any turns. Even if this leads the train in to a dead end.
Say you have a fork in the track. The straight path is blocked by another train and the train decides to take a turn to get past it. Now a station is disabled, the train enters a "no path" and breaks , without taking any turns. And it barrels straight into the other train.
I sure do hope trains on emergency break still follow the path the had before and honor the signals they have reserved.
Re: [0.15] Trains with no enabled train station stutter
Hi mrvn,
I find the behaviour you expect from the train very reasonable, but I doubt that this is the designed behaviour.
I do think the following is true: if you disable the station a train is headed to, it will (almost?) immediately recompute its path. Thus it will no longer (necessarily) honour any path reservation. This is not really a problem in terms of collisions, as it now honours a new path. I'm not quite sure whether 'no path' trains on automatic reserve a path to break on (I think not).
I may be wrong, but I think nearly no rules apply to trains with no path, as this is a condition that is not supposed to happend within the current setting.
I find the behaviour you expect from the train very reasonable, but I doubt that this is the designed behaviour.
I do think the following is true: if you disable the station a train is headed to, it will (almost?) immediately recompute its path. Thus it will no longer (necessarily) honour any path reservation. This is not really a problem in terms of collisions, as it now honours a new path. I'm not quite sure whether 'no path' trains on automatic reserve a path to break on (I think not).
I may be wrong, but I think nearly no rules apply to trains with no path, as this is a condition that is not supposed to happend within the current setting.
Re: [0.15] Trains with no enabled train station stutter
I've been using station disabling quite a bit and haven't seen damaged trains yet. So there is hope the behaviour is sane.
If they recompute the path and take a different path that is fine, as long as it is a planed path and not blinding barreling straight into whatever. Using the old path already reserved just sounds like a good and trivial fallback.
One thing though. If a train is mid way and has all its stations disabled I would hope it still goes to some station, even a disabled one. I would expect it to go to the station it was already headed if no alternative is viable. Stopping in the middle of the track would be horrible. Well, if they do that then I guess you have to make sure to never disable all stations, I guess.
On that note: I would like to drive a train to a disabled station by force. Like when I open the train menu, select the dead station and click at "go to" then it should go there. If I want it to go to the next active station I would click there or just turn the train on automatic. Without this feature it is hard to reach a disabled station to check out why it is disabled.
If they recompute the path and take a different path that is fine, as long as it is a planed path and not blinding barreling straight into whatever. Using the old path already reserved just sounds like a good and trivial fallback.
One thing though. If a train is mid way and has all its stations disabled I would hope it still goes to some station, even a disabled one. I would expect it to go to the station it was already headed if no alternative is viable. Stopping in the middle of the track would be horrible. Well, if they do that then I guess you have to make sure to never disable all stations, I guess.
On that note: I would like to drive a train to a disabled station by force. Like when I open the train menu, select the dead station and click at "go to" then it should go there. If I want it to go to the next active station I would click there or just turn the train on automatic. Without this feature it is hard to reach a disabled station to check out why it is disabled.
Re: [0.15] Trains with no enabled train station stutter
RE: Train momentum into dead ends, this either might be a separate bug or "works as intended". It is annoying.
I've noticed that if I select a train at full speed and tell it to go to a new station it'll stop and then compute the path to the new station. However, during this stop it follows momentum rules e.g. if it was heading towards a dead end with a turning (that it'd always take when pathing) when you issue the command, it'll happily run into the dead end, requiring a run across the map to fix the train. Example: https://youtu.be/fc8cmyM54nI
I've noticed that if I select a train at full speed and tell it to go to a new station it'll stop and then compute the path to the new station. However, during this stop it follows momentum rules e.g. if it was heading towards a dead end with a turning (that it'd always take when pathing) when you issue the command, it'll happily run into the dead end, requiring a run across the map to fix the train. Example: https://youtu.be/fc8cmyM54nI
Re: [0.15] Trains with no enabled train station stutter
Yes, this is anoying. Well, don't do that. You have a choice when to click.
But things to test:
1) what happens when the dead end has a red signal?
2) what happens when a train in on the dead end directly after the signal?
3) what happens when you disable the station through a signal without signals or trains (use a constant combinator and turn it on/off)
4) 3+1
5) 3+2
But things to test:
1) what happens when the dead end has a red signal?
2) what happens when a train in on the dead end directly after the signal?
3) what happens when you disable the station through a signal without signals or trains (use a constant combinator and turn it on/off)
4) 3+1
5) 3+2
Re: [0.15] Trains with no enabled train station stutter
I haven't tested the other conditions yet, but "not clicking" isn't always so obvious because a high speed train with low breaking could very well go into a dead-end off screen.mrvn wrote:Yes, this is anoying. Well, don't do that. You have a choice when to click.
Re: [0.15] Trains with no enabled train station stutter
Maybe that came out badly. What I mean is that you do have a choice there, you are watching the train, you notice when it gets stuck. You will have to walk across half your base to fix it but you can.Xgkkp wrote:I haven't tested the other conditions yet, but "not clicking" isn't always so obvious because a high speed train with low breaking could very well go into a dead-end off screen.mrvn wrote:Yes, this is anoying. Well, don't do that. You have a choice when to click.
On the other hand, if it happens with disabled stations, it would be a silent problem. Trains would randomly get stuck with nobody paying attention. And stations get disabled magnitudes more often than manually clicking. A single productive mine will disable the station every 10 seconds and such a setup only makes sense with multiple mines.
Re: [Hanziq] [0.15] Trains with no enabled train station stutter
Should be fixed in the next version, I'm hoping the fix doesn't break anything else.