An important aspect of games and simulations is specifying the order and overlap of operations that take time. Need two or two hundred monsters all acting simultaneously? Planning a swarm of robots that can march in (or out of) step? Thinking about a fleet of spaceships that invade over time?
Time-flow control is at the heart of the Verse programming language, and this is accomplished with concurrent expressions.
You could say that time flow is a type of flow control, but where control flow is about the order in which a computer executes instructions based on the order of expressions in the program, time flow controls the execution in time, not sequence, based on how concurrency expressions are used.
Time flow is another way of saying concurrency.
Concurrency Overview
See how concurrency expressions impact time flow in Verse.
Sync
Run two or more async expressions concurrently using a sync expression.
Race
Use a race expression to run two or more async expressions concurrently and cancel whichever expressions don't finish first.
Rush
Use a rush expression to run two or more async expressions without canceling the slower expressions.
Branch
Use a branch expression to start one or more async expressions, then immediately execute following expressions.
Spawn
Use a spawn expression to start one async expression in any context, then immediately execute the following expressions.
Task
A task is an object that represents the state of a currently-executing async function.