So first - the problem. My game Project: Hood has just released recently and it’s doing pretty well - just that we have a big issue with people we dub “solo grinders” - people who purposefully get into their own one player server to grind money. We’re all about fairness on my team (I made it so that you can’t even gain money in VIP servers unless it’s from another person), but solo grinders abuse an internal feature by Roblox to make their own servers.
The feature is that where if you have someone blocked in a server, Roblox repulses you from it. And since the player count is still relatively low, people are able to abuse it simply by blocking people in every server (since there aren’t that many) to where it creates an entirely new one.
Now I’m planning to solve this by making a server hub (was planning to do this anyway for a while), and have people “queue” for servers (which would be completely created by server hub servers using ReserveServer). Obviously I would do some cool stuff to where you can see who’s playing on your friends list and cross-server party queueing (to where it teleports you all to the same server) even if you and your friends are in different server hub servers.
But for general public queueing, my goal is to make servers as full as possible while at the same time choosing the best picks possible for players and their friends, so I’m going to need to write a good algorithm for picking servers. The idea I have so far would be to have an algorithm which chooses servers based on what I would call “server points.” Server points would be added to a server for things like how many slots open are left in it, how many of a player’s friends are in it, its region matching with local player, etc.
I’m obviously going to flesh out this thought, but what are some of your ideas/ things I should add or account for with the algorithm?