Search Unity

Limits of Unity Network for MMO

Discussion in 'Multiplayer' started by mnrabaglia1234, Sep 18, 2009.

  1. mnrabaglia1234

    mnrabaglia1234

    Joined:
    Jul 27, 2009
    Posts:
    15
    Hi all,
    i have a few questions about limits of Unity Network functionalty:
    - Does RPC Buffer has a Limit?
    - Does RPC message has a limit of the information volume?
    - What is the biggest MMO developed with Unity? How many users could have online concurrently ?
    - In Unity Games, What is the limit concurrently for players using a MMO? Why this limit? Is a Unity Network implementation limit ?
    - Networks views has a Group Id. What happens if i change it? Does the server notifies the other clients of this change?
     
  2. Timmer

    Timmer

    Joined:
    Jul 28, 2008
    Posts:
    330
    I think the only MMO that's out is FusionFall (Cartoon Network's MMO).

    And I don't believe they use any of Unity's built-in networking. Unity's networking is fine for many multiplayer purposes but it is not optimized for MMO scale. Take a look at RakNet (which is what Unity's networking uses underneath) and ExitGames' photon for possible replacements.
     
  3. absolutebreeze

    absolutebreeze

    Joined:
    Feb 7, 2009
    Posts:
    490
    jumpstart.com is MMO and thats pretty big too.
     
  4. HiggyB

    HiggyB

    Unity Product Evangelist

    Joined:
    Dec 8, 2006
    Posts:
    6,183
    The multi-player features found in Unity are not meant for MMO-scale projects, rather they're meant for smaller scale multi-player content only (they just don't scale to anything MMO/virtual world in scope). You can still use a Unity front-end though as the Unity player supports HTTP and socket connections thus allowing you to tie into virtually any back-end technology you'd like, including a proper MMO back-end.
     
  5. mnrabaglia1234

    mnrabaglia1234

    Joined:
    Jul 27, 2009
    Posts:
    15
    Thanks for all the answers.
    I was wondering, what are the networking alternatives for MMO games in unity?.
     
  6. mnrabaglia1234

    mnrabaglia1234

    Joined:
    Jul 27, 2009
    Posts:
    15
    By the way, is there any benchmark about Unity Networking?
     
  7. HiggyB

    HiggyB

    Unity Product Evangelist

    Joined:
    Dec 8, 2006
    Posts:
    6,183
    You can tie into any back-end you want, start by looking at some of these as Indie- or Small-scale friendly options:

    Neutron/Photon from Exit Games
    SmartFoxServer
    NetDog from PX Interactive


    None that I know of but I'm also not really sure of what sort of "benchmark" you're after here.
     
  8. jole

    jole

    Joined:
    Sep 23, 2009
    Posts:
    1
    This is false. Raknet is surely capable of running an MMO.

    http://www.jenkinssoftware.com/raknet/forum/index.php?topic=1959.msg10141#msg10141

    here's another engine that uses raknet for mmo's.
    www.abyssalengine.com

    If Unity networking can't handle mmo's then they didn't properly integrate Raknet... and there's absolutely no reason to directly integrate something like raknet into an engine to begin with since it's just a wrap around networking library.
     
  9. Tempest

    Tempest

    Joined:
    Dec 10, 2008
    Posts:
    1,286
    HiggyB isn't saying Raknet is incapable of MMO-level networking. He's saying, to quote, "The multi-player features found in Unity are not meant for MMO-scale project".

    Raknet has been implemented enough to accomplish the goal set by Unity Technologies, which by and far is smaller-scale multiplayer, not MMO. I'm sure there is quite a bit of Raknet potential which did not get integrated.
     
  10. HiggyB

    HiggyB

    Unity Product Evangelist

    Joined:
    Dec 8, 2006
    Posts:
    6,183
    Welcome to the forums, but you're wrong, it's not false. :)


    +1

    I wasn't discussing RakNet as a whole so much as our current implementation of their libraries inside of Unity.
     
  11. hogus

    hogus

    Joined:
    Jul 9, 2009
    Posts:
    145
    With everyone and their mom wanting to make MMOs shouldn't more advanced networking be at the top of the Unity roadmap?

    The master server thread for instance seems to have stalled, it seems silly to me that the one connecting point that makes all network play across the internet possible should still be in Beta. And we're not even talking MMO here, we need a solid solution there even if its just for casual multiplayer.
     
  12. Tempest

    Tempest

    Joined:
    Dec 10, 2008
    Posts:
    1,286
    The trend of everyone wanting their own personal MMO is a case of misunderstanding of what it takes to develop and host an MMO. Just because everyone WANTS it, doesn't mean they understand the time and resources which are required.

    For small developers, multiplayer capabilities are much more practical than MMO-level networking. Improving the practical, more useful level, is, and should remain UT's focus.
     
  13. hogus

    hogus

    Joined:
    Jul 9, 2009
    Posts:
    145
    I agree fully with you...

    Way to many people want to get cracking on MMO projects before they have mastered normal multiplayer.

    But these basic technologies don't exist out-of-the-box with Unity yet. When I first tried to get going with multiplayer, there was lots of talk in the documentation about a master server and when I emailed support about it they were very confused as to what I was talking about, which implies that it is not a mature project yet.

    My hope is that this will be resolved in the future.

    P.S I'm going through my "been using the tool for 3 months and disgruntled phase", hopefully it will soon be replaced by the "I've now figured out how to hack it into submission which makes me a useful resource phase".
     
  14. Thomas-Lund

    Thomas-Lund

    Joined:
    Jan 18, 2008
    Posts:
    465
    I also have a really hard time seeing why Unity Tech should spend time and ressources on making yet another MMO capable backend - rather than spend time making the best possible client engine.

    If you truly have the skills to make a MMO, then you also have the skills to integrate one of the existing MMO backends - or even write your own.

    Unity as it today is perfectly capable of being a great client for such an adventure. But making a MMO as a small indie team? Good luck.

    /Thomas
     
  15. duke

    duke

    Joined:
    Jan 10, 2007
    Posts:
    763
    There's a good Goethe quote about the importance of having an unattainable goal in life. This is probably one of them.
     
  16. HiggyB

    HiggyB

    Unity Product Evangelist

    Joined:
    Dec 8, 2006
    Posts:
    6,183
    We have plans for enhanced networking features on our road map already, the longer term goal being to make multiplayer as easy as possible. But so far that hasn't been the most important thing as there are in fact entirely viable solutions available today. So we plan on improving in this area, but please recognize that we have to make our choices based on what gives us the most bang for the buck (what features will impact and benefit the most people in the greatest ways) and frankly I think we've done a pretty good job at that, without forcing this topic to the top of our list.
     
  17. hogus

    hogus

    Joined:
    Jul 9, 2009
    Posts:
    145
    I'm happy with that, and with the Roadmap for 2.6. It all makes perfect commercial sense.
     
  18. chaos1986

    chaos1986

    Joined:
    Mar 29, 2009
    Posts:
    230
    HiggyB when can we expect 2.6?
     
  19. HiggyB

    HiggyB

    Unity Product Evangelist

    Joined:
    Dec 8, 2006
    Posts:
    6,183
    When it's ready. :) Soon-ish is the plan, but to be safe assume "this fall" as a nice wide shipping window for us.
     
  20. Sammual

    Sammual

    Joined:
    Oct 28, 2008
    Posts:
    176
    Good answer.
    I am very happy with the two way flow of information here. We get to vote on what is important to us, we get a roadmap of future development, and more complete ETAs then "When it's ready" (Soonish and 'This Fall').

    Sammual
     
  21. Ethan

    Ethan

    Joined:
    Jan 2, 2008
    Posts:
    501
    to get back to topic:

    what is the biggest number of players someone can imagine on a unity backend?
    lets say for some kind multiplayer rpg with max. a few updates per second / player.

    i saw smaller mmos with servers which have a capacity of about 300-500 players.
    if there are more players than that, they had more servers which were just a copy of the whole gameworld.

    do you think unity could handle that?
     
  22. Dreamora

    Dreamora

    Joined:
    Apr 5, 2008
    Posts:
    26,601
    if you deactivate anything from physics to collision and don't use the syncronization but an RPC based approach and server side "who needs to know that" for rescheduling RPCs correspondingly: potentially

    But otherwise no.


    Performance wise you likely would want to avoid it for this purpose as it eats a significantly larger amount of cpu time etc than a backend you developed for exactly this purpose.
    For RPGs, actually SFS or Photon would serve as a base technology to build upon.
     
  23. bloodtiger10

    bloodtiger10

    Joined:
    Nov 9, 2008
    Posts:
    619
    lets just say in my game I want to be able to support eve online + every halo 1, 2, 3, 3: odst player online at once + eerys single cod5 player online at once all in one universe! :D
     
  24. Ethan

    Ethan

    Joined:
    Jan 2, 2008
    Posts:
    501
    optimisic imagination 8)

    whats your realistic one?
    in numbers? ;)
     
  25. HiggyB

    HiggyB

    Unity Product Evangelist

    Joined:
    Dec 8, 2006
    Posts:
    6,183
    This is a bit silly of a question as it's entirely dependent on how you craft your server side components, what hardware you have, etc. So putting a number out there isn't necessarily going to be correct in all cases, let alone be correct in any specific case. The truth is that we don't have any hard limits so you can have as many connected users as the server's bandwidth and processor can handle. What bandwidth will you pay for? What class of server machine will you get? Without that information, and intimate knowledge of how much load you'll use per user on the server (do you server side calculate? do you let client-side calculations occur?) a realistic answer is impossible to provide.


    Our multiplayer features are simply not meant for MMO or virtual world usage, mostly due to the lack of higher-end back-end features like automatic load balancing, moving users between servers, etc. So when considering our features for multiplayer games think on the smaller side, likely limiting yourself to dozens of users or so. But again, that number can vary wildly...


    This is like asking "how many polygons can I have in my game?". The answer is "it depends on way too many variables on your end that none of us know". :p
     
  26. SixTimesNothing

    SixTimesNothing

    Joined:
    Dec 26, 2007
    Posts:
    167
    I think the one of the most needed features for more advanced networking systems would be for Unity server instances to allow multiple connections. i.e. Both server-to-server and server-to-client. Any chance of that being on the roadmap? :)
     
  27. Ethan

    Ethan

    Joined:
    Jan 2, 2008
    Posts:
    501
    @Higgy
    i wanted to know what he is aiming for!
    of course you can have 1000 connections if you make a nice unity chatroom. ;)

    what i wanted to hear is sth like
    "i aim for 100 connections, because my game doesnt need lots of position-updates (not action orientated), and players wont see every other players to the same time and i dont have server controlled mobs etc bla bla"

    i want to collect impressions and experiences about unity's abilites in that case. (which are very rare though)

    perhaps i should have asked that way ;)
     
  28. zumwalt

    zumwalt

    Joined:
    Apr 18, 2007
    Posts:
    2,287
    Tested:
    Hosted server running lerp test scenes
    http://unity3d.com/support/resources/example-projects/networking-example

    Max players with prediction set to 0.4: 16 players
    After that it just got silly.

    1and1 Internet Host used for test
    http://www.1and1.com/?k_id=21336950

    Server Stats:
    11 Windows VPS II, Virtual server
    (dual quad core processing machine)

    So one way to scale and test, is to take the lowest common denominator for your server, find its max users, then scale from there. That server has a terabyte traffic per month allowed, and of which, leaving 16 players going for a week straight chewed up 1 gig of bandwidth in that week. So 16 players, at 1 month of continuous movement for Lerp would be around 4 gig of the terabyte. That is just the bandwidth, the CPU was consumed at a constant 28% with 16 players connected across the 8 cores.

    As you can see, the price is set at a new server fee of $19 a month for the first 6 months then it goes back to normal price after that. All of the dedicated servers are sold at the moment until they expand and get more do to these insane specials.

    As Higgy pointed out, until you test for yourself, you won't know what you are getting into. Unity can scale "if" you know how to make Unity scale. Just because you can tell Unity to support 10,000 players on network start, doesn't mean your hardware can handle it. You do realize that games like Eve use server farms, so they show a count of all players across the farm, not how many players on a single farm node.

    This topic comes up so many times and the answer is always the same, it depends on the developer, the hardware, the ISP, the list goes on. As Dreamora has put it on so many occasions, Unity build for the network is made for small games, not for large games. So finally the answer, got something small for player base, you are fine with what Unity offers, got something large in mind, bulid the backbone yourself so you have full control over the packets and connection state.
     
  29. Ethan

    Ethan

    Joined:
    Jan 2, 2008
    Posts:
    501
    Thx for the example.

    The multiplayer game i made (see signature) runs on a p4 3 ghz with 1gb of ram and needs about 20% cpu with a handfull players on it. traffic isnt worth to mention.
    it runs with 33 updates per second (position, rotation, animation).

    games with up to 10 players were no problem. more players wont really fit on the soccerfield ;)


    well i repeat: i want examples and experiences just like yours at the beginning of your post or mine i just gave you.

    i will test myself soon and i will report my results here ;)
     
  30. HiggyB

    HiggyB

    Unity Product Evangelist

    Joined:
    Dec 8, 2006
    Posts:
    6,183
    If you want to hear from very specific people then ask them directly (so yes, you should have worded it differently). ;) As it is you put out a general question that I answered from the tech provider's perspective. Either way, carry on and let's see if you get information from others!