Hey Guys,
So we were talking a bit at the SuperCollider Symposium about our
different networking technologies, and spoke briefly about possibly
combining efforts for a possible standardized solution that might be
rolled into SuperCollider, instead of relying on a collection of
proprietary efforts.
As Chad and I discussed, the Glitch Lich networking architecture is
predicated on techniques developed for FPS videogame networking. Game
and music have a lot in common, including the need for extremely fast,
reliable, and smooth control information transmitted over distance,
with minimal jitter, lag, and packet loss. They've come up with some
innovative ways of dealing with this.
They also have to worry about problems that is not as big of an issue
for network music, namely bandwidth(dealing with hundreds of users on
a single server), and cheating.
Les asked to see some papers on the subject. Unfortunately, most game
developers tend not to write papers, but there are a few documents
online that speak at length on the subject. Probably the clearest
document that addresses this(that I've seen) is the Unreal Networking
Architecture overview made by Tim Sweeney. you can find it here:
http://udn.epicgames.com/Three/NetworkingOverview.html
Another useful document is the overview of the valve networking
architecture, including interesting features such as input
prediction(such as dead reckoning...could be useful for network music,
haven't attempted it myself yet).
https://developer.valvesoftware.com/wiki/Source_Multiplayer_Networking
regarding TCP vs.UDP usage in games(and thus network music) check out
this document and the paper it references for why you should
realistically never use TCP:
http://gafferongames.com/networking-for-game-programmers/udp-vs-tcp/
(this is the paper that the previous link references regarding the
effects of simultaneous TCP and UDP usage):
http://www.isoc.org/INET97/proceedings/F3/F3_1.HTM
If you want to see one way of applying this to network music you can
check out the paper Chad and I submitted to ICMC this year about our
networking software OSCthulhu:
http://curtismckinney.com/OSCthulhuICMC2012.pdf
Though keep in mind that our software system is specifically tailored
towards remotely rendering synthesis to multiple intercontinental
sites, rather than a local area network with multiple laptops
rendering their own audio. Perhaps we could begin a discussion about
what might be a good way of structuring a more standardized model that
might work as a general purpose SuperCollider synchronization library.
Perhaps one that would offer multiple modes of operation(mesh vs. hub,
local rendering vs. remote rendering, etc).
-Curtis