Advice for choosing a networking middleware.

I recently went through what you are going through. I also needed an authoritative server, but for different type of game than you.

While trying to decide, I picked up uLink's trial, just to get my hands dirty.

I eventually settled on Bolt. I'm very happy I did so. It is very solid and makes a lot of sense once you start really figuring it out. I'm only a week or so in, so I'm still figuring stuff out, but I've been very happy so far. It was not long before I had a working prototype up and running.

Now, that said, there are a few things to know.

  • Networked multiplayer is hard. Doesn't matter what framework you choose. You'll have to start thinking in patterns you are not used to thinking in. Not is even different from uLink and Photon in terms of the patterns it uses. But after using it, man, I think it's a smarter setup. It makes more sense and feels way cleaner to develop for.
  • Bolt, while really solid and very feature complete, is still under active development. Version changes are relatively frequent.
  • /u/fholm is the creator of Bolt and he is friggin' amazing. His care his users is just beyond compare. He is super accessible daily via Jabbr and the forums. He's also active here in Reddit. He is so helpful to his userbase that it's a wonder he gets any work done on Bolt at all. Just to give you an example, I ran into a weird issue where I was getting bad warping and jumping on a client connection. I couldn't track it down and asked in Jabbr if he knew what might be causing it. He took the project himself, tore it apart and figured out exactly what was causing the problem, and helped me get it correctly set up and running again with the problem solved. (It turned out to be a rigidbody issue, and not Bolt after all.) Like, wow. Honestly, Bolt could cost three times as much and it would still be a good deal.
  • Unfortunately, because Bolt is in such active development, there is not as much documentation and tutorial material as I would like. There is another round of tutorial and documentation updates coming very soon, but just be aware that this is the current state of things. That said, the fantastic support by /u/fholm and others in the Bolt community does make up for this lack. I haven't had any show-stopping problems because of this.

Anyway, hope this helps in your evaluation of the options.

/r/Unity3D Thread