5

Having played on a number of servers, there are often lingering references to multiple different "servers", or a "server" being down, so you can't play That Minigame You Like today.

Does this mean a large server actually runs on multiple different machines, or is this just some other effect at work?

As far as I can tell, the Minecraft protocol doesn't seem to support a federated or handoff system, but I could be wrong. There are servers with incredibly large population numbers, numbering in the thousands, and this could explain how it scales.

  • I am currently working on a research project trying to train classifiers based on packet traffic and game events to detect poor network conditions and outages, and if my multi-server hypothesis true, we would be able to offer a decently sized chunk of commercial cloud to one of these large server in exchange for some monitoring of network conditions. – coiax May 15 '14 at 14:24
  • Some of the larger servers could be running in a cloud environment, with the ability to scale up and down as demand spikes. But as far as Minecraft (and its JVM for that matter) is concerned is just one machine – Robotnik May 15 '14 at 15:23
  • @coiax Did you manage to get the deal with any of the large servers? – shadi Feb 8 at 1:07
4

To expand on previous answers, large Minecraft networks can run on multiple servers, however each specific world can only run on one machine. The most common platform to link worlds hosted from different machines is BungeeCord, which is developed by the Spigot team.

Essentially, BungeeCord seamlessly directs you to the next server when changing worlds (such as you would within minigame "hub" style servers) without the need to manually connect to a different IP address. Further information can be found here: http://www.spigotmc.org/wiki/about-bungeecord/

| improve this answer | |
  • 1
    I think this is really helpful, because all I need to know is whether such a proxy/middleware exists and is commonly deployed. Which is apparently does. :D – coiax May 19 '14 at 12:38
5

Large scale servers like that will more than likely run off of multiple machines as it is possible through plugins to send a player to a different server. Some servers might use a very powerful overclocked single machine to eliminate players having to connect from server to server, and then isolate players on player lists using various plugins. So to answer your question, yes, they can run on multiple machines, however some don't.

| improve this answer | |
  • How is it possible for plugins to send someone to a different server? I could imagine for you to talk to an entry point, and that serving as some sort of magical TCP stream router that changed who it was talking to depending on signals, but that seems hella complicated. Unless I've missed something? – coiax May 16 '14 at 12:51
  • They can send players to different servers by redirecting their connection to a different IP when they, for example, click a sign to join a minigame. – MechanicalBanana May 16 '14 at 13:50
0

As of how Minecraft is currently built, it is not natively possible to make it run on various servers (except maybe for making the Nether, the End and the Overland run on separate servers, a friend of mine did it quite cleverly and she is not that big fan of plugins or such).

But load-balancing would be hard to achieve in the current state of the art.

Moreover, given the fact that it is an interactive block based world it would be quite hard to determine when to balance a player from one server to another. What would be the boundaries ? How do you update a block to the next server when to areas overlap? What happens when you run from one server to the next in a minecart?

Many questions that seem quite easy to answer but are tricky, especially on a developers point of view.

| improve this answer | |
  • I believe coiax is asking about servers that have a hub type server, and various minigames that you can play from there, and if those minigames run on separate machines. – MechanicalBanana May 15 '14 at 22:22
  • Yeah, @MechanicalBanana is correct. If I were to eyeball a solution for partitioning a standard generated world into separate servers, I'd put the boundary along chunk lines, and then have you talking to two servers when you were within drawing range of the boundary. But of course, there's no support within the network protocol for that. – coiax May 16 '14 at 12:50
  • how about anarchy servers where you can see hundreds of people playing the same server? – Joe Cabezas Mar 26 at 9:42
  • @JoeCabezas Yeah they probably use a single server with i9-9900k processor overclocked. – David Callanan May 9 at 8:50
  • @David Callanan but acharchy servers exist from the beginning of multiplayer, and the i9 processor did not exist :/ – Joe Cabezas May 10 at 2:50

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.