Trains reserve paths by segments instead of blocks

Post your ideas and suggestions how to improve the game.

Moderator: ickputzdirwech

Shokubai
Filter Inserter
Filter Inserter
Posts: 470
Joined: Mon May 02, 2016 3:17 pm
Contact:

Re: Trains reserve paths by segments instead of blocks

Post by Shokubai »

silverkitty23 wrote:
Shokubai wrote:Here is a great example of the volume of signals necessary to make a junction traversable by multiple trains at once. Easier to see here.
Off topic, and sorry to distract, but why are all those regular signals? Old pic or am I still doing it wrong (extension of conversation you and I had in a separate thread a month ago) because I have chains all through my intersection? (Also, that conversation we had is a great example of your point - I had like 400 hours of play behind me and was still struggling with signalling)
Old pic from a quick google search...wrong signal types in the image but the result is pretty much the same. SIGNALS EVERYWHERE!
User avatar
ssilk
Global Moderator
Global Moderator
Posts: 12889
Joined: Tue Apr 16, 2013 10:35 pm
Contact:

Re: Trains reserve paths by segments instead of blocks

Post by ssilk »

Good, the last posts have convinced my need for more information.

I still think, the devs had reasons, not to implement it, but as a suggestion it can stand now for itself. Thanks to Shokubai and sparr.
Cool suggestion: Eatable MOUSE-pointers.
Have you used the Advanced Search today?
Need help, question? FAQ - Wiki - Forum help
I still like small signatures...
sparr
Smart Inserter
Smart Inserter
Posts: 1463
Joined: Fri Feb 14, 2014 5:52 pm
Contact:

Re: Trains reserve paths by segments instead of blocks

Post by sparr »

Shokubai wrote:Now imagine if the trains could chose their path through a junction I could simply place signals on the outside only and have this.
Not only could you remove the signals, you'd have the option of putting tracks closer together. It drives me nuts when I'm designing an interchange and I get a hundred pieces of track and a dozen signals laid before I realize there's one tiny space where I need to put two signals and only one fits so I have to start over and make the whole interchange one rail wider.
Harkonnen604
Filter Inserter
Filter Inserter
Posts: 285
Joined: Thu Jun 09, 2016 5:56 am
Contact:

Re: Trains reserve paths by segments instead of blocks

Post by Harkonnen604 »

I think it should be possible to embed signals within rail segments themselves instead of putting them off the track. For straight rails - a signal can be placed if if they do not intersect any other rails. For curved rails - a center of the rail is the signal point if that center part does intersect any other rail.
sparr
Smart Inserter
Smart Inserter
Posts: 1463
Joined: Fri Feb 14, 2014 5:52 pm
Contact:

Re: Trains reserve paths by segments instead of blocks

Post by sparr »

Harkonnen604 wrote:I think it should be possible to embed signals within rail segments themselves instead of putting them off the track. For straight rails - a signal can be placed if if they do not intersect any other rails. For curved rails - a center of the rail is the signal point if that center part does intersect any other rail.
This is a great idea, and would solve half of my problems with interchange design. Please post this as its own thread?
Moosfet
Long Handed Inserter
Long Handed Inserter
Posts: 71
Joined: Fri Jun 10, 2016 1:50 pm
Contact:

Re: Trains reserve paths by segments instead of blocks

Post by Moosfet »

Well, I gave longer trains a try...

The good: I can have a train that spends 5 minutes filling up and 5 minutes unloading, which creates very little traffic on the rail network. No problems keeping my smelting operation running since the long line of cars fills steel chests to the max, and so it takes until the train returns for them to empty onto belts.

The bad: Long trains take a lot of space. The map space consumed by a 50 car train is kind of ridiculous. The engines also slow down way too quickly for each additional car added. IRL, I see two engine trains pulling 50 cars, at 55 MPH, but in Factorio, they reach only half that speed. Such long trains also seem way out of scale with the rest of the game. The length of the train is greater than the average distance between mining sites.

