About a year and a half ago, before I got my current job, I had been applying around the industry. While I don’t usually do so, I went through a recruiter and indirectly spoke to Flagship Studios. After they looked at my network library, the recruiter called back and said they didn’t want me because I had UDP experience instead of TCP experience. They wanted to use TCP for their game because WoW does so, and the founders originally came from Blizzard.
If you are familiar with game network programming, you are probably thinking how strange that is. It’s like saying you don’t want someone to drive your automatic because they usually drive a manual. If I wanted change RakNet to use TCP there wouldn’t be much more to it than changing SOCK_DGRAM to SOCK_STREAM, disabling the nagle algorithm, and bypassing my reliable communications layer. Of course RakNet would then suck, losing efficiency, speed, and some features but my point isn’t that but that there’s little substantial programmatical difference between the two THAT I KNOW OF.
And that’s the key point, one I’ve been wondering for a year and a half about. Is the guy who spoke to the recruiter a genius or an idiot?
This guy wrote a UDP network library and we want TCP experience.
There are many complex lessons from TCP game programming that only come from experience, and only he and a select few (excluding myself) know what they are.
An idiot would think there is some huge difference when there isn’t one while a genius would know of some huge difference that nobody else does.
I can’t figure it out. What do you think?