scaling factions?

Discussion in 'Server & Community Management' started by whybie, Jun 30, 2018.

  1. So I'm going to make a factions type server. Question is how can I make it in a way thats scalable?

    Sure 500 people on one map is fine but what about 15,000 people. That obviously wont work. So what is the solution to owning a factions server that can handle thousands of players?
     
  2. From my understanding of your question, I would say just add more RAM when you need it and to reset the map every 100 players or so (to keep it fresh ya know?).
     
  3. gzx

    gzx

    Since Spigot is single-threaded, you won't be able to scale up to thousands of players on a single server. However, you can use BungeeCord to make multiple "realms," each with their own playerbase.
     
  4. 15,000 players shouldn't be a concern right now when you dont have a server.
     
    • Agree Agree x 2
  5. Sinclare

    Sinclare Previously xSinclare

    To piggyback off that, I would focus on getting 50 players first before 15,000. I see so many new Faction servers fail because they worry about growing too big too fast.
     
  6. FrostedSnowman

    Resource Staff

    > 200 players on a single server, wat
     
  7. gzx

    gzx

    I've seen certain servers handle 400 players without much lag. You just need to optimize well.
     
    • Agree Agree x 1
  8. But back to the actual question. If someone had a larger playerbase than could be supported on x CPU with y RAM etc., would it be possible to spread a Factions server across multiple servers using a database? Any examples of such setups? I haven't touched Factions since Minecraft 1.7, so I have no idea, but it certainly would be neat.
     
  9. FrostedSnowman

    Resource Staff

    could you clarify? do you mean multiple servers all synced with the same data?
     
  10. @FrostedSnowman
    I would imagine having separate maps for each server, and then sync stuff like inventories and all factions data except claimed chucks.
     
  11. FrostedSnowman

    Resource Staff

    yes, it's possible, as long as a user is never on different servers at the same time.

    you'll also need to make sure whatever it is you want synced, has support for this.
     
  12. i already have a server with thousands online every day
     
  13. gzx

    gzx

    How can you have "thousands online every day" if your server doesn't exist yet?
     
  14. no no i have a minigames server i want to make a factions server and i dont have one currently because i never saw factions scalable like minigames are.
     
  15. Because Factions simply isn't, at least not easily.

    Minigame servers are stateless, Factions is not. Every time you play a minigame, the world will be the same. No world modifications are persisted for the next minigame round, no entities are persisted, etc. In Factions, this is all the case however. You can't make Factions extremely scalable as good as minigames.

    I'm by far no expert on Factions, but I have played on a few larger ones, and one of these servers had a hub where you could choose between several different factions servers (red, blue and yellow) and all servers had like 150 - 200 slots. I'm sure they also indicated somewhere to see how many people have chosen for a specific color. All servers would reset every month or every two months and they'd all have the same initial map, but naturally, base building and such is not shared across the different colored servers. Just the initial world is the same, after that the servers are "detached" from each other and you have 3 factions servers running for an x period of time, all going slightly their own path.

    Realistically, this is probably the best you can do, because as I mentioned earlier: scalability has to do with state. If your applications are not stateless, you're gonna have a hard time scaling. This is why microservices are ideal in terms of scalabilty for example; they don't have a state. If you need 5 instances of a service, deploy 5 instances. If you need 20 (for more power), deploy 20. Simple.