Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

Networking Server Comparison Chart

Discussion in 'Multiplayer' started by Adam-Buckner, Jul 3, 2011.

  1. Adam-Buckner

    Adam-Buckner

    Joined:
    Jun 27, 2007
    Posts:
    5,664
    I would support the view that a mac port would be of relatively minimal value. A LINUX port, on the other hand might not be. What I'm finding is that many of the hosted options, and usually the more inexpensive hosted options, run on Linux. I won't be hosting my own server, I will purchase a service. I need the server to run on an inexpensive yet reliable hosted solution. Photon fails on this one parameter for me. I have not yet had a chance to look at the Photon-over-Unity solution (http://forum.unity3d.com/threads/101734), partly because I didn't want to have to deal with the windows aspect.
     
  2. Adam-Buckner

    Adam-Buckner

    Joined:
    Jun 27, 2007
    Posts:
    5,664
    @David.Almroth: Thanks for updating that page. Steffam Einarsson sent me a note to look at the uLink details but it blew out of my head. It's been a bit of a busy time these last few weeks.

    Please, if anyone sees information that needs updating, please do so.

    (And make a note of it here on the thread...)

    Just so people are clear where I am coming from with this data: I started this document as I needed to know what the options were when planning my networked game - and realized that I should share this information. Currently I am using Unity's built-in networking as my game is a very simple turn-based strategy game, but this is more out of simplicity (laziness?) than anything else. For something as simple as a game that relies on turn based RPCs, Unity's built-in networking is sufficient.

    Of the more powerful solutions I've tested, so far my favorite is uLink, but my testing is far from authoritative with this simple game. What I like most about uLink is it's Unity-centric design and the fact that it used instances of Unity as the server, so server and client share things like the same physics engine. I also like the Unity Park roadmap for tools to help the developer create robust networked games. The biggest hurdle is the difficulty of getting an indie license due to the way that they handle them with a waiting list.

    I'm unclear, now that Photon has this Unity networking wrapper (http://forum.unity3d.com/threads/101734), how issues like the physics engine, etc., compares when using Photon for Unity Networking. I have not had a chance to test it yet.

    Currently, I'm trying to get the last bits of polish on my game and get it shipped, so I won't be doing much hard core research on this subject for a little while, but all of these solutions do have their strengths (and weaknesses). Looking at the features and differences and comparing them to your needs should be the deciding factor, as all of these solutions do successfully network a game.
     
  3. MaliceA4Thought

    MaliceA4Thought

    Joined:
    Feb 25, 2011
    Posts:
    406
    Look at their homepage.. no waiting list currently and a huge offer :)

    Theres also something missing from your comparison chart which is actually one of the most important things.

    Tech Support.. can't talk about others but uLink is absolutely stunning in the help and support they give... it's worth the cost purely for that in my opinion, let alone all the other good stuff you get :)

    Regards

    Graham
     
  4. Adam-Buckner

    Adam-Buckner

    Joined:
    Jun 27, 2007
    Posts:
    5,664
  5. bertelmonster2k

    bertelmonster2k

    Joined:
    Apr 3, 2009
    Posts:
    78
    Changed our Indie Price conditions
    - is now $399 (is ~299€)
    - unlimited everything (server, CCUs) per application

    We simplified "Indie": companies with < $10k monthly turnover.

    Some little adjustments/corrections
    - Photon supports reliable and unreliable UDP in a mix (based on eNet)
     
    Last edited: Oct 8, 2011
  6. Adam-Buckner

    Adam-Buckner

    Joined:
    Jun 27, 2007
    Posts:
    5,664
    bertelmonster2k: Thanks for the update!
     
  7. Adam-Buckner

    Adam-Buckner

    Joined:
    Jun 27, 2007
    Posts:
    5,664
    Just a point of clarification on uLink that could be confusing. They have a "30 day free trial", but it has been noted that there are no technical restrictions preventing people from continuing their testing after 30 days. Commercial servers are prevented by checking against a serial number, but local testing can continue:

    http://forum.unity3d.com/threads/106030

    *a sub-note is that their post-Unite sale is about to end. See above thread for the offer, which is primarily a free license to their MMO suite with the purchase of an indie license.
     
  8. Ashkan_gc

    Ashkan_gc

    Joined:
    Aug 12, 2009
    Posts:
    1,116
    At this time i don't have the time to fill in the document but i would like to clear some points on uLink and the unityPark suite.
    We at MindHammerGames are making a big social farming MMO using the unityPark suite technology and we have gained some experience in their tech. there are huge important differences between them and all other solutions which should be understood correctly to make correct choices.
    1- their trial version could be sued for more than 30 days and you should not be worried on this when choosing your solution. the only real limitation is about hosting commercial games which is not possible with the trial version.
    2- their tech is much more powerful than unity's own networking however the API might look the same at first. you can easily create and register custom serializers for different classes and create any logic from login to handovering (moving) objects from one server to another as easy as possible.
    3- you'll have the powerful unity api from physics and collision detection to Vector3 on the server to use and use your reusable client code on the server too.
    4- their technology can scale really well using a clusture technology called pikkoserver which allows cell servers of huge worlds to be combined on multiple machines and in result of that you can create huge areas without any boundaries and ... this is not possible in most MMO middlewares currently available in the whole market (not only unity). this tech is a revolution and uses cellular networks model to do it's job. it's much different from other much less dynamic cell server approaches.
    4- when using photon/electrotank and other solutions you have to code database connection and game serialization yourself and you should start/stop server instances of the game or machines yourself. lobby features of them are limited too but in unityPark suite you have the uGameDB which is a scalable, modern, none SQL database to serialize your game and do much more. you also have uLobby and uZone to manage lobbies and instances. the uGameDB system uses Riak for backend engine and it's much more scalable than any SQL database. it has horizontal scaling and big names like firefox are using it to collect and store user data for analysis.
    it's really easy to work with. we coded the whole game saving/serialization in a pre release version with much less than 100 lines of code which much of it is creating codecs for serialization of special datatypes in our social game and the real serialization/deserialization code is less than 30 lines of code. could you imagine it in mySQL/MS SQL server?
    5- their support is great and they are really fast in implementing new features to make you amazed. take a look at their release notes (what's new) in developer.unitypark3d.com to have a taste of it.
    6- there are benifits which are not clear at first but you'll see them when you work, for example when you use their awesome free uCollab to debug your game, it's still much harder to debug a networked game compared to single player ones but compared to normal debugging solutions for networking it's super easy and nice to work with.
    when i say it's still hard cause in networked games, love it or not there are many factors included and some of the job is done using RPC calling and some sort of impossible to check runtime reflection/dynamic kind of thing in any solution so things could become a litle complicated in a networked game before you gain experience but with uCollab at least you can have both client and server project always in synch and visually debug both and see the log messages in editor. you can have all graphics on server when debugging and remove them in release time.

    actually i can recommend uLink for any project other than simple card/board games and those games which are not simple and hobby enough to be coded in unity's own solution. for board and card games it's possible to use uLink but i think it's an overkil however i'll do it with uLink if i want to do cause i really know/love it much but even in that situation i don't recommend you to use photon or anything else to code it in pure C# cause using C# instead of unity servers is more lightweight but then you'll again lose all of your lobby / database things. i'll instead encourage you to use uLink's uLobby/uGameDB with a game logic written in a scalable language like erlang which unitypark suite uses much on the server systems. if you write good code even using unity could be well possible based on number of users and development time and ... afterall it requires more code on things like C#/Erlang compared to server development in unity.

    so one answer for any MMO/networked game in unity, UnityPark suite. it's awesome just try it to prove me.
    if you are not using unity and are happy to get 30% of your revenue then in middlewares outside of unity world the only great solution is the heroengine which if you want more comparisons on it and unitypark and other networking things you can email me at info@mindhammergames.com

    so many columns need to be added to reflect these facts completely :) i think a review of any middleware could be added to the document and it's value would be much more. reading a few pages to be able to choose the right solution is not that much, is it? thank you for sharing this here with the public.
     
  9. Adam-Buckner

    Adam-Buckner

    Joined:
    Jun 27, 2007
    Posts:
    5,664
    ashkan: Thank you very much for your review.

    This type of first hand review is very helpful.

    I would like to encourage users of other solutions (Photon, ES, Badumna, FireFox, etc.) to chime in, as this is a comparison thread.

    -

    To be clear -

    Ashkan: Are you beta testing the Unity Park Suite? Am I correct that the majority of this Unity Park suite is still unavailable for the general public, and will be release officially on January 1st? I'll see if I can confirm this independently.

    For those interested in the Unity Park Suite, it is on sale for €500 as an indie license (the entire suite, not just uLink) until the 28th of October, if I calculate correctly. They said 30 days after the start of Unite, which was the 28th of September. After that, they imply that the indie license will continue indefinitely at €500, but will not include the rest of the suite. I have not seen a price tag for it, but it won't be €500.
     
  10. Ashkan_gc

    Ashkan_gc

    Joined:
    Aug 12, 2009
    Posts:
    1,116
    This product is really awesome and the price is much more awesome! you know, the guys at muchdifferent are reasonable and you can always describe your project to them and they might come up with something but the price surely would be much higher for the complete suite.
    uLink, uZone, uLobby, uGameDB, uStream
    but uLink would be available for 500 euros in future too.
     
  11. Adam-Buckner

    Adam-Buckner

    Joined:
    Jun 27, 2007
    Posts:
    5,664
    Ok, Just to clarify:

    Ashkan is a beta tester and is in possession of and working with the entire Unity Park Suite, which includes uLink, uZone, uLobby, uGameDB and more.

    The Unity Park Suite will be available to the general public on (or around) the 1st of January 2012.

    There is a pre-order/indie deal on now where for the price of an indie license (€500), you will also get the entire Unity Park Suite for no additional charge when it is available.

    The pre-order indie deal is on until Friday, the 28th of October, 2011.

    After that, it is presumed, but not stated, that the indie license will still be available without a waiting list for the same price, €500, but without the rest of the Unity Park Suite.
     
  12. Adam-Buckner

    Adam-Buckner

    Joined:
    Jun 27, 2007
    Posts:
    5,664
    As there has been a flurry of clarification about uLink the Unity Park Suite from MuchDifferent, I thought it was important to point out that there is a new price for Photon Indie, and that these licenses are, as stated, unlimited everything per application:

     
  13. PrimeDerektive

    PrimeDerektive

    Joined:
    Dec 13, 2009
    Posts:
    3,090
    I was a bit confused about Christian's words on that too... he mentioned they'll still offer indie licenses, but that anyone who doesn't buy one now will be kicking themselves in the butt.

    I'm not sure if he was referring to the Suite not being included, or a price hike?
     
  14. Adam-Buckner

    Adam-Buckner

    Joined:
    Jun 27, 2007
    Posts:
    5,664
    I'm presuming it's because if the suite. I must admit, even tho' I have a license, I am very tempted to buy a second "while supplies last". My current game does not need the suite, but I have a second on the drawing board that would, and if I have to buy 2 licenses eventually, why not get the suite for free? Thus the nature if sales, no?
     
  15. Ashkan_gc

    Ashkan_gc

    Joined:
    Aug 12, 2009
    Posts:
    1,116
    i just want to clearify that uLink doesn't require you to know erlang. you will not write even a single line of erlang code in it.

    i just meant that if you don't need to have unity instances as servers then the tool to code your logic with is not java/C#/action script but it's erlang due to it's great scalability and mentioned that unityPark and pikkoserver use it too. i did not mean that you should write erlang code in uLink. i said that you can have erlang code for your main logic without using uLink and then just use uGameDB/uLobby or even uLobby and erlang without uGameDB to write games without unity instances for board/card games to scale better.

    unityPark does not require erlang but if you love to learn new things erlan is the most awesome thing that you should start learning. coding in it is just like the thinking process.

    i am really interested to read others stories but i don't think that you could find any other user being proud of the solution that they are using. i don't see any points to choose photon over unityPark at this time with these features.

    as i know the indie license that will continue in future is the uLink itself without other products of the suite for 500 euros and other tools will be sold based on your project.
     
  16. bertelmonster2k

    bertelmonster2k

    Joined:
    Apr 3, 2009
    Posts:
    78
  17. Adam-Buckner

    Adam-Buckner

    Joined:
    Jun 27, 2007
    Posts:
    5,664
    Thanks! I saw your announcement about the Photon Cloud. Looks very promising.

    bertelmonster2k: For simplicity, could you write a line of two about how Photon Cloud would help the Unity Developer? I know it's on the website, but for those reading the thread, it might grab some attention.

    And if you sign-up for this service before the end of November '11, you are entered into a contest for an iPad2, correct?
     
  18. bertelmonster2k

    bertelmonster2k

    Joined:
    Apr 3, 2009
    Posts:
    78
    Thanks for your moderation.

    Unity (embedded) Networking is a powerful technology but on the other side has some issue: Connectivity problems, dependency on a Masterserver, issues on mobiles (iOS, Android).

    The Photon Cloud solves these problems and makes it very convenient to switch and test it out: No Server install necessary, the porting of existing Unity Networking based code is straight forward (API is 99% the same). Simple. Not authorative. No custom server code.

    A good showcase is beerpong by Codeglue: http://beerponghd.com/. It uses Unity, Unity Networking, OpenFeint, running on iOS and Android and hosted on the Photon Cloud.

    Indeed :)
     
  19. PrimeDerektive

    PrimeDerektive

    Joined:
    Dec 13, 2009
    Posts:
    3,090
    Awesome... I just signed up!

    Is there any examples of how it works, or documentation besides the one page with the comparison to server? how to set up server/room browsers and whatnot?
     
  20. Dreamora

    Dreamora

    Joined:
    Apr 5, 2008
    Posts:
    26,601
    You just download Photon Unity Network from the Unity Asset Store and are ready :)
     
  21. PrimeDerektive

    PrimeDerektive

    Joined:
    Dec 13, 2009
    Posts:
    3,090
    Easy enough :) (still at work)... I never bothered trying it before because I had no interest in setting up my own server.

    Bertel, how will pricing and performance go for CCU's and stuff in the cloud?
     
  22. FiveFingers

    FiveFingers

    Joined:
    Oct 15, 2009
    Posts:
    541
    Is Photon working with Unity iPhone / Android Basic ?
     
    Last edited: Nov 4, 2011
  23. bertelmonster2k

    bertelmonster2k

    Joined:
    Apr 3, 2009
    Posts:
    78
  24. tohghim

    tohghim

    Joined:
    Nov 4, 2011
    Posts:
    1
    test

     
  25. FiveFingers

    FiveFingers

    Joined:
    Oct 15, 2009
    Posts:
    541
    Hi Bertelmonster,

    I tried import the asset from the assets store, and compile the test scene on iOS, and I get something like: " .net socket are available on iPhone Advanced only" and it won't compile.

    Did I get the wrong version ?

    Should I use Cloud or Server ?

    Thanks in advance.
     
  26. Adam-Buckner

    Adam-Buckner

    Joined:
    Jun 27, 2007
    Posts:
    5,664
    Litobyte Softworks:

    What ("versions" is an ambiguous word)... level? ... of Unity are you using?

    Do you have Unity Basic or Pro? Do you have the iPhone Addon/Plugin? And if so Basic or Pro?
     
  27. FiveFingers

    FiveFingers

    Joined:
    Oct 15, 2009
    Posts:
    541
    In my signature there is this information :)

    Unity 3.4.1f5 with iPhone Basic and Android Basic
     
  28. Adam-Buckner

    Adam-Buckner

    Joined:
    Jun 27, 2007
    Posts:
    5,664
    That's a good point, Litobye. Sorry I missed your .sig. I scanned it, but didn't pick up that line. Most of the 3rd party vendors state the usability on the destination platform, but not what level of the editor you need. All of my notes reflect this information, so I don't know off hand. My gut feeling is that you may need pro, as the error is about the need for sockets.

    http://unity3d.com/unity/licenses

     
  29. FiveFingers

    FiveFingers

    Joined:
    Oct 15, 2009
    Posts:
    541
    This is too bad!
    But I also read in the license comparison table:

    Unity iPhone Basic - multiplayer : through RakNet

    What's that ?
     
  30. tobiass

    tobiass

    Joined:
    Apr 7, 2009
    Posts:
    3,062
    "Unity iPhone Basic - multiplayer : through RakNet" is Unity's built in networking.
    It works on mobiles in general but requires either player to host the game. Be aware that you can't host games like that on all carriers.
     
  31. Adam-Buckner

    Adam-Buckner

    Joined:
    Jun 27, 2007
    Posts:
    5,664
    Litobyte: You mean this...



    This is related to Unity's built in networking.

    From what research I've done in the last few, the 3rd party vendor solutions all seem to be built up from the .net socket api - which means on mobiles, pro would be required.

    Normal Unity built-in networking, in the master server host/client model should work fine.
     
  32. FiveFingers

    FiveFingers

    Joined:
    Oct 15, 2009
    Posts:
    541
    Ok, now is more clear.
    Are there examples for regular unity networking ?

    I tried the multiplayer official example, and didn't compile on Unity Basic for the usual socket problem.

    1. Is there at least a simple basic example where to start off ?
    2. Does exist an extensive multiplayer system that plays well with this ? (like Photon or such ?)
    3. Another question: Is RakNet just over TCP sockets or supports also connection less UDP protocol ?

    Thank you.
     
  33. PrimeDerektive

    PrimeDerektive

    Joined:
    Dec 13, 2009
    Posts:
    3,090
    Did you check out the iphone multiplayer tutorial?
     
  34. FiveFingers

    FiveFingers

    Joined:
    Oct 15, 2009
    Posts:
    541
    Yes is this that I tried.

    I tried again and when I build the xcode project I get:

    Error building Player: SystemException: System.Net.Sockets are supported only on Unity iPhone Advanced. Referenced from assembly 'Assembly-CSharp-firstpass'.
    UnityEditor.HostView:OnGUI()


    This example still uses UDPconnectionGUI file which imports .net sockets


    Ok, I finally could compile by removing the UDP example from the project and its plugin script.

    The weirdo, is that, Android Basic was compiling gracefully this example, with the same source, no rip made.

    Does .net sockets come with Unity Android Basic ? In the table is a no-no, just like for iOS basic.
     
    Last edited: Nov 4, 2011
  35. Adam-Buckner

    Adam-Buckner

    Joined:
    Jun 27, 2007
    Posts:
    5,664
    Odd. You are correct that sockets should not work in Android basic. I did find a thread re: that tutorial (see my .sig for a custom search engine) that indicated the need to remove the UDP example. Still odd that it compiles on Android.
     
  36. jobemakar

    jobemakar

    Joined:
    Jun 13, 2009
    Posts:
    74
  37. FiveFingers

    FiveFingers

    Joined:
    Oct 15, 2009
    Posts:
    541
    Nice stuff
     
  38. jehos

    jehos

    Joined:
    Aug 11, 2011
    Posts:
    27
    This post and the document are an excellent idea. I myself looked through it to make decisions.

    One thing I would add is a score gauge for predetermined categories (people could vote). So, you would have a score based on:
    - scalability
    - platforms availability
    - price
    - support
    etc.

    So, one can look at the comparison chart and get a quick idea of how each other is standing based on the others. Or, the strength and weakness of each.

    Just a thought.

    Great work!
     
  39. FiveFingers

    FiveFingers

    Joined:
    Oct 15, 2009
    Posts:
    541
    @Little Angel: nice work on tinyurl custom search engine! ->in my favorites

    Yes, very weird indeed, it seems is how the scripts are compiled, because if you include only the starTrooper scene in your build, the reference to UDP is just a small check at the start function, perhaps this check doesn't really go to call the system.net.sockets in that UDP class for some reason.

    I tried also master server, and it worked beautifully without .net sockets.

    I imagine that a nice master server, and some dedicated game servers would make the need of .net sockets not so needed :p
    But that also would mean: less money for Unity Pro licenses but much more money into time into development of the linux dedicated server and more head scratches
     
  40. fholm

    fholm

    Joined:
    Aug 20, 2011
    Posts:
    2,052
    Updated the comparison chart with my SlimNet server offer, which is currently in a free public alpha. Hope I filled everything in correctly.
     
  41. Adam-Buckner

    Adam-Buckner

    Joined:
    Jun 27, 2007
    Posts:
    5,664
    Yeah!

    fholm: I've been looking forward to SlimNet. I'll try to get a peek soon.
     
  42. Adam-Buckner

    Adam-Buckner

    Joined:
    Jun 27, 2007
    Posts:
    5,664
  43. MikeHergaarden

    MikeHergaarden

    Joined:
    Mar 9, 2008
    Posts:
    1,027
    Oops, someone stated that Photon Cloud uses Unity networking which is not true. The Photon Unity Networking(PUN) package is similar to Unity Networking but not the same. Photon Cloud can be used with PUN. Corrected this.
     
  44. Adam-Buckner

    Adam-Buckner

    Joined:
    Jun 27, 2007
    Posts:
    5,664
    Thanks Leepo.
     
  45. jake-gr

    jake-gr

    Joined:
    Oct 27, 2011
    Posts:
    93
    + Changed row header to "Server Language(s)" as it was incorrectly labeled as Client
    + Added "Java, JavaScript, ActionScript" to ElectroServer's Server Language
    + Modified ElectorServer's Cost and Limits to reflect current sales options on their site
    + Added "Linux*" (with asterisk) to Photon to reflect the note section (far right)
     
    Last edited: Nov 14, 2011
  46. Adam-Buckner

    Adam-Buckner

    Joined:
    Jun 27, 2007
    Posts:
    5,664
    Jake-GR: Thanks for the update. Not sure how the row head changed, but 'tiz open editing. And thanks for the other general updates!
     
  47. jake-gr

    jake-gr

    Joined:
    Oct 27, 2011
    Posts:
    93
    The row headers were "Client Language(s)" and "Client Language(s)". The first was correct, the second was the one I changed.
     
  48. EricJ13

    EricJ13

    Joined:
    Feb 28, 2009
    Posts:
    355
    Thanks to all for the info, much appreciated.
     
  49. Intrawebs

    Intrawebs

    Joined:
    Mar 24, 2011
    Posts:
    45
    I'm overwhelmed with the choices. It seems Player.IO might be best but....

    What do you think is best for a game that is more of a board game if you will. The game will be built in Unity for Android and iPhone and I want cross platform multiplayer. Also, all of my future games will/can leverage the 3rd party I choose and build to. The games will need to have some sort of ping every 2 seconds to get the state of a clients opponent during game play as well as some pass and play game state storage. I also want to enable GameCenter and OpenFeient for leaderboards and achievements and would rather store that kind of data there vs. my chosen multiplayer 3rd party..

    I really would love to use the new features in GameCenter for this kind of game and get more visibility in iTunes, but, that wont be a cross platform solution. I also like player.IO for the capability to use their BigDB to store a players rank if you will so I can do better matching with players of similar rank.

    So, what do you suggest? I would prefer to offload as much as possible to a 3rd party, the ROI is more than worth it these days. Is there a better option than Player.IO?
     
  50. Adam-Buckner

    Adam-Buckner

    Joined:
    Jun 27, 2007
    Posts:
    5,664
    Intrawebs:

    It's hard to know what to recommend until you tell us what features you find attractive with Player.IO and why. All of these options deliver similar functionality, but have widely differing feature sets and pricing structures. I am guessing, but is it the hosting options? If so then you should be looking at Player.IO and Photon Cloud. Be aware that I am unclear what the pricing structure for Photon Cloud will be and ExitGames has yet to post this information here, and I've not found it yet. That being said, I expect them to be competitive and community aware, as they have shown that so far.

    I am unclear about Player.IO specifically, but many of these solutions provide easy or even "one-click" conversion from Unity (built-in)Networking (tho' this often requires hand tweaking of custom methods), so if you are unsure about which option to take, you can get started with Unity Networking and then convert later.

    When it comes to "ping every 2 seconds", you may not need to worry about the details on that level with any of these solutions, including Unity Networking. So far from my experience, this is dealt with internally. I have a turn based game that uses Unity Networking and player turns are registered with an RPC call. Just out of curiosity, have you read this: High Level Networking Concepts? With the RPC, you can simply call a method that makes the "next turn" or "next move" on all players, and can pass the appropriate values or data.

    PS: It may be worth going to the next page as well, an reading Networking Elements in Unity as well. Even though this page is addressing Unity specific solutions, the concepts are very common to all of these networking solutions.
     
    Last edited: Nov 18, 2011