During an online event, a spectator process monitors a state of the event,
updating a spectator model, so that spectator data streams can be
generated and provided to spectators. The spectator data streams can be
formatted and provided with content appropriate for use by different
types of spectator devices used by the spectators. The spectator process
can also automatically generate virtual commentary appropriate for the
action occurring in the event for inclusion in the spectator data
streams. A media server receives the rendered data streams and
distributes them to the electronic devices being used by the spectators.
The distribution can be delayed to avoid a spectator conveying
information to a participant that would provide an unfair advantage.
Executable code can be included in the spectator data stream to provide
additional functionality and facilitate interaction between the
spectators, and to enable a spectator to also "play" the game.