A message is a piece of information that, after being written to a message queue, can later be read and executed by one or more systematic functions that are completely unrelated to the one that has generated the message.
A message has two distinct usecases:
- One stateless system wishes to communicate something to other stateless systems, while those systems have otherwise no reason to know about each other.
It accomplishes separation of concerns.
Needless to say, the logic step - which is all information that a stateless system uses for its run - provides no means to talk to any audiovisual system, due to risk of breaking determinism. However, there are cases where an audiovisual system could use information about some important occurences during the logic step. For example, the exploding ring system must receive proper input from when explosions happen to play nice explosion effects.
A message called
exploding_ring_inputexists for that purpose. It is posted inside stateless systems when they need to ignite explosions.
The message is later received by the exploding ring system inside the post solve callback, right before the logic step meets the end of its lifetime, along with all message queues.