Server List Matchmaking/Queue system

After a discussion about redirecting players to servers on the discord we came to the conclusion that using dedicated “hubs” where players connect to just to join other servers from isnt that great of an idea since you would have to connect for ages to that hub server and not that much faster to the actual server which just makes connection way longer and harder then it needs to be so the idea is this:

Or in text:

  • Allow server networks with a bunch of servers with one gamemode where you have to use a matchmaker to get into to group them together so you dont try to join a server only to find out that you would need to queue from a seperate “lobby” server
  • Maybe group them together using some sort of secret key you can generate/request to avoid people putting their servers into other server networks groups by matching whatever the system groups by

Im not exactly sure how the matchmaking would exactly be implemented but i would either:

  • have server networks create a dedicated matchmaking server for that group and link it to the group using the same secret key or
  • have the servers in the group tell the server list that they can accept players and handle the queue on the game side

I like this idea since it unclutters things but I’d still want to be able to connect to individual servers as well.

I see a lot of communities have multi-numbered servers, but usually there are at least slight yet meaningful variations to them. They would benefit from this clustering, but of course I may only want a specific server and not the 24/7 minecraft one.

You could make it optional for the server to prevent direct joining, but for most cases it should be enabled by default. Disabling ad-hoc connections makes sense only for matchmaking-friendly games like CS:GO and TF2. If the servers are in different locations(ping) or have a different ruleset then that would cause frustration and maybe a lot of retries.

Being further able to organize those Groups into a Network would useful so that you can see all of your options too. For example:

Big Baps Gaming (bigbaps.moe)
  US East Casual Not-CS
     Casual #3 - cs_bigbaps_final_r14 - 69ms
  US West Casual Not-CS
  US East Ranked Not-CS
     Ranked #3 - de_dust_baps - 58ms
  US East TTT
     TTT #1 - ttt_bigbaps_a3 - 48ms
     TTT #2 - ttt_bigbaps_b1 - 42ms

Imagine those Groups just being out there randomly. Not pretty if a Network has multiple of them.

Of course, it would be good to have networks listed to the side, and to be able to go to that network’s groups from any individual listing that’s mixed in with the crowd. Favorite that Network to always keep track of it, or filter it out if it’s got too many of those features.

Furthermore, if a server goes down it would be great to be able to join another on the network from within the connection lost dialogue.

1 Like

I’m not sure server grouping/networking is in the scope of sandbox as a game, perhaps a 3rd party might be necessary, however it’s difficulty in developing a solution does very much require certain functions being exposed/documented.

1 Like

However, I personally like the idea of being able to have connected servers;
Let’s say Placeholder Networks #1 and Placeholder Networks #2 are 2 roleplay servers, running on the same database. Both servers have identical files to download, and this is given to the user, so the client knows. When they move between servers, they won’t have to load up all these addons again, but only create a connection between the host and player.

You could get some really cool situations this way I think, like having 2 roleplay servers running different maps and having a harbor or airport “connect them” in some way. You would, of course, have to run a command or interact with the harbor or airport, or boat or whatever to move servers. Kind of like GTA:V with the default map and North Yankton or the new Pacific Island DLC you may have heard of.

Another thing to take into consideration is that certain gamemodes like Deathrun, Surf, as well as bigger ones like StarwarsRP often change maps. Especially with these gamemodes that have a lot of addons like StarwarsRP, loading times when changing maps takes ages for me.
Is there a possibility to load different maps when joining a server, and when the server decides to change map, it’s already loaded and it only takes a very short time to change to this map?

To my mind, the root issue trying to be addressed is not exacly of needing a matchmaking system, but of improving discoverability of content.

So with that in mind, while grouping servers does help make a possible server list less cluttered, and creates the possibility of actual matchmaking inside networks that want it, there is more that can be done to improve discoverability as a whole.

Having something akin to the workshop “featured” page on the main menu, where gamemodes and other addons would be shown and would link to the “server list” menu with filters to show every server/network running that addon would go a long way. However, doing that would alienate servers running bespoke content that is not on the workshop and one would argue that is the kind of content that needs featuring the most.

Another option is to “feature” interesting servers directly on the main page, but that, being a very direct “1st party” promotion of a server, would definitely be construed as a endorsement by some, people never featured would rightly be mad and question why, and I can’t begin to imagine what algorithm would be used to populate such a list.

A third way to do it would be to “give up” and just put a big green “play” button on the main menu that lets you mark which gamemode/addons you want to play and it just picks a server for you. It would filter out all servers not running the things you marked, and would pick the best from the remaining by latency and population. This way, if you want people to go back to YOUR server, you have to make sure there is some sense of progression and remind the player to favorite it so he can keep playing again later. This would definitely give servers running a lot of off-the-shelf content a big advantage, but would not completely cripple bespoke stuff if it’s running at least a base gamemode available on the workshop, and there is an argument to be made about more unique servers retaining more players after the first join, so this would “balance out” their lack of discoverability through this hypothetical play button.

The issue with discoverabillity on s&box is that you have to varying categories. You have different gamemodes, and you have different servers inside those gamemodes. Having two layers that can completely change how you play the game causes a ton of issues in discoverabillity. If you had a ton of different gamemodes, and gamemode was a unique collection of addons, you don’t really care what servers you join since the experience of that gamemode is the same. (This would be matchmaking)

