Robots, the lovable subjects as well as diligent workforce of a Robot colony, will need to perform many different tasks to keep the colony afloat. But what exactly are they doing all the time? It may be:
- Transporting stuff. This is likely to be the most often occuring task.
- Operating machinery. Some buildings require robots to work.
- Harvesting resources. Some resources can be harvested without special machinery.
- Building. This happens after transporting resources to a building site.
- Going somewhere. If the presence of a Robot at a certain place is requested.
- Consuming strawberries. The highlight of the day for a little worker drone.
- Entertaining Humans. Before they do anything unwise.
- Pausing or defective states:
- Recuperating and Resting. After a strawberry binge or human overload.
- Standby. If there is nothing left to do for a Robot.
Future tasks, past the things capable for a first release, may include:
- Herding animals. (Specific kind of operating machinery.)
- Create art. (Specific kind of building.)
- Defective state: Out of energy/fuel. Usually, Robots do take care to not run out; but in exceptional circumstances it might happen.
- Equip item.
- Malfunction. Some robots might turn defective, for a time or permanently.
Some tasks might carry multiple names (e.g. harvesting might also be called mining), but can employ the same Robot programming, which in turn keeps robots simple. Other tasks, for example entertainment of humans, might involve other tasks as subtasks, depending on the kind of entertainment to be provided.
The list of basic tasks that other tasks build upon are:
- Move to place. Special case: Move to a unit, e.g. a human, robot, animal (Parameters: Target).
- Take or give resource. (Parameters: Resource type, amount, required time, direction).
- Interact with building, to e.g. operate, build, use (Parameters: Target, required time, animation).
- Set a building or unit state, e.g. as built, entertained, harvested.
- Wait an amount of time (Parameters: Required time).
- Perform a stationary activity, like entertaining or consumption (Parameters: Animation, required time).
Furthermore, all (composite) tasks have a description and, computed from the basic tasks, a starting location and duration.
Furthermore, some tasks can preempt others: A Robot that runs out of fuel will halt its task to search for a supply. More intelligent robots will try to estimate the amount of fuel required for an upcoming task, and, if critical, decide to refill prior to starting the job.
There are thus two task sources: Global tasks, as generated by the Robot colony, for example to carry stuff around, and a Robot’s individual tasks, to satisfy Strawberry desire or to move back home. Individual tasks may either preempt global tasks or not, or may switch from non-preemptive to preemptive if the urgency rises.