I assume no one is really interested in using long trains with extremely large train stations (it really doesn't fit with the scale of the game), so I think the best solution would be to increase the capacity of the cargo wagon in order to decrease rail traffic volume. Having trains arrive and leave just 30 seconds later is crazy. If an average fill-up required ten minutes, managing traffic on a single rail would be rather easy as trains would rarely encounter each other.

To cut down on the number of shift-middle-clicks necessary to reserve slots, I think that expanding the cargo wagon's capacity would be best done by simply making each slot able to hold 4x what a slot usually holds, e.g. instead of each slot holding 50 iron ore, in the cargo wagon it holds 200 iron ore.

Also, the train stop needs to be able to be configured to keep a train for much more than 200 seconds. 600 seconds at least, probably 1000. (For the time being though, it does work to simply put the same stop in the list multiple times.)
Harkonnen604
Filter Inserter
Filter Inserter
Posts: 285
Joined: Thu Jun 09, 2016 5:56 am
Contact:

Re: Trains reserve paths by segments instead of blocks

Post by Harkonnen604 »

What is shift-middle-click - how is it different from just middle-click? I also don't see any shift-middle-click in default controls settings. As for setting same filter for multiple cells, shift-right-click/shift-left-click on a cell to copy filter settings between wagon cells may be some desired functionality. And just in case - you can copy filter settings between wagons by shift-right-click/shift-left-click on a wagon.
User avatar
ssilk
Global Moderator
Global Moderator
Posts: 12889
Joined: Tue Apr 16, 2013 10:35 pm
Contact:

Re: Trains reserve paths by segments instead of blocks

Post by ssilk »

Moosfet wrote:I think the best solution would be to increase the capacity of the cargo wagon
Kovarex thinks about this. I would mean it comes eventually with v0.13.
To cut down on the number of shift-middle-clicks necessary to reserve slots, I think that expanding the cargo wagon's capacity would be best done by simply making each slot able to hold 4x what a slot usually holds, e.g. instead of each slot holding 50 iron ore, in the cargo wagon it holds 200 iron ore.
Or use a mod: viewtopic.php?f=92&t=17199 Fast Filter Fill
Also, the train stop needs to be able to be configured to keep a train for much more than 200 seconds. 600 seconds at least, probably 1000. (For the time being though, it does work to simply put the same stop in the list multiple times.)
With that speed you can use also belts. Makes no sense. :)
Cool suggestion: Eatable MOUSE-pointers.
Have you used the Advanced Search today?
Need help, question? FAQ - Wiki - Forum help
I still like small signatures...
Harkonnen604
Filter Inserter
Filter Inserter
Posts: 285
Joined: Thu Jun 09, 2016 5:56 am
Contact:

Re: Trains reserve paths by segments instead of blocks

Post by Harkonnen604 »

@Moosfet
Why do you need 5 minutes for filling a train, given that 8 fast inserters with full stack bonus fill a single wagon in less than 30 seconds and they fill all wagons in parallel? For me it sounds like you have more wagons than production rate actually requires. I guess you need to make trains longer only when moments appear when provider station has its chests full while consumer station at the same time has its chests empty.
sparr
Smart Inserter
Smart Inserter
Posts: 1463
Joined: Fri Feb 14, 2014 5:52 pm
Contact:

Re: Trains reserve paths by segments instead of blocks

Post by sparr »

ssilk wrote:
Also, the train stop needs to be able to be configured to keep a train for much more than 200 seconds. 600 seconds at least, probably 1000. (For the time being though, it does work to simply put the same stop in the list multiple times.)
With that speed you can use also belts. Makes no sense. :)
ssilk, you have a terrible habit of making absolute statements that are horribly incomplete and inaccurate.

Waiting for 600 seconds makes just as much sense as waiting for 200 seconds, if the stations are 3x as far apart.

Maybe your games are small. Some of us have train stations ten thousand tiles apart.
sparr
Smart Inserter
Smart Inserter
Posts: 1463
Joined: Fri Feb 14, 2014 5:52 pm
Contact:

Re: Trains reserve paths by segments instead of blocks

Post by sparr »

Harkonnen604 wrote:Why do you need 5 minutes for filling a train, given that 8 fast inserters with full stack bonus fill a single wagon in less than 30 seconds and they fill all wagons in parallel?
I am currently doing a challenge map. No belts, no chests, no bots, no long pipes. The longer I can keep my trains in the station, the better.
Moosfet
Long Handed Inserter
Long Handed Inserter
Posts: 71
Joined: Fri Jun 10, 2016 1:50 pm
Contact:

Re: Trains reserve paths by segments instead of blocks

Post by Moosfet »

