Internet Explorer

Internet Explorer is not supported. Please upgrade to a more modern browser.

Future Infrastructure Changes
Started by partykid4

Owner
Joined
31 Aug 2023
Last Seen
02 Sep 2024
Topics
15
Posts
15

 

Hello everyone! It's been a bit since we've last made an announcement here, so we wanted to give an update on what we've been working on the past few months.

 

In an effort to make the server more scalable, and allow us to host large tournaments in the future without issue, we have been reworking pretty much every backend system. This changes are going to role out slowly over time, and we still have a lot of work left before this begins, but we wanted to describe some of the big changes that are coming.

 

 

Game Servers and Lobby Servers


 

Currently, each minigame only uses a single server for both all the games and the lobby. This is great for when no one is playing, it helps conserve resources to allow us to have more minigames. The problem with this system is that it makes it impossible to scale up if we need more servers. Minecraft servers, especially modern Minecraft servers, can only hold so many people at a time. This means we have a limit on the number of people who can play at a time, and that limit is fairly small.

 

To solve this, we are splitting up minigames into game servers and lobby servers. This will not only allow us to better optimize each server, such as by disabling lobby features in game servers and vice versa, but it will also allow us to create infinite copies of each as needed. You will be able to see what server you are connected to on the scoreboard.

 

 

 

Map Storage


 

Splitting up games between multiple servers has a problem though. Every time we add or modify a map, we would have to go to each game server and update that one too. This might not be a big duel for modes such as Turf Wars or ElytraPvP, where there are few maps. However, Duels has upwards of 30 maps, and many more are on the way. We need a way to share maps between multiple servers.

 

Fortunately we have found a solution. We can store each map in a MongoDB server using GridFS. This not only lets us share each map between multiple servers, but GridFS also stores changes made to the files, so if something went wrong while editing a map we can undo it with ease. Minecraft worlds are stored as many files though, so we have to compress them into a zip file before storing.

 

Using this system, we can also store lobby worlds. Every time a lobby server starts up, it download's a fresh copy of the lobby it's using. This makes it easy to update the lobby if needed, and also makes our lobbies grief-proof!

 

 

Private Games


 

The combination of these systems will allow us to do some pretty cool things. One of these are private games. You will soon be able to party up with your friends and play private and highly customizable versions of each minigame. Basically /duel on steroids! You will be able to customize everything to team size and map selection, to required points and togglable status effects! This will first be released for duels, with the introduction to "FFA" games and many other customization options. It will then later be rolled out to other games.

 

 

Future Ideas With This System


 

These changes will open up a large door for us to add many new features!  Many of these are in their early planning stages, and we can't promise they will ever be released, but here are some of our ideas of what we can do with this system:

 

  • Friend System
  • Guild System
  • Lobby Cosmetics
  • Lobby status effects

 

If you have something you want to see on the server, join our discord server and come chat with us about it! Now is probably the best time to make your ideas known.

x1
partykid4 · 6 months ago · Last edited: 6 months ago