Bulldog Main Line

Smart setups of railway stations, intelligent routing, solutions to complex train-routing problems.
Please provide - only if it makes sense of course - a blueprint of your creation.
Post Reply
zOldBulldog
Smart Inserter
Smart Inserter
Posts: 1041
Joined: Sat Mar 17, 2018 1:20 pm
Contact:

Bulldog Main Line

Post by zOldBulldog » Mon Oct 22, 2018 1:35 am

A blueprint book to help you build a rail main line to support a high throughput of trains.
mainLineWithExits.jpg
mainLineWithExits.jpg (5.4 MiB) Viewed 2077 times


Basic Principles:

- Intersections, no matter how well designed will cause trains to occasionally stop or slow down. It is best to avoid intersections as much as possible.
- Ore deposits become larger as you get further away from the spawn point. Larger deposits means more efficient mining.
- Therefore one of the most efficient designs is to build your base along a straight rail main line, with the various factories laid out in an order that facilitates transport of materials.

The bulldog Main Line design:

- Is based on the above principles.
- Is left hand drive (LHD). Although I am normally an RHD person, Factorio's train exit position and signal placing quickly made it evident that LHD works far better in this game.
- Is designed to support 8 wagon trains. Personally I designed it for 1-4-2-4-1SD (same direction locomotives) trains, with the intent of using 1-4-1SD at first and later grow to the bigger trains. When I get quite far from the starting point I expect to use larger trains and at that point to add to the blueprint book.
- The line is mainly designed as a 4-lane line, in 8-chunk segments.
- At the end of each segment are lane changers to allow trains to move in/out of the lanes.
- At the center of the segments there are turnarounds, to allow trains to reverse direction without intersections that cross tracks.
- In areas where you build bases there is an additional set of 8-chunk-long tracks that break off from the main line. These short tracks are where you place your entry/exits to your factories train stations.
- The above allows trains to enter/exit stations without ever crossing a line. Full trains go straight to their stations. Empty trains drive along the entry/exit track, shift inward and reverse direction to return to the factory where they will load up. This arrangement minimizes conflicts between trains and maximizes train speeds.
- For optimal throughput, plan the order of your factories along the main line well. Keep the travel distances as short as possible and in the right direction.
- There is no reason to have raw ore trains (except perhaps coal and maybe some stone) on the main line. Ore trains are best left on their own ore loop that goes straight into the smelter train station, never touching the main line.
- If you want even better throughput, setup a 2nd main line on the opposite side of the factories. In full through one main line and out empty through the other.