ssilk wrote:
Also, the train stop needs to be able to be configured to keep a train for much more than 200 seconds. 600 seconds at least, probably 1000. (For the time being though, it does work to simply put the same stop in the list multiple times.)
With that speed you can use also belts. Makes no sense. :)
With things as they are now you can also use belts. With the resources required to make rails, engines, cargo wagons, signals, loading/unloading stations (inserters, chests, etc.), not to mention the time spent setting all of that up, the break-even point for it being better to use trains vs. belts is so far out there that you're in for some monotonous hours of turret-creeping huge swaths of nests if you want to get far enough away that it actually makes sense to use a train. The only real reason to use a train is that trains are fun.
Harkonnen604 wrote:@Moosfet
Why do you need 5 minutes for filling a train, given that 8 fast inserters with full stack bonus fill a single wagon in less than 30 seconds and they fill all wagons in parallel? For me it sounds like you have more wagons than production rate actually requires. I guess you need to make trains longer only when moments appear when provider station has its chests full while consumer station at the same time has its chests empty.
I do have more wagons than the production rate requires. My goal is to reduce rail traffic. It doesn't matter if a train leaves every 30 seconds or every 10 minutes, as long as the train has sufficient capacity for how long it waits, the throughput will be the same. However, in the first case, the rail traffic is much higher, with 20 times as many trains trying to go somewhere at any given moment. Thus people want more complex signals to handle that large amount of rail traffic. I'm suggesting solving the problem by reducing rail traffic instead.
silverkitty23
Fast Inserter
Fast Inserter
Posts: 117
Joined: Wed May 11, 2016 6:52 am
Contact:

Re: Trains reserve paths by segments instead of blocks

Post by silverkitty23 »

sparr wrote:Waiting for 600 seconds makes just as much sense as waiting for 200 seconds, if the stations are 3x as far apart.
Maybe your games are small. Some of us have train stations ten thousand tiles apart.
What does distance or size of map have to do with it? Once the train pulls in, it takes X amount of time to load. It doesn't take 600s to load because it's 3x farther away - load time is determined entirely by the efficiency of the loading station, not by the location of the loading station.

If your system is balanced at all, then it loads all the cargo wagons at once, whether you have 1 or 20 or 200 - and thus it should load all the wagons on the train in 15s. If you have some kind of self-imposed rules that make it take longer, that's your affair, but the game already allows you to make the train sit thirteen times longer than you should need. And in 0.13 it will have the "wait until loaded" option... and none of this seems relevant to reserving paths by segments instead of blocks :)

edit: at least Moosfet could articulate a position without casting aspersions on the moderator.
silverkitty23
Fast Inserter
Fast Inserter
Posts: 117
Joined: Wed May 11, 2016 6:52 am
Contact:

Re: Trains reserve paths by segments instead of blocks

Post by silverkitty23 »

Moosfet wrote: Thus people want more complex signals to handle that large amount of rail traffic. I'm suggesting solving the problem by reducing rail traffic instead.
Traffic reduction is an interesting position to take - but if you're doing it by setting longer delay times, you're very likely just guessing and aren't really keeping yourself down to "only one train on the tracks at all times"(*)... you could use the SmartTrains mod, however, to make sure only one train was active on a line at a time. That would be much closer to how real world engineers avoid collisions, as well :)

However, I think you're misunderstanding the original position: we are not looking for more complex signals to handle large amounts of traffic. That is wrong in both clauses.

In the first clause, we aren't looking for more complex signals, we're looking to simplify signals. By reserving the whole path segment instead of just the space until the next chain signal, you should need like 2 signals per path through the intersection, instead of a zillion signals spread through the whole intersection.

In the second clause, the problem isn't large amounts of traffic at all. You only need 2 trains to risk collision, and you need all the same signals to avoid collisions whether it's 2 trains or 50. The only sure way to reduce signals is to have 1 train (per line, of course - you could also have discontinuities to prevent collisions)

---

(*) I could be wrong, of course, maybe you DO have it worked out so you know exactly how long train 1 will take to get from base to destination, and it happens to be an exactly even multiple of how long train 2 will take, so if you could juuuust set the timer to exactly 425 seconds, they'd always be separate, and because their schedules are in even multiples, they don't drift their schedule to eventually both want to be in the same place at the same time...
User avatar
ssilk
Global Moderator
Global Moderator
Posts: 12889
Joined: Tue Apr 16, 2013 10:35 pm
Contact:

