How does Open Cobalt work without a server?
Open Cobalt works by leveraging a peer-based communications protocol to synchronize identical simulations running on a distributed set of machines. In this way we make it possible to have the same things happen on all the machines participating in a shared, replicated virtual space. Objects interact in shared Open Cobalt spaces by scheduling messages for future execution. The scheduling mechanism hands future-send messages off to a message router process on one of the clients (the ‘owner’ of the simulation). There the messages are timestamped and broadcast to all participants. On receipt of the timestamped message at a participant it is executed. If a side effect of the execution of a message was to move a virtual object in the simulation, then all of the participants would move the same virtual object at the same relative time. If the message was to store data to a local file, then all of the participants would write the same data to a local file at the same relative time.