Core blueprints:
- Main Line with Exit Lanes: This is what you use as the core of your base. Simply plop these 8-chunk segments end to end and let your bots build them.
- Main Line without Exit Lanes: You can use these if there is a section where you don't plan to place any factories.
- Main Line, Long Haul (2 lanes only): You can use these on the long line out from your base toward the rich ore fields.
- Lane Junction, 4/2 lanes: Use these to join your 4-lane main sections to your 2-lane long haul sections.
- Radar Standard separation: Use these to place self-powered radars to keep your track visible. Contains 2 radars, so you can just lay over the previous one to tile them. These radars fit nicely between the 4 lanes and the exit lanes. It is important that the power poles in these do NOT connect to the main line (or you'll draw power).
- Bulldog Artillery Forward Post: You can use this blueprint to place a temporary outpost at the end of your line, to clear nests as you extend the line. Once cleared, remove it. Supports 1-4-1SD (same direction locomotives) trains.

Optional Blueprints (you should not really need them, but they are here just in case you want to tweak the design to make it your own):
- Bulldog TicTacToe intersection: The whole point of the design is to avoid intersections altogether, but if you really really want one... here is one that fits well with the rest of the design. Make sure to add enough 2 straight segments and a lane changer segment before connecting its ends to the rest of the design... so that you don't accidentally create the potential for slowdowns or even a deadlock.
- Straight - 4 lane: Just that. Again, you should not need it unless you are customizing.
- Lane Changers - 4 lane: To go with the intersection and straight sections. Or to customize for different train lengths.
- Inline Return / direction changer: Also available to customize for different train lengths.

Note that I left out many common sections that you typically see in rail blueprint books. There is no curve. There are no T-junctions. There are no further intersections. All of that is absolutely intentional, to remove the temptation. All you should ever really need is a trivial Y-split/merge from the exit/entry lanes, and that is so simple that it does not require a blueprint.

Factorioprints page: https://factorioprints.com/view/-LPOOJ-GsdY4h7KTnHgc

zOldBulldog
Smart Inserter
Smart Inserter
Posts: 1041
Joined: Sat Mar 17, 2018 1:20 pm
Contact:

Re: Bulldog Main Line

Post by zOldBulldog » Mon Oct 29, 2018 9:39 pm

Updated the mainline segment (now prioritizes the lane to use for most pass-through traffic... unless it is already busy) and the intersection (higher throughput).


zOldBulldog
Smart Inserter
Smart Inserter
Posts: 1041
Joined: Sat Mar 17, 2018 1:20 pm
Contact:

Re: Bulldog Main Line

Post by zOldBulldog » Thu Apr 11, 2019 2:42 pm

Significant redesign (slightly wider) done to simplify and improve the blueprint set.

Please notify me of any observed slowdowns.

- I kept the original blueprints in the Book in case anyone still wants them.
- Full description updated in the factorioprints page: https://factorioprints.com/view/-LPOOJ-GsdY4h7KTnHgc
- Please ignore the ridiculous deposit sizes. It was a test of 0.17 New World settings that shows that those options have much more impact than they did in 0.16.
0.17base.2019.04.10.jpg
0.17base.2019.04.10.jpg (1.07 MiB) Viewed 859 times

Sargas
Burner Inserter
Burner Inserter
Posts: 11
Joined: Fri May 25, 2018 5:53 pm
Contact:

Re: Bulldog Main Line

Post by Sargas » Sat Apr 27, 2019 9:14 pm

Hello,

I like the idea of this design. I think I will try this to build my first modular base.
What I yet not understand: Why is left hand drive better?

You wrote that ore trains should never touch the main line. But what do you think of this idea: In one direction (e.g. to the west) the line expands further and further to connect the factory to ore patches. In the other direction grows the factory, starting with the smelting area. This way, the ores are delivered only from west to east, and the products travel from west to east, too without mixing up.

Do you think you can use both sides of the main line? Or is it better to build only on one side, so you can expand the main line if needed?

zOldBulldog
Smart Inserter
Smart Inserter
Posts: 1041
Joined: Sat Mar 17, 2018 1:20 pm
Contact:

Re: Bulldog Main Line

Post by zOldBulldog » Sat Apr 27, 2019 10:49 pm

Sargas wrote:
Sat Apr 27, 2019 9:14 pm
Hello,

I like the idea of this design. I think I will try this to build my first modular base.
What I yet not understand: Why is left hand drive better?

You wrote that ore trains should never touch the main line. But what do you think of this idea: In one direction (e.g. to the west) the line expands further and further to connect the factory to ore patches. In the other direction grows the factory, starting with the smelting area. This way, the ores are delivered only from west to east, and the products travel from west to east, too without mixing up.

Do you think you can use both sides of the main line? Or is it better to build only on one side, so you can expand the main line if needed?
Answers:

1) Why LHD.
- In Factorio you exit trains on the left. That means that with a typical one-direction rail and two or more tracks per line and RHD you will either have to cross the train you came on or you will have to cross the return track. Inconvenient and possibly even risky as you can get run over easily. But with LHD you can exit on the outermost track and have your factory right next to it... no tracks to cross after exiting a train.
- In Factorio signals and train stops are on the right. With RHD that puts them on the outside, requiring you to allocate an extra block or two for them. With LHD they are on the inside, no space wasted. But, there is one scenario where RHD is superior: When you want to place 2 rails touching each other, with signals and stops on the outside.

2) Using both sides of main line.
- Trains will use both sides, even if you arrange things to be perfectly linear. Full trains in one direction and empty trains returning in the other direction. (It is possible to avoid, but then you'd have two main lines... one on each side of your factories. I considered it for this design but I have not yet tried it.)
- So, since trains are going in both directions anyway it is perfectly valid to put factories on both sides. The only difference is whether they unload then turn around or turn around then unload.

3) Why not mixing ore trains on the main line.
- Ore trains are a large portion of your train volume.
- Ore trains also spend a lot of time traveling. They often quickly load, travel, then quickly unload. That causes a lot of rail traffic, but the one positive is that it largely follows the same path.
- So, if they were to use even a portion of the line used by other traffic - even if it is just the entry into the smelter - it will cause a congestion point.
- Thus, while it is OK early on... it is undesirable long term.
- That makes the ideal smelter design to place ore on one end and smelted products on the other, each with its own stations, stacker and line. Of course, you might need some crossover to let stone and coal through to the factories that use them. Depending on how you outpost uranium, you might also need to llet some uranium products through.
- Of course, your idea of having ore come from the west to smelter, and the products go east from the smelter is excellent.

