Best networking frameworks for an MMO in Unity

Hi everyone,

My team is curious if there's anyone who has experience/knowledge about making a networked game in Unity. We'd really appreciate talking to you if you do. What we're concerned about is which networking framework is the most scalable and will work the best with many simultaneous players.

Thanks for taking the time to read this. We hope you can help.

Comments

  • Thanks Squigy,

    The links you sent are helpful, but unfortunately out of date. Also it seems that unity networking isn't scalable, so with many many players it won't provide the best performance, and that MMO package seems to use unity networking...

    I realized that what we really need is someone to give us an overview of how things work in an MMO, in quite a lot of detail, like how to reshape your code.

    Joel
  • Also it seems that unity networking isn't scalable, so with many many players it won't provide the best performance, and that MMO package seems to use unity networking...
    I'm not sure what "not scalable" means in this context. Pretty-much everything in a game is not scalable... We have to use tricks to display large amounts of graphics, handle lots of input devices or process large numbers of players. Everything in game development is some kind of tradeoff between efficiency and your design goals, so networking not being scalable is a given, I'm not sure that's a good criteria to be evaluating solutions against.
    I realized that what we really need is someone to give us an overview of how things work in an MMO, in quite a lot of detail, like how to reshape your code.
    What is it you're trying to achieve with your game? Networking is complex and there's a bunch of problems inherent in networked gameplay that take a while to solve for whatever your game is before you even start getting to the problems added by communicating over the general internet (NAT punchthrough, server locations, latency increases, etc). Generally, an MMO is going to be connecting to a single server that every other client connects to, so your server has to manage the game state and handle all those connections, that server would usually be written in something other than Unity, because it doesn't need graphics or input - it's got to process networked messages as fast as possible and simulate the game state. That server would typically only send specific data to individual clients (which could be Unity clients or not) depending on what that client can see, the client would probably have to consider lag-correction... blah blah, this is too much detail.

    Networking is difficult. If someone asked me to produce an MMO, I'd check their budget to make sure it was suitably huge, then I'd start looking for MMO networking frameworks to take apart. If the goal was to write everything from scratch, I'd start with a completely unrelated game with "simple" networking between two machines on the same network, then move on to a client-server setup on the same network, then I'd start working on lag tolerance and punchthrough and that's probably about where I'd give up again ;)

    Have you taken a look at the various white-label MMOs out there that you might be able to tweak and edit to serve your needs rather?
    Thanked by 1NickCuthbert
  • Have you looked at Photon?
  • So by scalability I meant that we want the game to run with minimal latency if it begins to reach thousands of players or more. Thanks for the replies and suggetions. I realize that networking is a broad topic and hard to apply in general, so we're going to keep trying, maybe look at Photon, and ask again with more specific questions in the future.
  • We used Photon for a mobile game we worked on that is not yet released, so I can't say yet how well it handles the load, but I do remember when we started it was quite a bit of work getting our heads around the challenges of writing a networked game. As far as I remember Photon has a MMO framework (we didn't use it) that splits the load based on location within the world, so depending on what type of game you are making that might work well. Their documentation is decent to get you started, but we did find it lacking when later we needed to understand more intricate details of the system. Unfortunately we didn't try other solutions so I'm not sure how it compares, but I think you'd definitely be better off starting with that than with the basic built-in Unity networking framework.

    If you haven't done a networking game before though, just be prepared that it is going to take much longer than doing a single player game. Good luck!
    Thanked by 1mikethetike
Sign In or Register to comment.