This is obviously an MMO subject, but I thought I’d rather raise it sooner than later, even though it’s not an issue for me right now because right now I’m putting everything into a single server. But that is just the beginning ![]()
The way I understand the current networking API of Unity, it’s designed in a way that only supports a single server. That’s fine and simple for most cases. However, I’m wondering how one could do a server transfer in an MMO-style game (I believe that “with a few hundreds” of players playing the same game, you’ll already run into these kinds of things).
Obviously, when you want to support larger amounts of players, you’ll need to partition the game space so that different servers can handle different areas. I’m not even sure if that should be called “massive”, yet. There’s a couple of different approaches handling that, but my understanding is that in many of them, there’s the need to be connected to multiple servers during the transfer. At least, that’ll be needed if you try to achieve any kind of “smooth” transition.
Furthermore, there’s obviously things like “global chat” that would require being connected to a “chat server” as well as a game server. Finally, there’s setups where the servers also need to be connected with each other.
Would this be currently possible? Since most network related stuff having to do with connections is static, I would assume it’s not… That could possibly be a dead-end in the long run.
Maybe instead of using a lot of static stuff for networking, some factory pattern could be used? That’ll work smoothly for the approach that most people will use (single server, few clients), but it can scale when things become more involved.
As mentioned before: This is not something I need right now, but what I’m doing right now is aimed towards that, and I would like to not run into a dead end on the way… Doing such significant API-changes can become quite painful when there’s already a lot of games using those APIs, so the earlier it is changed (if a change is needed), the better ![]()
Any ideas / comments on this?
Jashan