Sargas
Burner Inserter
Burner Inserter
Posts: 11
Joined: Fri May 25, 2018 5:53 pm
Contact:

Re: Bulldog Main Line

Post by Sargas » Sun Apr 28, 2019 7:35 am

Thank you for your full answer and the compliment.

tengumai
Burner Inserter
Burner Inserter
Posts: 7
Joined: Mon Aug 15, 2016 12:27 am
Contact:

Re: Bulldog Main Line

Post by tengumai » Wed May 01, 2019 9:11 pm

This latest version (April 11, 2019) is causing my factorio to crash at the moment I attempt to import the Blueprint. I can reliably repro this problem just by starting a new game then pasting the import string into the blueprint importer. Anyone else having this problem?
  • Factorio 0.17.33 (build 44624, win64, alpha)
  • No mods loaded

Code: Select all

Factorio crashed. Generating symbolized stacktrace, please wait ...
c:\cygwin64\tmp\factorio-build-m1tc3k\libraries\stackwalker\stackwalker.cpp (924): StackWalker::ShowCallstack
c:\cygwin64\tmp\factorio-build-m1tc3k\src\util\logger.cpp (376): Logger::writeStacktrace
c:\cygwin64\tmp\factorio-build-m1tc3k\src\util\logger.cpp (527): Logger::logStacktrace
c:\cygwin64\tmp\factorio-build-m1tc3k\src\util\logging.cpp (90): Logging::logAndAbortOrThrow
c:\cygwin64\tmp\factorio-build-m1tc3k\src\util\logging.cpp (84): Logging::logAndAbortOrThrow
c:\cygwin64\tmp\factorio-build-m1tc3k\src\util\wireconnectionhelper.cpp (221): WireConnectionHelper::connectBlueprintEntities
c:\cygwin64\tmp\factorio-build-m1tc3k\src\util\blueprintimportexportengine.cpp (572): BlueprintImportExportEngine::loadEntitiesFromPropertyTree
c:\cygwin64\tmp\factorio-build-m1tc3k\src\util\blueprintimportexportengine.cpp (505): BlueprintImportExportEngine::loadBlueprintFromPropertyTree
c:\cygwin64\tmp\factorio-build-m1tc3k\src\util\blueprintimportexportengine.cpp (354): BlueprintImportExportEngine::loadBlueprintFromPropertyTree
c:\cygwin64\tmp\factorio-build-m1tc3k\src\util\blueprintimportexportengine.cpp (822): BlueprintImportExportEngine::loadBlueprintBookBlueprints
c:\cygwin64\tmp\factorio-build-m1tc3k\src\util\blueprintimportexportengine.cpp (403): BlueprintImportExportEngine::loadBlueprintBookFromPropertyTree
c:\cygwin64\tmp\factorio-build-m1tc3k\src\util\blueprintimportexportengine.cpp (314): BlueprintImportExportEngine::loadItemFromPropertyTree
c:\cygwin64\tmp\factorio-build-m1tc3k\src\gameactionhandler.cpp (2811): GameActionHandler::importBlueprintString
c:\cygwin64\tmp\factorio-build-m1tc3k\src\gameactionhandler.cpp (322): GameActionHandler::actionPerformed
c:\cygwin64\tmp\factorio-build-m1tc3k\src\input\inputhandler.cpp (61): InputHandler::flushActions
c:\cygwin64\tmp\factorio-build-m1tc3k\src\gameactionhandler.cpp (365): GameActionHandler::update
c:\cygwin64\tmp\factorio-build-m1tc3k\src\mainloop.cpp (1139): MainLoop::gameUpdateStep
c:\cygwin64\tmp\factorio-build-m1tc3k\src\mainloop.cpp (1011): MainLoop::gameUpdateLoop
c:\cygwin64\tmp\factorio-build-m1tc3k\src\util\workerthread.cpp (42): WorkerThread::loop
c:\program files (x86)\microsoft visual studio\2017\buildtools\vc\tools\msvc\14.15.26726\include\thr\xthread (230): std::_LaunchPad<std::unique_ptr<std::tuple<void (__cdecl RouterBase::*)(void),ClientRouter *>,std::default_delete<std::tuple<void (__cdecl RouterBase::*)(void),ClientRouter *> > > >::_Go
c:\program files (x86)\microsoft visual studio\2017\buildtools\vc\tools\msvc\14.15.26726\include\thr\xthread (209): std::_Pad::_Call_func
minkernel\crts\ucrt\src\appcrt\startup\thread.cpp (115): thread_start<unsigned int (__cdecl*)(void * __ptr64)>
ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 00007FFC15164034)
00007FFC15164034 (KERNEL32): (filename not available): BaseThreadInitThunk
ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 00007FFC15593691)
00007FFC15593691 (ntdll): (filename not available): RtlUserThreadStart
Stack trace logging done
  84.157 Error WireConnectionDefinition.cpp:27: (circuitConnectorID == CircuitConnectorID(-1)) != (wireConnectionID == WireConnectionID(-1)) was not true
