Assign Trains to Schedules (Train Routes)
Moderator: ickputzdirwech
Assign Trains to Schedules (Train Routes)
changed topic to fit suggestion better) — ssilk
Assign Trains to schedules instead of creating schedules for Trains over and over again.
At the Moment we have to create schedules for every Train or copy them over. A more simlplier and intuitive Way would be to create a Schedule and assign Trains to it.
This would maybe also allow it to rename Trains as a nice side effect.
One could also add one Train into multible schedules which opens up a lot of new possibilities to effectivly manage masses of Trains (like on a Train World).
Assign Trains to schedules instead of creating schedules for Trains over and over again.
At the Moment we have to create schedules for every Train or copy them over. A more simlplier and intuitive Way would be to create a Schedule and assign Trains to it.
This would maybe also allow it to rename Trains as a nice side effect.
One could also add one Train into multible schedules which opens up a lot of new possibilities to effectivly manage masses of Trains (like on a Train World).
Re: Assign Trains to Schedules
I think there'd be some details to work out to implement this without making existing functions more unwieldy. I.E., I don't want to have to independently create a schedule for every train if there will only ever be one train on that route.
My interpretation:
1) Everything works exactly as is - you can assign individual trains routes exactly like you can now.
2) You can "save" a schedule to a universal list of named schedules.
3) You can assign a train to a named schedule. There is a check box (normally checked) that says "syncronize train settings if named schedule changes".
a. If unchecked, the train copies the settings from the named schedule, but doesn't "remember" that it belongs to that schedule.
b. If checked, the train is permanently linked to the named schedule. If the schedule changes, the train's settings change as well.
c. If you modify the train's schedule, it is no longer linked to the named schedule. However, you can modify the train's schedule and then save over the named schedule, in which case the link is maintained.
b. Named schedules can be copied and edited directly from their list.
Bonus - would there be a way to smooth out multiple mining station schedule? E.G. there's one schedule called "Iron Ore Trains" but it has a selectable mining pickup station. If you change, say, the wait conditions, it affects all Iron Ore Trains - they are the same schedule, they just have a selectable option (which essentially creates "sub schedules" within the schedule).
Double Bonus - under the "Iron Ore Trains" schedule, there's a drop down menu which expands to show all the "sub-schedules" within that schedule, along with the number of trains assigned to each. This way, the detailed info would be there when you need it, but you can hide it to avoid cluttering the schedule list.
My interpretation:
1) Everything works exactly as is - you can assign individual trains routes exactly like you can now.
2) You can "save" a schedule to a universal list of named schedules.
3) You can assign a train to a named schedule. There is a check box (normally checked) that says "syncronize train settings if named schedule changes".
a. If unchecked, the train copies the settings from the named schedule, but doesn't "remember" that it belongs to that schedule.
b. If checked, the train is permanently linked to the named schedule. If the schedule changes, the train's settings change as well.
c. If you modify the train's schedule, it is no longer linked to the named schedule. However, you can modify the train's schedule and then save over the named schedule, in which case the link is maintained.
b. Named schedules can be copied and edited directly from their list.
Bonus - would there be a way to smooth out multiple mining station schedule? E.G. there's one schedule called "Iron Ore Trains" but it has a selectable mining pickup station. If you change, say, the wait conditions, it affects all Iron Ore Trains - they are the same schedule, they just have a selectable option (which essentially creates "sub schedules" within the schedule).
Double Bonus - under the "Iron Ore Trains" schedule, there's a drop down menu which expands to show all the "sub-schedules" within that schedule, along with the number of trains assigned to each. This way, the detailed info would be there when you need it, but you can hide it to avoid cluttering the schedule list.
-
- Inserter
- Posts: 31
- Joined: Thu Aug 31, 2017 2:53 am
- Contact:
Re: Assign Trains to Schedules
I like the idea of reducing train schedule assignment complexity. At the very least, having a one-to-many schedule to train map would make high-volume train assignment much easier. Imagine if you wanted to change your rail layout which involved station renaming -- if you have 10 trains on that line, you've got to find and rework the schedules for all those trains.
Re: Assign Trains to Schedules
Guess I'd already be happy if we could blueprint trains and their schedules.
"--? How are commands compounded in a compounded compound command commanding compound composts." -defines.lua
Re: Assign Trains to Schedules
I would be happy if you could at least name trains and sort them in train list by that name. So that you can easily locate needed train and copy its schedule to a new one by Ctrl-Rightclick on a train in train list
Separate train routes from trains
I suggested this in a FFF thread a month or so ago, but in case it got lost, and especially with the UI overhaul coming up, I want to post it here:
Train routes should be distinct from trains.
When you're setting up, say, a new ore-to-smelting route, you're setting up a route. You might have one train on it; you might have ten trains on it. It makes sense to make routes distinct from trains, so you can create a route and then assign it to multiple trains easily.
That would also make it easier to modify a route without having to change every single train; just add or remove stations or conditions in the route, and every train with that route is affected.
It should also be possible to copy routes, so you can make a copy of an existing route and modify it to, say, source from a different ore patch or deliver to a different smelting station.
Optionally, it would be nice to be able to specify the required consist for a route, to keep you from accidentally assigning a route to a train that can't fulfill that route (e.g. wrong cars or one-way vs. two-way locomotives).
Train routes should be distinct from trains.
When you're setting up, say, a new ore-to-smelting route, you're setting up a route. You might have one train on it; you might have ten trains on it. It makes sense to make routes distinct from trains, so you can create a route and then assign it to multiple trains easily.
That would also make it easier to modify a route without having to change every single train; just add or remove stations or conditions in the route, and every train with that route is affected.
It should also be possible to copy routes, so you can make a copy of an existing route and modify it to, say, source from a different ore patch or deliver to a different smelting station.
Optionally, it would be nice to be able to specify the required consist for a route, to keep you from accidentally assigning a route to a train that can't fulfill that route (e.g. wrong cars or one-way vs. two-way locomotives).
Re: Separate train routes from trains
There is a mod for that.
Re: Assign Trains to Schedules
[Koub] Merged topic into older similar suggestion
Koub - Please consider English is not my native language.
Re: Assign Trains to Schedules
I've been thinking about this some more and I don't think trains and schedules should be separated. They don't need to be (at least not visible to the user).
Instead why not do the same thing with trains as with stations: If two stations are named the same the train with pick one of them when scheduled to stop there. So in reverse if two trains are named the same then they have a common schedule. If you have 5 trains called "Iron ore pickup" and you edit the schedule in one of them then all change. Rename a train and it keeps the schedule but now it has it's own private copy, no longer connected to the original schedule.
Instead why not do the same thing with trains as with stations: If two stations are named the same the train with pick one of them when scheduled to stop there. So in reverse if two trains are named the same then they have a common schedule. If you have 5 trains called "Iron ore pickup" and you edit the schedule in one of them then all change. Rename a train and it keeps the schedule but now it has it's own private copy, no longer connected to the original schedule.
Re: Assign Trains to Schedules
So if I have 3 trains picking up at iron mine 1 and dropping off at iron smelter. Now that iron patch is almost mined out. How will the UI work if I now want to reassign one of those trains to iron mine 3, another to iron mine 4, and leave the third going to iron mine 1? I've got no problems with the devs adding schedules, (if they choose), but please don't make changing a trains schedule awkward or cumbersome. If I need to remain trains to the same name to achieve the above, then the UI should have support for that.
Re: Assign Trains to Schedules
You rename one to "Iron mine 3 pickup" and another to "Iron mine 4 pickup". Assuming you already have trains there they would get their schedule. Otherwise edit the schedule after rename.
Think of it this way: you have routes and you assign trains to them by naming them after the route. And editing a trains schedule actually edits the route by that name.
Think of it this way: you have routes and you assign trains to them by naming them after the route. And editing a trains schedule actually edits the route by that name.
Re: Assign Trains to Schedules
In my opinion it is a great idea!
Re: Assign Trains to Schedules
Iirc, that's the way it works in Anno 1404 : you create a route, and assign ships to existing routes. This would totally make sense in Factorio too.
In Anno, it was trading routes. There's no trade in Factorio, but the concept of "go there, load this, unload that, then move to some other place, and so on" is exactly the same.
In Anno, it was trading routes. There's no trade in Factorio, but the concept of "go there, load this, unload that, then move to some other place, and so on" is exactly the same.
Koub - Please consider English is not my native language.
Re: Assign Trains to Schedules
Now how do you build a UI for that that is intuitive to new players. It seems like something that you would need to teach. So how do you design your UI to teach that to players (apart from adding a new tutorial).mrvn wrote:You rename one to "Iron mine 3 pickup" and another to "Iron mine 4 pickup". Assuming you already have trains there they would get their schedule. Otherwise edit the schedule after rename.
Think of it this way: you have routes and you assign trains to them by naming them after the route. And editing a trains schedule actually edits the route by that name.
Re: Assign Trains to Schedules
I think it would be pretty intuitive and require little change. In the train GUI you add the option to name trains / pick a route. And in the train overview you group trains by routes. A tutorial would be good and I see nothing wrong with that.Zavian wrote:Now how do you build a UI for that that is intuitive to new players. It seems like something that you would need to teach. So how do you design your UI to teach that to players (apart from adding a new tutorial).mrvn wrote:You rename one to "Iron mine 3 pickup" and another to "Iron mine 4 pickup". Assuming you already have trains there they would get their schedule. Otherwise edit the schedule after rename.
Think of it this way: you have routes and you assign trains to them by naming them after the route. And editing a trains schedule actually edits the route by that name.
What I ment was that you don't need some totally new system to create and manage routes independent of trains. The way train schedules are handled now can be changed to manage routes instead. The behaviour totally changes but the GUI only needs minimal tweaks.
Re: Assign Trains to Schedules
I've got no objection to adding routes, and assigning trains to routes (if the devs choose to add this).
It's the whole name the trains the same to tell the game that they should use the same route. To me that would be an entirely unintuitive and non-obvious way to implement routes. It suffers from a major problem called discoverability. Before this topic came up, I wasn't even aware that you could rename trains. That isn't a problem because I've never wanted to rename trains. How on earth do you expect a new player to discover and learn this "name the trains the same to have them share the same route" mechanic, (other than adding a tutorial to teach this). If the devs want to add routes, then I think there are much better ways to design the UI for routes, than "name the trains the same to have them share a route".
If a mod wanted to add routes, well the name the trains the same bit might be the easiest way to work around problems of modding factorio's existing train guis. And for a mod that would be ok. Less than ideal, but ok. Simple enough to explain in a mod description, and you can at least hope that players will read a mod's description before choosing to install it, (at least when it isn't being installed automatically as a dependency of another mod/part of a modpack).
It's the whole name the trains the same to tell the game that they should use the same route. To me that would be an entirely unintuitive and non-obvious way to implement routes. It suffers from a major problem called discoverability. Before this topic came up, I wasn't even aware that you could rename trains. That isn't a problem because I've never wanted to rename trains. How on earth do you expect a new player to discover and learn this "name the trains the same to have them share the same route" mechanic, (other than adding a tutorial to teach this). If the devs want to add routes, then I think there are much better ways to design the UI for routes, than "name the trains the same to have them share a route".
If a mod wanted to add routes, well the name the trains the same bit might be the easiest way to work around problems of modding factorio's existing train guis. And for a mod that would be ok. Less than ideal, but ok. Simple enough to explain in a mod description, and you can at least hope that players will read a mod's description before choosing to install it, (at least when it isn't being installed automatically as a dependency of another mod/part of a modpack).
Re: Assign Trains to Schedules
You write "Train route:" before the pick a name element in the GUI. Would make it kind of obvious that you choose a route there.
And when you hover over a train it would show the train name, i.e the route the train is following. Again that could mention route to make it more obvious if there is something unclear.
And when you hover over a train it would show the train name, i.e the route the train is following. Again that could mention route to make it more obvious if there is something unclear.
Re: Assign Trains to Schedules
That requires a player who knows and understands that he can change the route through renaming the train. If he doesn't know that why on earth would he think that he could assign a train to the same route as another train by renaming it to the same name as the other train. It is not intuitive. There is no reason he will ever discover this mechanic whilst playing the game. Or are you meaning that the game will name each new train Route 1 Route 2 etc, in the hope he will notice and make the connection? It's a horrible UI design that should only be considered acceptable when you can't implement something better.mrvn wrote:You write "Train route:" before the pick a name element in the GUI. Would make it kind of obvious that you choose a route there.
And when you hover over a train it would show the train name, i.e the route the train is following. Again that could mention route to make it more obvious if there is something unclear.
If the devs are going to add routes, then they should add a proper UI for it with a dropdown to choose the route, and buttons to create a new route/clone a route/edit a route etc. Overloading the name is simply not a good UI choice when you have source code access to the train GUI.
Re: Assign Trains to Schedules
It works well enough for train stations. Did anyone tell you that you can name 2 stations the same so trains would pick a station?Zavian wrote:That requires a player who knows and understands that he can change the route through renaming the train. If he doesn't know that why on earth would he think that he could assign a train to the same route as another train by renaming it to the same name as the other train. It is not intuitive. There is no reason he will ever discover this mechanic whilst playing the game. Or are you meaning that the game will name each new train Route 1 Route 2 etc, in the hope he will notice and make the connection? It's a horrible UI design that should only be considered acceptable when you can't implement something better.mrvn wrote:You write "Train route:" before the pick a name element in the GUI. Would make it kind of obvious that you choose a route there.
And when you hover over a train it would show the train name, i.e the route the train is following. Again that could mention route to make it more obvious if there is something unclear.
If the devs are going to add routes, then they should add a proper UI for it with a dropdown to choose the route, and buttons to create a new route/clone a route/edit a route etc. Overloading the name is simply not a good UI choice when you have source code access to the train GUI.
And yes, every new train should get a new empty route. I'm sure though the devs can come up with something more elaborate than route 1 Route 2 etc. They seem to have a quite elaborate thing to pick names.
Re: Assign Trains to Schedules
The situations are not the same. As soon as you build a few stations and a train and click on it, a new player will notice that stations have names. This will happen as soon as he tries to automate trains, if it hasn't already. (That means that stations having names is pretty much guaranteed to be discovered by all players who build trains). The UI that opens when you click on a train makes it clear that you use stations to route trains. From there it is a short but logical step to wondering if stations can be renamed. (Indeed once you have more than 3 or 4 stations at least some players are likely to want to rename stations, as a way to help keep things organised in their own head). Click on a station, find the button right after the train's name and a new UI opens. The button to rename a station is in a perfectly obvious location. A player is likely to find it as soon as he wants to rename a station. So the method of renaming a station is discoverable.mrvn wrote:It works well enough for train stations. Did anyone tell you that you can name 2 stations the same so trains would pick a station?
And yes, every new train should get a new empty route. I'm sure though the devs can come up with something more elaborate than route 1 Route 2 etc. They seem to have a quite elaborate thing to pick names.
Now the UI for renaming a station makes it easy to name stations the same, and to use variations on the same name. Indeed it seems like it is designed to make it easy to name stations the same. The ability to name two stations the same is explicitly discoverable through a cursory examination of the station renaming UI.
So why would you want to name two stations the same? A new player might not want to, but eventually their base will get large enough that they will think wouldn't it be nice if I could name both of these stations the same and a train would just pick one. At that point they already have some clues that the game supports naming stations the same. It is logical to think that if the game allows stations to be named the same it might "just work". You have a UI that makes naming two stations the same trivial.
If the player thinks about what will happen if he names two stations the same, there are really only a few reasonable alternatives.
1. A train will give some sort of error analogous to "no path" because the next station is ambiguous.
2. A train will pick one, and will always go to that one, ignoring the other station with the same name.
3. A train will pick one, and will somehow choose between the stations of the same name either randomly, or in a more or less intelligent fashion.
It is easy enough to just try and see if it works. A player who actually attempts this will discover that it mostly works. (Assuming the stations aren't too far apart). Would it be better if discoverability of naming stations the same was better? Absolutely. I can't remember whether it is in the tips and tricks at the start of the game, but it should be.
Now consider what would happen if you got in a taxi and told the driver "UPS Parcel Depot". The taxi driver will take you there. What if there were 2 UPS Parcel Depots? He will either pick whichever he thinks is more convenient, or ask you to clarify which one you want. Now Factorio's trains can't ask their cargo for clarification, so they will just pick one. So Factorio's train's behaviour is logical and intuitive from from the point of view of a player's real world experiences. The only real issue is discoverability of the fact that you can, and might want to, name two stations the same to get trains to path to whichever is more convenient. But at least it's behaviour is logical and consistent with real world experiences, and there is a reasonable chance that the player will make the critical realisation of "I wish I could just name 2 stations the same and have the train choose whichever is better. Oh wait I can." on their own.
Now take the strategy of naming the trains the same to tell them that they share the same route. In the real world we might talk about the "Paris train" or the "London Express", but when we say things like that we are implicitly talking about the train going to Paris or the train on the London Express route. We all understand that the train itself isn't named Paris or London Express. Instead it will have some sort of other name or id that might only ever be used by the train company internally (indeed if a train has multiple locomotives, then each locomotive probably has it's own name and/or id number). So London express is not the name of the train. It is the name of the route. The train on the the London Express route might well be called "Black Ghost". Tomorrow "Enola Gay" might run that route.
Lately in this thread people have said
.show the train name, i.e the route the train is following
If you mean rename a train's route label to change its route then that is one thing. But this is not what was originally being discussed up thread. There people were explicitly talking about trains having the same name
.if two trains are named the same then they have a common schedule
Do NOT conflate the two. If you are talking about train names then you are talking about names like "Black Ghost" or "Enola Gay". If you are route names or schedules then you need to say route (name) or schedule (name). And if named routes or schedules are implemented into the game, then you need to label then as route or schedule, not simply as name which players will think of as a train's name, like "Enola Gay" or "Black Ghost". The concept of naming trains as "Route Iron Mine 10" should only apply for mods which can't access the UI to change the field's label to read "Route" instead of "Name".
From a player's point of view changing the name ("Black Ghost") of the train/locomotive has no reason to effect it's route. Until the game starts naming trains "Iron Mine 10" or something, there is absolutely no logical reason for a player to expect that changing a train's name will effect it's route. That means short of things like naming a train after it's route, the concept of naming 2 trains the same to have them sharing schedules is not discoverable. And once you do start naming trains "Iron Mine 10" you are really talking about the trains route or schedule, and should change the name of the field in the UI to "Route" rather than "Name". (Also be aware Iron Mine 10 could have trains running to Iron smelter 1, Iron Smelter 2, and Steel Smelter. So naming a train Iron Mine 10 does not necessarily describe its route adequately).
Now however you label routes in the UI, you want to cover a few usecases. Building a new mine and creating a new train schedule that is basically a clone of an existing schedule from another mine. (Create new schedule. Clone then edit schedule). Moving trains between mines. (Assign trains to schedules. Edit existing schedules). You probably also want delete a schedule. This is enough usecases that from the point of UI design I think you would be better off with a new UI panel, rather than trying to squeeze all this functionality into the existing train dialog. Whilst you could probably do all or at least most of this through just the existing dialog and changing a train's route name, it would probably be awkward to use and not very user friendly.
Now my current factorio game is a Seablock campaign, and I haven't felt the need to build any trains there. So I haven't actually looked at the train UI in a few weeks. So everything I have written in this thread prior to this post has been from memory. As part of writing up this post I did load up vanilla factorio. And I discovered something.
Zavian wrote:Before this topic came up, I wasn't even aware that you could rename trains.
As far as I can tell trains don't actually have names, and you can't rename them. (Locomotives do have names, but again there doesn't seem to be a way to rename them). So you would need to extend the UI to be able to rename trains anyway. At that point just call the whole thing "Route:" or "Schedule:" rather than name, and most of my objections disappear. (I do still think you would be better off with a new UI panel rather than just trying to shoehorn route management into the existing train UI panel).