Glad to see that people appreciate time, one of my favorite engineering challenges. We took it on at rapt.fm in order to have the beat and other events start in sync.
A distributed tick was used on game servers and in web clients via websockets. Max Seiden deserves credit for the work, it involved subscribing to a custom tick emitter on the server-side, and in each subscriber, an adjustment mechanism and local failover.
I did the javascript client work that ended up in the final release, basically a mechanism wherein events could be scheduled a few seconds ahead, and these would get triggered on the same tick. This way, even with the obvious latency in the video feed, at least countdowns and music cues happened simultaneously for everyone participating (well, when it wasn't buggy).
rapt.fm does not use this, but Precision Time Protocol is the ultimate way to make time sync work. I intend to get to know it better for future projects.
At work I implemented a sort of NTP-over-ajax to help guarantee browser/server time synchronization for displaying signals properly in realtime. I'd much rather use websockets, but for various reasons I'm holding off on doing that until that part of the codebase is cleaned up more.
It's proven invaluable especially with wireless devices and also people wanting to hold up two displays next to each other and not notice a difference.
A distributed tick was used on game servers and in web clients via websockets. Max Seiden deserves credit for the work, it involved subscribing to a custom tick emitter on the server-side, and in each subscriber, an adjustment mechanism and local failover.
I did the javascript client work that ended up in the final release, basically a mechanism wherein events could be scheduled a few seconds ahead, and these would get triggered on the same tick. This way, even with the obvious latency in the video feed, at least countdowns and music cues happened simultaneously for everyone participating (well, when it wasn't buggy).
rapt.fm does not use this, but Precision Time Protocol is the ultimate way to make time sync work. I intend to get to know it better for future projects.
http://en.wikipedia.org/wiki/Precision_Time_Protocol
http://ptpd.sourceforge.net/