Gmod on the other hand is a collection of different servers under (basically) one gamemode. The gamemode doesn’t dictate much, and the differences between each server is large.

Server browsers are mainly best for the 2nd stage, while s&box will have a large mix between the two. A server browser won’t be near enough to find servers and gamemodes no matter what you tack onto it.

You can add grouping, but will you allow grouping of different server types? What if I’m a network and want to group all my servers together, and they are different gamemodes? What If i just have a separate group for every server just to fill up the list and get more advertising space?

I’m in the camp that a server is just something hosting a gamemode, and we should be viewing this from a more community approach, since that’s what action they perform in gmod.

1 Like

That is an interesting take. If having categories (gamemodes) that don’t do a really good job of categorizing servers hurts discoverability, then what happens if we do away with categories (gamemodes) and just treat them as any other tag you can filter by?

If the matchmaking system embraces the heterogeneity of gameplay and conveys that to the player clearly (maybe by naming it “Random” or “I’m feeling lucky” instead of “Play”), by giving the same amount of importance to gamemode as it does to other arbitrary tags/addons a player can filter by, I bet the matches it makes would better represent the community, while also serving as a way for the player to “peruse” communities with the right mindset to take note and remember them later if he likes what he sees.

This is all done in addition to a normal server list incorporating the concepts discussed above, including another “matchmaking” local to a server network, if so they desire, of course.

1 Like

Interesting point in making gamemodes more like tags. However, s&box is more than first-person fps experiences, which is what gmod was entirely limited to. I think that a main issue at this point is the conceptualisation of what a gamemode is. In gmod it is basically a set of restrictions / menus to make the game different. For example; TTT is just sandbox with game rounds, and darkrp is sandbox with roles.

On the other hand, gamemodes in s&box are closer to entirely separate games. Each with different mechanics and interactions. These games have more of a scope than they did in gmod, you can categorise gamemodes into different ‘types’ like FPS / racing / RTS,.

Gamemodes in s&box are entirely separate games, unlike gamemodes in gmod being mods.

I think this would be an excellent situation for the more drop-in/drop-out games like sandbox, darkrp, TTT, etc. Since servers are basically communities. It will start to break down once people start stiching different servers together and do stuff like sharding to support large interconnected maps, but perhaps that’s where groups could come into play?

Some gamemodes (and servers) would want a lobby-based matchmaking / single-server scenario. If I’m making a CS:GO clone, I would hate people individually joining servers, and want them to use my party system so I can match them based on rank and other user info. A server browser would be very bad for this type of gamemode.

Another example would be MMO games, where they use a collection of instances as one ‘server’ rather than the gmod sense. In these you would join one server, and then be bounced around a bunch of smaller servers as you play the game. You wouldn’t want a bunch of player’s private instances cluttering up the server browser.

This is the thing that is hard to get across when you’re in the gmod mindset. You see a solution (the server browser) and try to find a way to improve it. When often the solution is to use a completely different method.

From the looks of it, garry has at least noticed that hiding your discoverabillity behind a list of servers is a poor method of finding communities to interact with, and is not flexible for completely different games.


Some other topics that have discussed discoverabillity and the server browser (a very popular topic):

4 Likes

Those can still effectively be categorized with tags. Just look at Steam itself! This would require server hosts to be able to use any text as tag since FP will probably not be in a position to create a list that properly caters to everyone’s need.

There is nothing stopping an implementation where this matchmaking system points not to every public server, but to wherever the “gateway” to the experience happens to be set to, with the rest of the eventual connections being handled by that server’s logic. It can be either a separate, local skill based matchmaking with party options, or the server that checks your SteamID and automatically connects you to the shard where your last location was on a MMO, or just stay right there and work like a vanilla server.

So you would search and mark the tags you like in the “I’m feeling lucky” button and be conveyed clearly that you never know what you’re gonna find. If you like it, you favorite it and the gateway would be saved in a “favorites” menu that is not part of the server browser.

These same gateways would be the only ones visible in the actual server browser, which would be relegated to a small, sad button just like it is in modern Valve games.

Integrations with steam like “Joining a friend” could be routed to point to de gateway server if so the host desires, or be allowed to connect to individual servers as spectator until the match ends (the server’s logic would know this player connected by joining a friend, and to not let it into the match), or just connect normally because that is a simple server

Since the game is using Steam Networking, I see all of this as completely doable

Damn, this topic has more discussions than I though!

2 Likes

lmao didn’t read

2 Likes

The biggest issue I had with Garry’s Mod servers was discoverability. The only gamemodes people would try were the ones listed at the top - things like DarkRP and TTT. When I released The Hidden on the workshop, people tried to make servers of it, but it was listed so far down as to be almost pointless.

The second largest issue I faced is server content packs. Players really should be able to download all the content in-game ideally, and have it all load in while they’re still on the server. That’d be the optimal solution, if it’s even feasible. I’m hoping it’d be possible anyway. Asking players to restart their gmod feels pretty bad as a server owner when they just want to stop seeing errors everywhere.

2 Likes

Worst of all is the amount of incompetent server owners somehow messing the gamemode listing, so now you have 7 DarkRP listed as different ones completely filling up the search results.
Not to mention just not finding the server listed at all, sometimes I need to refresh 5 times for smaller gamemodes to pop up at the bottom.

4 Likes