Automatically split rail blocks when rails are too close together to insert signals

Post your ideas and suggestions how to improve the game.

Moderator: ickputzdirwech

Post Reply
sparr
Smart Inserter
Smart Inserter
Posts: 1327
Joined: Fri Feb 14, 2014 5:52 pm
Contact:

Automatically split rail blocks when rails are too close together to insert signals

Post by sparr »

In a reddit thread about using a simple circuit to create priority merges, the topic shifted to dense rail layouts, particularly where crossing rails are too close together to insert a signal. Someone pointed out that the game Sweet Transit has a novel solution to this. Their rail network implementation uses rail and chain signals similar to Factorio. What they did to resolve the dense rail problem is to automatically inject invisible fake chain signals anywhere there's a crossing too short for a real signal. This allows for much denser rail layouts without giving up separation of rail blocks, and doesn't seem to have significant gameplay drawbacks.

https://steamcommunity.com/games/161277 ... 5098171865 "Signal Blocks" section

Koub
Global Moderator
Global Moderator
Posts: 7198
Joined: Fri May 30, 2014 8:54 am
Contact:

Re: Automatically split rail blocks when rails are too close together to insert signals

Post by Koub »

Pretty smart solution :)
Koub - Please consider English is not my native language.

Amarula
Filter Inserter
Filter Inserter
Posts: 511
Joined: Fri Apr 27, 2018 1:29 pm
Contact:

Re: Automatically split rail blocks when rails are too close together to insert signals

Post by Amarula »

Very cool! Thanks for sharing!
My own personal Factorio super-power - running out of power.

FuryoftheStars
Smart Inserter
Smart Inserter
Posts: 2530
Joined: Tue Apr 25, 2017 2:01 pm
Contact:

Re: Automatically split rail blocks when rails are too close together to insert signals

Post by FuryoftheStars »

I'm not necessarily against this suggestion, but currently I consider this a trade-off. Want verbously signaled rails? Need to leave some space. Want compact rails? Going to have to sacrifice some signaling.
My Mods: Classic Factorio Basic Oil Processing | Sulfur Production from Oils | Wood to Oil Processing | Infinite Resources - Normal Yield | Tree Saplings (Redux) | Alien Biomes Tweaked | Restrictions on Artificial Tiles

robot256
Filter Inserter
Filter Inserter
Posts: 596
Joined: Sun Mar 17, 2019 1:52 am
Contact:

Re: Automatically split rail blocks when rails are too close together to insert signals

Post by robot256 »

This is basically how OpenTTD "path signals" work too. You place a path signal, and every tile up to the next normal signal is basically considered its own block. Factorio train signaling was inspired by OpenTTD, but that feature has not been replicated yet. Using a path signal entity to trigger the desired behavior would be more intuitive than having it happen spontaneously in certain situations.

DarkShadow44
Filter Inserter
Filter Inserter
Posts: 275
Joined: Thu Jun 01, 2017 12:05 pm
Contact:

Re: Automatically split rail blocks when rails are too close together to insert signals

Post by DarkShadow44 »

Not 100% sure I understand, what would it for example do with the following intersection?
Screenshot_20230122_201605.jpg
Screenshot_20230122_201605.jpg (579.85 KiB) Viewed 1218 times

robot256
Filter Inserter
Filter Inserter
Posts: 596
Joined: Sun Mar 17, 2019 1:52 am
Contact:

Re: Automatically split rail blocks when rails are too close together to insert signals

Post by robot256 »

In my idea, the game would recognize when a block could only be entered by path signals, and color it red-yellow hatched for example. Then it would behave as though every joint between rail entities (curved or straight) had bidirectional chain signals at it. This would be bad for performance, and might cause graphical glitches with trains passing too close together, but it's the least invasive, most intuitive approach in my opinion.

Because it adds so many blocks to the network, you'd want to minimize the number and size of pathed junctions in use. It could be optimized by looking for intersections like Rail Signal Planner and combining some segments, but in cases where this would be useful the boundaries between intersections become hard to find.

Eketek
Long Handed Inserter
Long Handed Inserter
Posts: 56
Joined: Mon Oct 19, 2015 9:04 pm
Contact:

Re: Automatically split rail blocks when rails are too close together to insert signals

Post by Eketek »

Another option might be use a more permissive system for rail signal placement - switch from a colliding entity occupying a 1x1 tile adjacent to a track to a non-colliding entity anchored to the track, and allow them to be freely attached to any rail segment that does not join or intersect another rail segment (said rail segment doesn't need to be the whole 2x2 block - just a few pixels of space between intersections should suffice).

robot256
Filter Inserter
Filter Inserter
Posts: 596
Joined: Sun Mar 17, 2019 1:52 am
Contact:

Re: Automatically split rail blocks when rails are too close together to insert signals

Post by robot256 »

Eketek wrote:
Wed Jan 25, 2023 9:28 pm
Another option might be use a more permissive system for rail signal placement - switch from a colliding entity occupying a 1x1 tile adjacent to a track to a non-colliding entity anchored to the track, and allow them to be freely attached to any rail segment that does not join or intersect another rail segment (said rail segment doesn't need to be the whole 2x2 block - just a few pixels of space between intersections should suffice).
This gets really tricky in intersections like the one pictured because what you really need is multiple signals in one spot, so that the curved track and the straight track can be reserved separately even though they start on the same exact tile. You'd have to be able to place a signal in the middle of a curved track but have it actually exist at one end of it or the other.

Post Reply

Return to “Ideas and Suggestions”