User talk:HR248: Difference between revisions
No edit summary |
No edit summary |
||
(6 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
''' | WIP | ||
{{Languages}} | |||
:''For the research see [[Railway (research)]]'' | |||
'''The Railway''' is one of the main transport methods in Factorio. Although the installation of such a network can be complicated, and requires a large amount of resource and space, it is faster and more efficient than [[Belt transport system|belts]] and [[Logistic network|robot logistics]], especially over large distances. | |||
Railway construction, however, is not understood instantly. It takes some time to learn the basics, such as automating transportation. Learning how to manage and maintain upkeep of a larger train network takes time and experience. | |||
== Infrastructure == | |||
To build a railway, tracks (also called rails) must be built for the train to ride on. Typically, this is done via the [[rail planner]], but can also be done manually. Bear in mind that rails are placed on a two-tile grid, so a rail cannot be moved by only one tile. | |||
=== Minimum manually operated railway === | |||
As a minimum a manually operated railway has to consist of: | |||
* [[Rail]]s (tracks) | |||
* [[Locomotive]]s | |||
Locomotives can be entered and then manually operated by standing next to them and pressing the {{Key|ENTER}} button. | |||
=== Switches === | |||
* There is no visual representation of a working switch, however the rails will appear to merge. Using the rail planner, the player must place a [[rail]] overlapping an existing rail to form a switch. Switches are forks in tracks that allow a train to pick between two directional options. | |||
* The crossing of two straight tracks is not usable as switch, as trains have a limited turning radius. They do, however, connect [[Rail signal| signal blocks]] which helps prevent collisions. | |||
* Parallel tracks do not interact with each other. However, switching from one track to the other can require extra resources if they are too close together; the track must turn away from the other parallel track and then turn back to it. This can create complicated networks of signals and, as such, one should generally not build parallel tracks unless they are spaced adequately. (Generally, 2 track widths apart works well) | |||
[[File:fff-140-controlled-gates.gif|thumb|An example of a safe railway crossing.]] | |||
=== Crossing tracks === | |||
'''Be careful when crossing tracks! Trains are one of the highest damaging entities in the game, and will kill most players instantly on contact.''' | |||
A checklist of proper track crossing etiquette: | |||
# Zoom out, so that you can see a train coming. | |||
# Look left, then right. | |||
# Check for signals nearby: If a [[rail signal]] suddenly jumps from green to red or green to yellow, a train is coming. Do not cross. | |||
# Avoid walking near the tracks, as you do not need to be fully on the tracks to get hit. | |||
# While it is possible to get into/out of a train while it is moving, a miss can cost your life. The sides of the train can still deal damage, as well as the player being able to slip between two rail cars. | |||
# Heavy [[Energy shield|shields]] can be used to reduce the damage taken. In extreme cases, it is possible to stop a train with your body. This will require several shield modules to not be instantly killed, and will drain a large amount of the suit's energy. | |||
# All entities with health will take damage getting hit by a train, so take care not to leave a [[Car]] or [[Tank]] on the tracks. However, this includes hostile forces! | |||
# Trains far from a [[train stop]] will be traveling at (near) max speed, so take extra precaution when crossing and zoom out further. Trains near a [[train stop]] or signal will slow down to stop, and will be traveling slower. Trains of different configurations will also move slower or faster. | |||
A safe railroad crossing like the example shown in the picture can be built. This works by restricting access to the tracks when an oncoming train has the rails reserved. When the player is on the rails, the signals are reserved by the [[circuit network]], and the train must stop and wait until the player leaves the tracks. When a player is inside the area crossing the tracks, the train gates are closed so the player can't get on the tracks outside the crossing. This is to completely ensure a safe crossing, and is often used on servers. | |||
{{clear}} | |||
== Trains == | |||
Train components: | |||
{{ | {| class="wikitable" | ||
|{{Imagelink|Locomotive}} || {{Imagelink|Cargo wagon}} || {{Imagelink|Fluid wagon}} || {{Imagelink|Artillery wagon}} | |||
|} | |||
[[File:Railway-assemble-train.png|thumb|left|300px|Placing a [[Cargo wagon]] so it is attached to the train.]] | |||
* A train consists of at least one locomotive. | |||
* Trains can have more than one locomotive, and any number of [[Wagon]]s. | |||
* Locomotives can be '''manually''' driven forwards or backwards, however, they are generally slower going backwards. The left and right movement keys are used to change direction at switches. | |||
* Trains can only drive forwards automatically. An automatic train can drive forwards and backwards when two locomotives facing different directions are connected to the train. | |||
* A train needs [[fuel]] to drive. Fuel can be added by inserters when the train is in manual mode or parked at a station, not when waiting at a signal or standing on automatic mode. | |||
The locomotives' inventory is only used for [[fuel]]. To transport items or fluids [[cargo wagon]]s and/or [[fluid wagon]]s have to be attached to the train. To attach rolling stock, whether a wagon or a locomotive, the player may either prepare to place one near an existing train, where a green graphic will show the player that the stock will be attached, showing a connection between the train and the new stock. Alternatively, the player may manually connect rolling stock to trains with the rolling stock connect key, if the cargo wagon was placed far away from a train. Rolling stock can likewise be disconnected with the rolling stock disconnect key. The cargo wagons can be filled or emptied manually or by up to twelve adjacent [[Inserters]] (six on each side), while fluid wagons can be filled or emptied with up to three [[pump]]s, which will automatically connect to the nipples on top. | |||
{{clear}} | |||
== Stations == | |||
[[File:station-example-1.png|thumb|right|256px|A very minimal train station.]] | |||
Station Components: | |||
{| class="wikitable" | |||
|{{Imagelink|Train stop}} || {{Imagelink|Straight rail|Rail|Rails}} || {{Imagelink|Inserter|Inserters}} or {{Imagelink|pump|pump|Pumps}} | |||
|} | |||
A '''train station''' is a combination of at least one [[train stop]] plus a [[storage]] and/or distribution system, used to fill or empty [[cargo wagon]]s and/or [[fluid wagon]]s, load [[fuel]] into the [[Locomotive|locomotive(s)]], load ammunition into [[artillery wagon]]s, or repair trains. | |||
'''Don't mix up ''train stations'' with ''train stops''.''' A train station is a concept, whereas a [[train stop]] is an item. | |||
[[Inserter]]s placed next to train tracks are used to load/unload trains at train stops. Inserters are the only way to automatically get items out of and into cargo and artillery wagons; pumps are the only way to automatically get fluids into and out of fluid wagons. | |||
{{clear}} | |||
== Signals == | |||
{| class="wikitable" | |||
| {{Imagelink|Rail signal}} || {{Imagelink|Rail chain signal}} | |||
|} | |||
Rail signals are used to employ multiple trains automatically without the danger of trains crashing into each other. Rail signals split the network into blocks and ensure that only one train can be in every block at any time. Note that driving a train manually ignores all signals; so it is possible for automatic trains to crash into the player if the player ignores red/yellow signals. Always beware of automatic trains and give them the right of way. | |||
The [[Tutorial:Train signals|train signals tutorial]] contains an in-depth explanation of rail signals, blocks and deadlocks. | |||
=== Basic Signaling Rules === | |||
* There can only be one train in a block at any time. A train spanning multiple blocks occupies them all. | |||
* A red signal means that the following block is occupied by a train. | |||
* A yellow signal means that a train is approaching and already has the approval to enter the following block. | |||
* [[Rail signal]]s separate a new block and reflect its state: green - free, yellow - reserved, red - occupied | |||
* [[Rail chain signal]]s separate a new block and reflect the state of the next [[Rail signal]](s): see above, blue - at least one of the paths is blocked, but not all | |||
* A train can only pass a signal on the right of the track, or if there is a signal on both sides on the same rail segment. Of course, manual driving overrides this. | |||
== Automated transport == | |||
[[File:train-schedule-gui.png|thumb|300px|The scheduale tab in the train GUI: 1 - switch between automatic and manual driving mode; 2 - add new train station; 3 - delete selected station; 4 - send train to selected station; 5 - add wait condition for selected station; 6 - delete selected wait condition; 7 - change logical mode of selected wait condition]] | |||
Trains set on "Automatic" choose their destination stop and route on departure, and after waiting at a chain signal for five seconds, and when their destination stop disables itself by circuit condition. They choose the shortest route using a [[Railway/Train_path_finding|path finding algorithm]] that will get them to an enabled train stop with the right name, taking penalties for any apparent-at-the-time delays into account. If no such train stop exists they will skip the stop and go on to the next. | |||
This section covers items used to make trains automatically transport items between stations. The player should be familiar with creating a rail system. | |||
First, the player has to setup a rail system with at least two train stops, which are placed in the right-hand side of the expected train arrival direction. By hovering over the train stop with the mouse you see the positions of the vehicles for better setting up the train station (including (un)loading machinery, refueling/repair installations). | |||
When you set up the train schedule (see below) and fuel the train, you can start the train on it's schedule by switching from manual to automatic driving mode. | |||
=== Train schedule === | |||
The player can set up a list of train stations in the upper window. The train will route to stops in the given order, if it's at the end it will continue with the first. Currently, it's not possible to make a one-time schedule. Stations can be added by clicking button 2 (see picture). A pop-up appears with a list of all stop names. If you select one, another pop-up appears for you to select a wait condition. | |||
Wait conditions are used to tell the train when to leave the station. There are 7 types of wait conditions: | |||
[[ | * '''Time passed''' | ||
* '''Inventory full''' – All inventories of the train are full. | |||
* '''Inventory empty''' – Same as above, but empty. | |||
* '''Item count''' – The train (all cargoes summed) contains a specific amount of a certain item. | |||
* '''Circuit condition''' – The train stop is connectable to the [[Circuit network]], so the signals can used for wait conditions. | |||
* '''Inactivity''' – No items were added or removed for the specified amount of seconds. | |||
* '''Fluid count''' – The train (all fluid wagons summed) contains a specific amount of a certain fluid. | |||
Hereafter the word "term" is used to describe ''one'' type of wait condition, and the words "wait condition" are used to describe the whole set of terms (it turns a bit into maths). | |||
If you add more than one term, you can change the connection of those using the logical operators AND and OR (button 7). An AND condition will result in true if all terms are true. An OR condition will return true if at least one of the terms is true. | |||
When mixing AND and OR terms, the logic is grouped by the OR terms. When evaluating the wait condition, the first term is evaluated along with all AND terms immediately following up to but excluding the next occurring OR term. If they all evaluate true, the wait condition evaluates true. Otherwise, evaluation continues with that next occurring OR term and all AND terms immediately following it, up to the next OR term. This continues until either an OR group evaluates true and the wait condition is satisfied, or all terms have been checked. | |||
=== | ==== Examples ==== | ||
<div class="toccolours mw-collapsible mw-collapsed" style="width:800px"> | |||
Expand for examples | |||
<div class="mw-collapsible-content"> | |||
Wait until full, up to 30 seconds: | |||
<pre> | |||
Full cargo inventory | |||
OR 30 seconds passed | |||
</pre> | |||
Wait until cargo full, ''or'' circuit condition Oil > 3000: | |||
<pre> | |||
Full cargo inventory | |||
OR Circuit condition - Oil > 3000 | |||
</pre> | |||
Wait until empty, ''and'' 30 seconds passed, ''and'' 5 seconds of inactivity: | |||
<pre> | |||
Empty cargo inventory | |||
AND 30 seconds passed | |||
AND 5 seconds of inactivity | |||
</pre> | |||
Wait until iron ore is low, ''or'' copper ore is low ''and'' at least 30 seconds passed: | |||
<pre> | |||
Cargo: Iron ore < 500 | |||
AND 30 seconds passed | |||
OR Cargo: Copper ore < 500 | |||
AND 30 seconds passed | |||
</pre> | |||
Factorio's wait condition logic is read as disjunctive normal form ([https://en.wikipedia.org/wiki/Disjunctive_normal_form DNF]), and so this last example is processed as (note the parenthesis): | |||
<pre>((Cargo: Iron ore < 500 AND 30 seconds passed) OR (Cargo: Copper ore < 500 AND 30 seconds passed))</pre> | |||
Which is the same as this: | |||
<pre>((Cargo: Iron ore < 500 OR Cargo: Copper ore < 500) AND 30 seconds passed)</pre> | |||
Unfortunately, there is no way to write that shorter form in the current UI. | |||
</div></div> | |||
=== Troubleshooting === | |||
Below are some things to verify if a rail system or train is not working. | |||
* Is the train fueled? Ensure that the locomotive has [[fuel]] of some kind. | |||
* Misplaced or non-functional switches? Ensure that the train can plan a path through the switches. | |||
* Another train on the same [[Railway#Block|block]]? Make sure the path of the train is unobstructed. | |||
* Train stops placed correctly? Make sure that the yellow arrows when hovering on the stop point towards the end or exit of the stop. | |||
* Is the train allowed to enter signals from the right direction? Are the signals set correctly? | |||
* If a track is supposed to be two-way, the rail signals should be opposite each other. You can verify they match up by hovering the cursor over one. For a matched pair, it will show the other. | |||
* | ==== No path ==== | ||
* | When trains cannot reach the target, a "no path" symbol pops up over the locomotive. Check: | ||
* | * Can the train reach its current destination by '''only driving forward'''? Build turning slopes or place a locomotive at both ends of a train! | ||
* Are the train stops standing in the right direction? Train stops must be on the right hand side of the track. | |||
* If you use rail signals, check that the signals are all allowing traffic in the correct direction. | |||
* Check for interruptions in the train tracks, drive to the station manually to check there are no rail parts missing. Especially near junctions these can be hard to spot if missing. | |||
If you are still having problems, consider: | |||
* Driving the train manually, and as you pass each switch, try switching to automatic. When it works, you will know the rough area of the problem. | |||
[http://imgur.com/a/Nq2Yk A pictorial summary of typical problems]. | |||
== Achievements == | |||
{{Achievement|trans-factorio-express}} | |||
== Connection to [http://www.openttd.org/ OpenTTD] == | |||
Factorio's railway system works basically exactly like [http://wiki.openttd.org/Signals#Block_signals≈ the block signals in Open Transport Tycoon Deluxe]. Players who have ever played that game will find some elements of it in Factorio. If not, they can learn from the OpenTTD documentation. | |||
== | == See also == | ||
* [[Tutorial: | * [[Tutorial:Train signals]] | ||
* [[ | * [[Locomotive]] | ||
* [[ | * [[Cargo wagon]] | ||
Latest revision as of 03:13, 30 October 2018
WIP
- For the research see Railway (research)
The Railway is one of the main transport methods in Factorio. Although the installation of such a network can be complicated, and requires a large amount of resource and space, it is faster and more efficient than belts and robot logistics, especially over large distances.
Railway construction, however, is not understood instantly. It takes some time to learn the basics, such as automating transportation. Learning how to manage and maintain upkeep of a larger train network takes time and experience.
Infrastructure
To build a railway, tracks (also called rails) must be built for the train to ride on. Typically, this is done via the rail planner, but can also be done manually. Bear in mind that rails are placed on a two-tile grid, so a rail cannot be moved by only one tile.
Minimum manually operated railway
As a minimum a manually operated railway has to consist of:
- Rails (tracks)
- Locomotives
Locomotives can be entered and then manually operated by standing next to them and pressing the ENTER button.
Switches
- There is no visual representation of a working switch, however the rails will appear to merge. Using the rail planner, the player must place a rail overlapping an existing rail to form a switch. Switches are forks in tracks that allow a train to pick between two directional options.
- The crossing of two straight tracks is not usable as switch, as trains have a limited turning radius. They do, however, connect signal blocks which helps prevent collisions.
- Parallel tracks do not interact with each other. However, switching from one track to the other can require extra resources if they are too close together; the track must turn away from the other parallel track and then turn back to it. This can create complicated networks of signals and, as such, one should generally not build parallel tracks unless they are spaced adequately. (Generally, 2 track widths apart works well)
Crossing tracks
Be careful when crossing tracks! Trains are one of the highest damaging entities in the game, and will kill most players instantly on contact.
A checklist of proper track crossing etiquette:
- Zoom out, so that you can see a train coming.
- Look left, then right.
- Check for signals nearby: If a rail signal suddenly jumps from green to red or green to yellow, a train is coming. Do not cross.
- Avoid walking near the tracks, as you do not need to be fully on the tracks to get hit.
- While it is possible to get into/out of a train while it is moving, a miss can cost your life. The sides of the train can still deal damage, as well as the player being able to slip between two rail cars.
- Heavy shields can be used to reduce the damage taken. In extreme cases, it is possible to stop a train with your body. This will require several shield modules to not be instantly killed, and will drain a large amount of the suit's energy.
- All entities with health will take damage getting hit by a train, so take care not to leave a Car or Tank on the tracks. However, this includes hostile forces!
- Trains far from a train stop will be traveling at (near) max speed, so take extra precaution when crossing and zoom out further. Trains near a train stop or signal will slow down to stop, and will be traveling slower. Trains of different configurations will also move slower or faster.
A safe railroad crossing like the example shown in the picture can be built. This works by restricting access to the tracks when an oncoming train has the rails reserved. When the player is on the rails, the signals are reserved by the circuit network, and the train must stop and wait until the player leaves the tracks. When a player is inside the area crossing the tracks, the train gates are closed so the player can't get on the tracks outside the crossing. This is to completely ensure a safe crossing, and is often used on servers.
Trains
Train components:
Locomotive | Cargo wagon | Fluid wagon | Artillery wagon |
- A train consists of at least one locomotive.
- Trains can have more than one locomotive, and any number of Wagons.
- Locomotives can be manually driven forwards or backwards, however, they are generally slower going backwards. The left and right movement keys are used to change direction at switches.
- Trains can only drive forwards automatically. An automatic train can drive forwards and backwards when two locomotives facing different directions are connected to the train.
- A train needs fuel to drive. Fuel can be added by inserters when the train is in manual mode or parked at a station, not when waiting at a signal or standing on automatic mode.
The locomotives' inventory is only used for fuel. To transport items or fluids cargo wagons and/or fluid wagons have to be attached to the train. To attach rolling stock, whether a wagon or a locomotive, the player may either prepare to place one near an existing train, where a green graphic will show the player that the stock will be attached, showing a connection between the train and the new stock. Alternatively, the player may manually connect rolling stock to trains with the rolling stock connect key, if the cargo wagon was placed far away from a train. Rolling stock can likewise be disconnected with the rolling stock disconnect key. The cargo wagons can be filled or emptied manually or by up to twelve adjacent Inserters (six on each side), while fluid wagons can be filled or emptied with up to three pumps, which will automatically connect to the nipples on top.
Stations
Station Components:
Train stop | Rails | Inserters or Pumps |
A train station is a combination of at least one train stop plus a storage and/or distribution system, used to fill or empty cargo wagons and/or fluid wagons, load fuel into the locomotive(s), load ammunition into artillery wagons, or repair trains.
Don't mix up train stations with train stops. A train station is a concept, whereas a train stop is an item.
Inserters placed next to train tracks are used to load/unload trains at train stops. Inserters are the only way to automatically get items out of and into cargo and artillery wagons; pumps are the only way to automatically get fluids into and out of fluid wagons.
Signals
Rail signal | Rail chain signal |
Rail signals are used to employ multiple trains automatically without the danger of trains crashing into each other. Rail signals split the network into blocks and ensure that only one train can be in every block at any time. Note that driving a train manually ignores all signals; so it is possible for automatic trains to crash into the player if the player ignores red/yellow signals. Always beware of automatic trains and give them the right of way.
The train signals tutorial contains an in-depth explanation of rail signals, blocks and deadlocks.
Basic Signaling Rules
- There can only be one train in a block at any time. A train spanning multiple blocks occupies them all.
- A red signal means that the following block is occupied by a train.
- A yellow signal means that a train is approaching and already has the approval to enter the following block.
- Rail signals separate a new block and reflect its state: green - free, yellow - reserved, red - occupied
- Rail chain signals separate a new block and reflect the state of the next Rail signal(s): see above, blue - at least one of the paths is blocked, but not all
- A train can only pass a signal on the right of the track, or if there is a signal on both sides on the same rail segment. Of course, manual driving overrides this.
Automated transport
Trains set on "Automatic" choose their destination stop and route on departure, and after waiting at a chain signal for five seconds, and when their destination stop disables itself by circuit condition. They choose the shortest route using a path finding algorithm that will get them to an enabled train stop with the right name, taking penalties for any apparent-at-the-time delays into account. If no such train stop exists they will skip the stop and go on to the next.
This section covers items used to make trains automatically transport items between stations. The player should be familiar with creating a rail system.
First, the player has to setup a rail system with at least two train stops, which are placed in the right-hand side of the expected train arrival direction. By hovering over the train stop with the mouse you see the positions of the vehicles for better setting up the train station (including (un)loading machinery, refueling/repair installations).
When you set up the train schedule (see below) and fuel the train, you can start the train on it's schedule by switching from manual to automatic driving mode.
Train schedule
The player can set up a list of train stations in the upper window. The train will route to stops in the given order, if it's at the end it will continue with the first. Currently, it's not possible to make a one-time schedule. Stations can be added by clicking button 2 (see picture). A pop-up appears with a list of all stop names. If you select one, another pop-up appears for you to select a wait condition.
Wait conditions are used to tell the train when to leave the station. There are 7 types of wait conditions:
- Time passed
- Inventory full – All inventories of the train are full.
- Inventory empty – Same as above, but empty.
- Item count – The train (all cargoes summed) contains a specific amount of a certain item.
- Circuit condition – The train stop is connectable to the Circuit network, so the signals can used for wait conditions.
- Inactivity – No items were added or removed for the specified amount of seconds.
- Fluid count – The train (all fluid wagons summed) contains a specific amount of a certain fluid.
Hereafter the word "term" is used to describe one type of wait condition, and the words "wait condition" are used to describe the whole set of terms (it turns a bit into maths).
If you add more than one term, you can change the connection of those using the logical operators AND and OR (button 7). An AND condition will result in true if all terms are true. An OR condition will return true if at least one of the terms is true.
When mixing AND and OR terms, the logic is grouped by the OR terms. When evaluating the wait condition, the first term is evaluated along with all AND terms immediately following up to but excluding the next occurring OR term. If they all evaluate true, the wait condition evaluates true. Otherwise, evaluation continues with that next occurring OR term and all AND terms immediately following it, up to the next OR term. This continues until either an OR group evaluates true and the wait condition is satisfied, or all terms have been checked.
Examples
Expand for examples
Wait until full, up to 30 seconds:
Full cargo inventory OR 30 seconds passed
Wait until cargo full, or circuit condition Oil > 3000:
Full cargo inventory OR Circuit condition - Oil > 3000
Wait until empty, and 30 seconds passed, and 5 seconds of inactivity:
Empty cargo inventory AND 30 seconds passed AND 5 seconds of inactivity
Wait until iron ore is low, or copper ore is low and at least 30 seconds passed:
Cargo: Iron ore < 500 AND 30 seconds passed OR Cargo: Copper ore < 500 AND 30 seconds passed
Factorio's wait condition logic is read as disjunctive normal form (DNF), and so this last example is processed as (note the parenthesis):
((Cargo: Iron ore < 500 AND 30 seconds passed) OR (Cargo: Copper ore < 500 AND 30 seconds passed))
Which is the same as this:
((Cargo: Iron ore < 500 OR Cargo: Copper ore < 500) AND 30 seconds passed)
Unfortunately, there is no way to write that shorter form in the current UI.
Troubleshooting
Below are some things to verify if a rail system or train is not working.
- Is the train fueled? Ensure that the locomotive has fuel of some kind.
- Misplaced or non-functional switches? Ensure that the train can plan a path through the switches.
- Another train on the same block? Make sure the path of the train is unobstructed.
- Train stops placed correctly? Make sure that the yellow arrows when hovering on the stop point towards the end or exit of the stop.
- Is the train allowed to enter signals from the right direction? Are the signals set correctly?
- If a track is supposed to be two-way, the rail signals should be opposite each other. You can verify they match up by hovering the cursor over one. For a matched pair, it will show the other.
No path
When trains cannot reach the target, a "no path" symbol pops up over the locomotive. Check:
- Can the train reach its current destination by only driving forward? Build turning slopes or place a locomotive at both ends of a train!
- Are the train stops standing in the right direction? Train stops must be on the right hand side of the track.
- If you use rail signals, check that the signals are all allowing traffic in the correct direction.
- Check for interruptions in the train tracks, drive to the station manually to check there are no rail parts missing. Especially near junctions these can be hard to spot if missing.
If you are still having problems, consider:
- Driving the train manually, and as you pass each switch, try switching to automatic. When it works, you will know the rough area of the problem.
A pictorial summary of typical problems.
Achievements
Trans-Factorio express Have a train plan a path 1,000 tiles or longer. |
Connection to OpenTTD
Factorio's railway system works basically exactly like the block signals in Open Transport Tycoon Deluxe. Players who have ever played that game will find some elements of it in Factorio. If not, they can learn from the OpenTTD documentation.