Logger::writeStacktrace skipped.
  84.158 Error CrashHandler.cpp:177: Map tick at moment of crash: 845911
  84.158 Error Util.cpp:97: Unexpected error occurred. If you're running the latest version of the game you can help us solve the problem by posting the contents of the log file on the Factorio forums.
Please also include the save file(s), any mods you may be using, and any steps you know of to reproduce the crash.
  87.252 Uploading log file
  87.315 Error CrashHandler.cpp:213: Heap validation: success.
  87.317 Creating crash dump.
  87.636 CrashDump success

zOldBulldog
Smart Inserter
Smart Inserter
Posts: 1041
Joined: Sat Mar 17, 2018 1:20 pm
Contact:

Re: Bulldog Main Line

Post by zOldBulldog » Wed May 01, 2019 9:22 pm

tengumai wrote:
Wed May 01, 2019 9:11 pm
This latest version (April 11, 2019) is causing my factorio to crash at the moment I attempt to import the Blueprint. I can reliably repro this problem just by starting a new game then pasting the import string into the blueprint importer. Anyone else having this problem?
  • Factorio 0.17.33 (build 44624, win64, alpha)
  • No mods loaded
Thank you for the report, will look into it.

It is very strange, you are the 2nd person reporting this even tough the blueprint does not depend on any mod. Everybody else using it seems to have no problems. I wonder if blueprints made in an earlier 0.17 version stop being usable.

csduff
Inserter
Inserter
Posts: 45
Joined: Thu Nov 22, 2018 3:42 pm
Contact:

Re: Bulldog Main Line

Post by csduff » Fri May 03, 2019 1:33 pm

So I've just started a new factory, and I have used your blueprints as a jumping off point for my design. This should be interesting, as up until now I have always used a grid like structure to build my layouts. Not sure how fast this factory will work, but we will see.

zOldBulldog
Smart Inserter
Smart Inserter
Posts: 1041
Joined: Sat Mar 17, 2018 1:20 pm
Contact:

Re: Bulldog Main Line

Post by zOldBulldog » Fri May 03, 2019 1:44 pm

csduff wrote:
Fri May 03, 2019 1:33 pm
So I've just started a new factory, and I have used your blueprints as a jumping off point for my design. This should be interesting, as up until now I have always used a grid like structure to build my layouts. Not sure how fast this factory will work, but we will see.
I has performed very well for me in the past, especially under heavy load. I recently updated it and I just noticed a flaw in the new version that reduced throughput. I am already made the necessary small fix (almost identical and with the same footprint, except for the M2 blueprint that now has 2 lines of power as a safety against the increased hostility of biters in 0.17) but I am only starting to test it. Keep an eye out for an update in the next few days.

Also, I can't claim the original idea of doing a fully linear and long base. I saw it mentioned by eradicator in a thread, tried it, and loved it. These blueprints just take that concept and make it easy to use.

patrick12222010
Burner Inserter
Burner Inserter
Posts: 10
Joined: Thu May 16, 2019 4:31 am
Contact:

Re: Bulldog Main Line

Post by patrick12222010 » Mon May 20, 2019 1:23 am

Great work! I'm stealing this! ;)

Post Reply

Return to “Railway Setups”

Who is online

Users browsing this forum: No registered users