What is the best Unity Networking lib around?

Initially I thought that the Unity Networking was all we will ever need. Then I read that people don’t really like it… Shocker!

Since then I have found RakNet, Badumna, Photon… Oh, I forget the rest… Point is, there are numerous options out there. I was wondering what the best one is in terms of:

  1. Ease of use
    For example, I found that calling functions in TinyUtopia is really easy but the way the data is returned rather puts me off. DimeRocker makes more sense in that a value is returned toa variable directly, but it had a slightly more steep learning curve than TU… So pros and cons on both sides. What are the pros and cons of the networking lib you use?

  2. Ease of install
    It seems RakNet can be use on a single machine whereas Badumna requires 2 machines, no matter what. If you don’t have a public IP then you will need to install it on a VPS so installation is handled remotely on a different machine to yours and you have to configure both… How easy is yours to setup?

  3. Available features
    As long as it works I suppose it’s fine but each engine highlights how cool they are in terms of this or that. What makes your networking lib better than the rest?

  4. OS support
    Nothing frustrates me more than spending an hour reading about all the cool features and then getting to the line that says: “This lib needs to be built in Visual Studio” !!! Is your lib Windows only or can it be installed on others? Does it come with VS and/or XCode projects?

I know I must have left out a number of libraries so add yours and give us some feedback on it, please.

Ta

I found that smartfox was the easiest to get to work.
Even if your a noob with Unity3D.

hrmmm… lets think this through a little bit…

  1. RakNet
    Well, as you all know, Unity has RakNet built in, this poses some cool options out of the box and when U3 comes out a pure stand alone RakNet server talking to Unity clients could very well become a reality, more on that in a few months.

1a) Cost: free with Unity, however, RakNet in general by Jenkins Software does have a catch, if your product exceeds $250,000 income annually (I think, check his website to make sure), you have to buy a specific license, but if you make that much money anyway, who cares, just give the man cash.

1b) Pros, well, like I mentioned, it is built in to Unity, the client is there and the server is there and it is already running as part of the game loop whether or not you use it. So zero setup for the end user, and simple calls to make thinks “just work”, and it is for unlimited games, unlimited servers.

1c) Cons, it really is geared for games like C&C, Road Rage, anything player base < 50 and as far as I can tell, it is setup mainly for peer to peer in its topology, although you can do client server with headless mode, the concept it was originally built on was to have a master server broadcast current games to join and players house the server themself with the master server giving a list of those games to players to join. In other words, Counterstrike comes to mind.

  1. ExitGames Photon, another powerful engine, takes a bit of getting used to, has examples with it and they now include an MMO example. However it is not for the weary and does have a learning curve based on your programming skills.

2a) The cost is free for a 50 cc license now to test out your game, I do not think you can use that license for a production game though, thent he license varies from there depending on a number of factors and it is setup for a one-off license model, meaning that what you pay for is for a single game, single server, been a while since I looked at their license model though.

2b) Pros, good solid product, does what it says and is powerful. It is very indepth and is constantly growing. The support staff is spot on and are willing to help you out. They have examples that you can download that show you how to make it work with Unity and it works in MANY different formats beyond Unity, so you can interact with the server with other clients other than a Unity client. This means you can write a Flash support system and interact with the players anywhere in the game through that Flash client, or iPhone or Android or… you get the picture.

2c) Cons, I think a few of the cons would be the initial getting up and running then figuring out what is actually doing what. Although it takes less than 2 minutes to be up and running, it takes a lot longer to figure out what methods are doing what work and how it is working. That said, I guess that is the main con that I can think of.

Others will have to discuss their pros’ cons’ along with costs on other engines they have experience with.

I’m just going with the built-in networking for half of my game and a custom solution of my own for another part. I couldn’t find any shortcomings in the current implementation, but needed a bit of cross-platform/cross-application support for some stuff.