Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Mixtape Menu Restoration and "Matchmaking" Logic #694

Draft
wants to merge 39 commits into
base: main
Choose a base branch
from

Conversation

Zanieon
Copy link
Contributor

@Zanieon Zanieon commented Aug 31, 2023

I am very biased if this should be a PR for Northstar itself due to how i implemented the stuff, but here's my attempt anyways.

Basically what i tried to do is to use the Server Browser Logic to have a chain of filters in order to create a feeling of "Matchmaking", even though all what it does it just grab all selected gamemodes, and search for servers hosting them, then trying to join non-full servers with players, if not then consider trying empty ones, otherwise it will return an error saying no servers were found.

For the average player, they will see this behavior pretty much like how vanilla does, except the supposed Matchmaking will never take longer than 3 seconds due to how the NS master server operates, and it's only 3 seconds because i intentionally added this delay for cosmetic things to appear on screen, otherwise it would be instant.
image
Video of the feature working: https://www.youtube.com/watch?v=4Xre9cQxTtA

@EnderBoy9217
Copy link
Contributor

EnderBoy9217 commented Aug 31, 2023

I will say many servers (like ikhad's attrition II and III servers, or practically whole new gamemodes like Gruntmode or cocaine mode that are still seen as attrition/frontier defense respectively) have many server-side mods installed that people might not want but won't see before they join.

Maybe we have servers list all mods they have and join servers without mods? This is a bit of a hack though because servers won't be able to use things like Spyglass or Server Utils.

Another option could be giving server-side mods the ability disable mixtape matchmaking, but this probably wouldn't work because people will want their mod to actually be used.

@Zanieon
Copy link
Contributor Author

Zanieon commented Aug 31, 2023

Totally agree with you in this, however my proposal with this whole feature is just bring back the easy match finder for people who don't care much about what mods the servers might be running, they just wanna play. I've seen so many people joining servers by the Server Browser itself and not even bat an eye in the server's description, they just join.

This feature was never planned out to be considering server-sided mods per se, even though the logic i did will still enable/disable them as needed per server like the server browser does.

My honest approach to these cases like Gruntmode or Cocaine mode are the Servers themselves have some sort of MOTD or a Big warning message saying that they are running mods that severerily affects gameplay and thus will not provide vanilla experience.

@EnderBoy9217
Copy link
Contributor

EnderBoy9217 commented Aug 31, 2023

It doesn't really matter how big their message is if they are just auto connected, and most people in the server browser already know what they are joining into from the server description/title.

And with auto connect, even if they knew what mods each server uses they wouldn't know what server they joined.

@GeckoEidechse
Copy link
Member

GeckoEidechse commented Aug 31, 2023

(copied from my message on Discord)

Restoring the functionality should definitely be something we should look into. Especially for newcomers it might be "easier" for them to just connect to some server than be overwhelmed with the choice in server browser.

That being said, we might wanna look into the concept of "trusted" servers again, cause from a security perspective it might not be too wise to just drop someone on any server. Similarly we definitely wanna take into account server region but that might be out of scope for that PR. I'm gonna take a proper look when I got time again next week ^^

@ASpoonPlaysGames ASpoonPlaysGames added needs testing Changes from the PR still need to be tested needs code review Changes from PR still need to be reviewed in code commits vanilla file For PRs that commit vanilla files from VPKs labels Sep 2, 2023
@Zanieon Zanieon marked this pull request as draft September 10, 2024 11:00
@Zanieon Zanieon added waiting on changes by author Waiting on PR author to implement the suggested changes and removed needs testing Changes from the PR still need to be tested needs code review Changes from PR still need to be reviewed in code commits vanilla file For PRs that commit vanilla files from VPKs labels Sep 10, 2024
@Zanieon Zanieon self-assigned this Nov 27, 2024
@GeckoEidechse
Copy link
Member

I'm starting to think, having something like this would be nice to have in Northstar...
Or at least something like a quick join button.
Though it should take into consideration distance to server as to not put players on servers on the other side of the globe (only when it's the only option).
Will keep thinking about this ^^

@Zanieon
Copy link
Contributor Author

Zanieon commented Dec 5, 2024

Atlas cannot retrieve the ping between server and client right? Otherwise i'd be down to add code that sorts servers by ping and cut out the ones beyond a certain threshold (say like... 150)

@GeckoEidechse
Copy link
Member

Atlas cannot retrieve the ping between server and client right?

No. So the best we could do is getting the region on client and then having a list that says what is nearby. Ideally we'd have some changes to Atlas logic to accommodate this.

@Zanieon
Copy link
Contributor Author

Zanieon commented Dec 6, 2024

Though it should take into consideration distance to server as to not put players on servers on the other side of the globe (only when it's the only option). Will keep thinking about this ^^

Just re-read this bit again and i forgot to mention earlier, this feature have a priority system which it will sort server with players first, it trims out full server and empty ones. It only picks empty servers if the gamemodes selected don't have any server with players. While i'd like to also sort by ping, the fundamental purpose to this is just to let people get into servers with players, regardless of latency.

Imo, ping is not a priority rn, can whenever said scenario of region sorting/ping sorting happens we can just add support to that in the long term even after this gets merged.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
waiting on changes by author Waiting on PR author to implement the suggested changes
Projects
Status: No status
Status: Zanieon Doing
Development

Successfully merging this pull request may close these issues.

4 participants