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

feat: Add extension point for CanJoinMatchmakeSession #42

Merged

Conversation

ashquarky
Copy link
Member

Changes:

Adds the option for games to override CanJoinMatchmakeSession with their own version if needed. This is useful for, at least:

  • Minecraft: Wii U Edition, which doesn't use NEX ParticipationPolicy at all and instead uses a combination of search attributes and application buffers to determine join eligibility. This is I guess done to allow "Friends of friends" matchmaking on the client; but we'd like to check it serverside too for security reasons.
  • Splatoon's Splatfests, which involve matchmaking the second team into a room with OpenParticipation false - the current check forbids this. Presumably this is to prevent random individuals matching into a room without a whole team alongside them, which would make the room unplayable (any legit teams would find there aren't enough vacant participants)

I have a sample of what Minecraft's matchmaking looks like here. I'm not too sure if you like the design here, since it encourages reaching into the database directly (as I did in the minecraft diff and database.FindGatheringByID to get the match participants).

@ashquarky ashquarky requested a review from DaniElectra August 12, 2024 04:38
Copy link
Member

@DaniElectra DaniElectra left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The Minecraft use case seems fair enough.

The Splatfest issue sounds like something may not implemented correctly, like the gidForParticipationCheck which currently isn't used. Thus, the override probably shouldn't be required there (unless proven otherwise)

globals/matchmaking_globals.go Outdated Show resolved Hide resolved
@ashquarky ashquarky force-pushed the matchmaking-rewrite branch from 46a800f to e88795c Compare August 25, 2024 11:01
Useful for games with custom behaviours, like Minecraft's friends-of-friends feature
and Splatoon's fests
@ashquarky ashquarky force-pushed the matchmaking-rewrite branch from e88795c to ff20935 Compare August 25, 2024 11:03
@ashquarky ashquarky requested a review from DaniElectra August 25, 2024 11:04
Copy link
Member

@DaniElectra DaniElectra left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@DaniElectra DaniElectra merged commit 32d393f into PretendoNetwork:matchmaking-rewrite Aug 25, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants