General Workflow Building
- When building your Workflow, make sure you put more space between Units than what seems necessary at first. It is almost always the case that you will have to revisit sections and add systems later.
- If you know that you will need a Variable in more than one place, it is advisable to create a Variable for it.
- If the Variable is only used within one workflow, use Workflow Variables (not Project Variables)
- Use Workflow Variables to cover large distances between units, to avoid unnecessary cable overlapping.
- If you find yourself duplicating a system for multiple parts of your Project, encapsulate its functionality in a Subworkflow (using the Workflow Unit).
- When designing a Workflow Unit it is important that you expose both in- and out-triggers, since Workflow units will only pass Variables to the Subworkflow on a trigger tick.
- When you are done with your main Workflow, expose the Triggers, and any Variables that you deem necessary. This will allow someone else to reuse your workflow.
- Provide necessary information about published Input Ports via an Annotations.
Main Bus Design
Having a well structured Workflow is crucial for larger Projects, as it severely decreases the overhead which is required to fix problems, implement changes and introduce other developers to the Workflow design. There are three "bus design" practices:
Indistinct UnitsLayer Units of the same type vertically. This decreases the width of the Workflow and still allows for good structure. | |
Distinct UnitsLayer Units (or Unit groups) horizontally. Adding Annotations is a good way to keep it structured. | |
BranchingBranching can be done by using the Workflow Unit, i.e. a group of Units is put together as a Subworkflow. Exposed Inputs and Outputs are used to send and get data to and from the Subworkflow. |