By Brian Boyko
Editor, Network Performance Daily
Recently, World of Warcraft released a patch which enabled players to use integrated VoIP chat. Online gaming and VoIP are, in many ways, extremely well matched. VoIP can help with the immersion of the gaming experience - roleplaying characters with voice, coordinating attacks instantly and in real time, being able to more clearly articulate nuance and inflection that could change the meaning of a sentence… not to mention that you'll finally have some good idea of whether or not the attractive blood elf lady that's been chatting you up is a 45 year old guy living in his mom's basement. Of course, that's not always a good thing…
While I don't play WoW, I have found that VoIP has become a crucial part of my gaming experience - though I typically don't like first-person shooters, I greatly enjoy the Battlefield series because of its interactive voice chat. It's very immersive - with your squad leader barking out orders and relaying info to your commander, it - well, it would be tactless to say that it feels like you're a soldier in war, but it certainly feels like you're a kid playing soldier.
VoIP and gaming are particularly well suited to each other for another reason, more technical and esoteric. VoIP traffic and game traffic usually use the same protocol, UDP.
A quick rundown for the non-technical people reading this post: UDP is a lightweight protocol with no ability to check if a packet was received; TCP is more useful for ensuring that all of the data arrives completely, UDP, that most of the data arrives quickly. This is why UDP is used for online streaming media, voice, and of course, gaming, which requires split-second reflexes and precise timing.
And though we've covered converged data and voice traffic at length before, UDP and TCP on the same network at the same time can cause network and VoIP performance problems if UDP isn't limited to a certain quality of service. Imagine a TCP and UDP connection traveling together. TCP will, in order to make sure that the packets arrive accurately, will slow down its traffic when it senses that there's less room in the pipe. UDP, in order to make sure that the packet arrives quickly, will see that there's now more room in the pipe from what TCP vacated, and take up even more room… which causes TCP to slow even further. It's a vicious cycle.
But voice and data traffic both use UDP - which is one of the reasons that even before WoW's addition of VoIP, people were using Teamspeak or Ventrilo to provide their own voice capabilities with their friends, and though there was almost always a performance hit, the fact that both WoW and Teamspeak are UDP-based makes it easier for both application to co-exist.
There are a few TCP applications in most MMORPG games, but most of them are simple ones - things like transferring inventory and IRC-like chat - which typically don't take up a whole lot of bandwidth compared to the data sent through the game or data sent through the game's VoIP. One thing that IS TCP-based is the downloading of patches and game updates - there are non-technical reasons, such as game balance, that contribute to this, but just about any online game will stop play while you're downloading the patches, rather than downloading the packages in the background while you play. My best guess is that this is partially because coding simultaneous play (UDP) and data download (TCP) is much harder than coding simultaneous play (UDP) and VoIP (UDP.)
One exception to the rule that games must use UDP is Second Life - that MMORPG requires data to be downloaded constantly and accurately, with new items being built. I can't know for sure as I'm not a coder, but I believe this to be one of the reasons why play control (UDP) in Second life tends to suffer so much and objects take a very long time, it seems, to download (TCP).
We'll try to have more technical details on WoW's VoIP rollout later in the week.


