boskid wrote: Mon Feb 24, 2025 11:07 pm
robot256 wrote: Mon Feb 24, 2025 3:05 pmThe fact is that the user experience is far better with inconvenient-yet-predictable behaviors instead of sometimes-helpful-but-opaque behaviors. (It's honestly what I loved about 1.1--the game didn't try to guess what you wanted, even if getting some results took several steps.)
If the goal is to make limit-based systems easier without regard for the experience of limit-agnostic players, then you should completely remove the option to disable the limit and always initialize it to 0. Then players who want unlimited stops will know they need to enter 1e6, blueprints will always contain a valid limit value, and no values will change for seemingly no reason.
1.1 and 2.0 are different because of interrupts. In 1.1 it was common to have a dedicated train stops for puckup and for drop and so a failure to set limit before renaming would at most create a horde of trains for that specific material. In 2.0 due to interrupts there exists couple of universal train setups where failing to set limit may cause all the trains scheduled for generic item pickup to arrive and that was considered to be too much - it was almost always followed by a save reload.
Thank you for the explanation! I did not really imagine that a "horde of trains" would be that much of a problem (and if it happened to me, I certainly would be tempted to abandon such a setup to avoid hordes in the future). But this only applies to particular setups. The reason there seems to be no good solution for handling other setups is because the current interface does not allow the player to accurately communicate their intent before the train stop becomes operational. Adding a *fixed* default limit of either 0 or 1 would make it so you no longer try to guess their intent, so I really like this idea and think it would be great to implement before 2.1.
I think best solution would be to have train stops have default limit of 1 but this could cause breaking changes and so i will not apply it earlier than in 2.1. With default limit of 1 there would be no risk of the train horde when name is changed first. Just look at the history, current default of no-limit was for seamless transition from 1.0 without limits into 1.1 where train stop limits were introduced.
Can you describe what this would break any more than the current behavior?
This bug report was posted because the current behavior already breaks existing blueprints. I don't see how changing the *on-built* behavior again to a more predictable result would be any worse, and it still shouldn't change existing built entities. If you are going to alter existing blueprints, you should do it during the migration process in a predicable manner that the user can verify in a sandbox game/JSON
editor before placing it. The main reason the current behavior is so frustrating is because it makes the result of placing a
blueprint dependent on the state of other entities elsewhere on the map.
The other option, of course, is to not alter blueprints at all. If someone wants to copy a
blueprint from an un-limited system and use it in their limit-critical system, I think it's totally reasonable that they would place
blueprint->horde of trains->oops, I'll fix
blueprint first->reload/reset. But this still leaves the matter of users being confused when the train limit changes after they rename a stop.
The current behavior does not achieve its stated goal for manual renaming when the player destroys all the existing stops named "A" with limit set (so that trains are stuck in no-stop-exists), and builds a new stop, renames it "A", and doesn't realize that the limit won't be set automatically unless there is another stop with the same name and a limit already built, so they get a horde of trains.
The limit-copying behavior is also deceptively similar to the way train groups and logistic groups work, so I would not be surprised if someone sees it do that and mistakenly thinks that changing the limit of one stop will update other existing stops with the same limit. Without a Tips & Tricks entry about Train Limits in general, these are all reasonable assumptions by the player.
Even a default limit of 1 may be considered incorrect due to a different feature - trains keeping reservation until they are out of rail block of the departing train stop. In train networks without signals (one of stages when new players are still learning how to use signals) it could cause annoyance due to trains not arriving to a train stop because it is still reserved by the train that just left.
Its not a trivial change.
The philosophical point I want to stress is that the only "incorrect" behavior in a game like this is one that the player does not expect after a short amount of research or experimentation. Behaviors like the one in this post, that are not documented and take substantial time to both discover and understand, are the definition of a bug in my opinion. I appreciate the desire to make it easy for new players to make things that "just work", but it's not a reasonable requirement to place on yourself that they should be able to play the game in multiple different ways without ever touching the train limit setting box. Devs can't possibly guess what the player is thinking in every single case, and it's hard on both devs and users when you try.
It seems like a very reasonable progression for players to
- place train stop (auto-limit=1)
- make one train, just works
- make two trains, sometimes stuck
- "oh, this box says train limit is 1, I will change that".
Thanks for your work and your insight as always.