Re: Trains reserve paths by segments instead of blocks

Post by ssilk »

sparr wrote:Waiting for 600 seconds makes just as much sense as waiting for 200 seconds, if the stations are 3x as far apart.
No, makes no sense, cause the stored items in the wagons cannot be used for anything. You have mined it, you created a lot of pollution and now you are waiting another 10 minutes to bring it to the smelters. What a waste! :)

To make it clear: It makes very much sense to transport the items as fast as possible to a station, where they are used. This is true for any kind of transport in Factorio. It is also true for every other game I know, and it is much more true in the reality.

Edit: Now when I read the rest: Sorry, I won't offend you. If you challenge is like so, then it is like so. Good luck!
Maybe your games are small. Some of us have train stations ten thousand tiles apart.
:lol:
Image
This image shows about 2000 tiles. (1 solar field is 100 tiles wide)

Now I zoom out:
Image

And out:
Image
That is the maximum zoom. Currently I try to build a train around the lake, every 5000 tiles a bigger station. And the lake alone is about 4 times bigger than this section.
Cool suggestion: Eatable MOUSE-pointers.
Have you used the Advanced Search today?
Need help, question? FAQ - Wiki - Forum help
I still like small signatures...
Moosfet
Long Handed Inserter
Long Handed Inserter
Posts: 71
Joined: Fri Jun 10, 2016 1:50 pm
Contact:

Re: Trains reserve paths by segments instead of blocks

Post by Moosfet »

Not sure anyone is understanding me... Let's try some math!

A single mining machine outputs 0.4 ore per second. Say you find a huge ore patch you can fit 50 machines on. That's 20 ore per second. So you make a train that's 10 cargo wagons long, so it can hold 15k ore. To get 15k ore at 20 ore per second requires 750 seconds. So you don't need a train to leave that station any more frequently than once every 750 seconds.

So say it takes it 60 seconds to reach your factory, 30 seconds to dump the ore into your factory, and 60 seconds to return to the mine. That means that, at the mine, it should sit and wait for 630 seconds. If it waits any less than that, it's just increasing the amount of rail traffic your rail network has to deal with for absolutely no benefit. You're not going to get that ore any faster than the mining machines dig it up no matter how frequently the train departs.

So here's a drawing of what the rail network I created for the map I'm testing this idea out on: http://imgur.com/99e5BKs

Red dots are chain signals, green dots are ordinary signals. To put it another way, the red dots are the only ones that a train might actually stop and wait at. It's set up such that a train will never encounter a normal signal that it actually has to stop at. The yellow highlighted lines are the main tracks. They're two-way, and as such, only one train can be on them at a time, and so there are no signals along their length. Multiple main tracks are connected with "wait points" where the track splits into two, each side being one-way, for a distance just long enough for a train, in case two trains operating separately on the two main tracks need to pass each other. Where there are intersections, they occur on the bi-directional track where only one train can exist at a time, and thus the intersections require no signals.

Despite these large segments of tracks on which only one train can be at a time, and despite having four trains (iron ore, copper ore, stone, oil), when I get in a fifth train and program it to take me somewhere, it rarely has to stop and wait on other trains anywhere. This is because the other trains aren't leaving their stations after only 30 seconds, but rather, are set up with longer delays since, while the train can be loaded in only 30 seconds, it takes much more than that to produce enough items to actually fill the train. So my rail network is usually empty, and so when I want a train to take me somewhere, there's usually nothing in its way.

Anyway, my point with the larger cargo wagon capacity and stronger engine is that it changes the math even moreso into "you don't need a bunch of frequent trains" territory. Say we found an even larger ore patch that can fit 100 mining machines, producing 40 ore per second, and while I don't know what the speed modules can tune that up to, let's say it's 3x, so you get 120 ore per second. However, let's also say we now have a cargo wagon that can hold 4x as many items, and we have a stronger engine such that a 20 car train runs easily enough on a single engine. Well, now our train needs to depart only once every 1000 seconds. With such infrequent departures, our rail network will be hardly used, and as such won't require parallel tracks for trains running in opposite directions and the complex intersections that come with them, and if a train should be delayed for 60 seconds waiting on another train to leave a block in our much simpler rail network, it hardly matters that a 1000 second cycle becomes a 1060 second cycle. Indeed, in 0.13 when trains can be made to depart when full, it'll be entirely inconsequential as it'll just mean that the train spends more time traveling and less time waiting at the mining site.
Harkonnen604
Filter Inserter
Filter Inserter
Posts: 285
Joined: Thu Jun 09, 2016 5:56 am
Contact:

