Tuesday, July 31, 2018

Custom Networking API

So over the last few months I've been having difficulty with Unity's Unet networking API.  Contrary to the experience of some, the High Level API (HLAPI) has been working pretty well.  The issues have all come down to the Unet Low Level API (LLAPI). 

It is difficult to tell what the problems are, because the LLAPI is kept largely as a black box.  The problems may be possible to resolve, but it is almost impossible to see what is getting stuck in the LLAPI buffers and there is no way to directly clear them.  The buffer sizes even when maxed out all turn out to be arbitrarily low.  This means, in my opinion, Unet is good for small games with limited data transfers, but does not scale up well to an MMO. 

So after months of fighting with it I've decided to take the worst tasting medicine and develop a custom networking API for Broadside.  This will add approximately 3-5 additional months of work, but should eliminate any further networking issues with lack of visibility.