Discrete Event Simulation
Rather than updating every part of a simulation on each clock tick, discrete event simulators keep a list of when each part of the simulation will change, and therefore needs to be updated
This “event list” is sorted by time, earliest first
Then, the simulator simply performs the operations...
- Advance the clock to the time of the first element on the event list, and remove it
- Perform that operation and update its state
- Determine when it will next change, and if it has caused others things to change
- Add them to the event list in their correct places