Re: Trains reserve paths by segments instead of blocks

Post by Harkonnen604 »

@Moosfet:
Given that production rates are way lower than train capacity in your case, I think enforcing trains to sit at the station for 1000 seconds is probably not much better than getting those trains stalled at some signal waiting for another train to pass. If we consider trains part of rail network, you did not resolve stress-on-a-railnetwork problem, instead you stressed it to the max :) just now trains forcibly wait at stations on timer instead of waiting at junctions on signal.

To actually put less stress on rail network in situations when you can allow 1000 seconds of loading time, I would try using one single train to deliver everything. E.g. 2 wagons per ore type + 1 for oil and move across all stations in some circular fashion with C*number-of-drills delays.

Both approaches put similar stress on interim rails, just second has faster production response (less buffering). and burns more coal :)
User avatar
ssilk
Global Moderator
Global Moderator
Posts: 12889
Joined: Tue Apr 16, 2013 10:35 pm
Contact:

Re: Trains reserve paths by segments instead of blocks

Post by ssilk »

Moosfet wrote:A single mining machine outputs 0.4 ore per second. Say you find a huge ore patch you can fit 50 machines on. That's 20 ore per second. So you make a train that's 10 cargo wagons long, so it can hold 15k ore. To get 15k ore at 20 ore per second requires 750 seconds. So you don't need a train to leave that station any more frequently than once every 750 seconds.
Correct math, but wrong logistic. :)

Let's take an easier example:
You have a coffee-machine, that can make 1 liter of coffee per minute. And you have a spring, that delivers 1 liter per minute.
The walk to the spring and back takes only 10 seconds.

You need 5 liter of coffee. What is the fastest strategy to wake up all officers in a bureau?

A) Your strategy.
You walk to the spring, 5 seconds gone, you have now 84 ml and wait for another 55 seconds to fill in 1 liter.
Now walk back, 1 minute 5 seconds are gone. NOW your coffee-machine can begin to work. So you bring every following minute 1 liter and the coffee-machine doesn't stop to work.
After 6 minutes and 5 seconds you are finished

B) My strategy:
I walk to the spring and back and bring 84 ml of water. 10 seconds are gone. The coffee-machine needs 5 seconds to brew this.
After 20 seconds I still have 84 ml coffee, but every following 10 seconds I bring 167 ml of water and the coffee-machine takes the same time. So after 30 seconds I've 84+167 ml...
After 5 minutes and 30 seconds I'm finished.

So in Factorio this is much more time. It's indeed SOME minutes faster, if you are transporting the items as fast as possible. This is also what I call "dead items". You cannot use items, that wait for transport. It's like you are taking credit, because you have dead capital.

The point is: Sometimes it's good to have dead items (in storage), sometimes not. The rule is: "Bring it as close to the production as possible, so that the time to fill the transport becomes as short as possible".

This is also the reason, why just-in-time-production is so successful: If the traffic rises, we can assume, that the amount of transported items also rises. More items are then on the run and they are in average much closer to the target. In Factorio the wagons become now a storage! They are a buffer then.

In consequence it means: Everything is better than waiting. Even if the traffic begins to jam.
Of course a total jam needs to be avoided. :)


So I don't want to spoil your game (everybody can play as he wants to :) ), I just need really to point to this kind of misunderstanding of basic logistics.
Cool suggestion: Eatable MOUSE-pointers.
Have you used the Advanced Search today?
Need help, question? FAQ - Wiki - Forum help
I still like small signatures...
sparr
Smart Inserter
Smart Inserter
Posts: 1463
Joined: Fri Feb 14, 2014 5:52 pm
Contact:

Re: Trains reserve paths by segments instead of blocks

Post by sparr »

ssilk wrote:So I don't want to spoil your game (everybody can play as he wants to :) ), I just need really to point to this kind of misunderstanding of basic logistics.
Even if we skip over the potential for traffic jams, which are very real in a dense network, you completely ignore that your method requires more fuel for trains, and more resources to make the trains.
Post Reply

Return to “Ideas and Suggestions”