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

Feature/#607 match confirmation #608

Open
wants to merge 7 commits into
base: v2-develop
Choose a base branch
from

Conversation

Askaholic
Copy link
Collaborator

@Askaholic Askaholic commented Jun 20, 2020

Adds the ability for players to accept matchmaker games before the server tries to launch them. Clients will need to respond with a match_ready command which has already been supported by the server with a dummy implementation for years. If some players don't accept the match within the timeout, the match will be cancelled, the players who failed to accept the match will receive a matchmaker violation and their parties will be removed from all queues. Any parties where all players accepted the match will be automatically re-entered into the queues they had been searching for before the match was found.

New server messages:

  • match_info: sent to create or update the match offer UI. This might also include additional information about the match in the future.
    Example:
    {
        "command": "match_info",
        "expires_at": "2020-01-31T14:30:36+00:00",
        "expires_in": 20.0,
        "players_total": 6,
        "players_ready": 2,
        "ready": false
    }
  • match_notice: sent to players who are searching together to notify them which other player(s) in their party did not accept the match.
    Example:
    {
        "command": "match_notice",
        "unready_players": [1697983, 149808, 1390]
    }

Required client messages:

  • match_ready: response to match_info with attribute ready=False to mark ones self as ready. All players in the match must respond with a match_ready message before the game launch sequence will begin.
    Example:
    {
        "command": "match_ready"
    }

Requires client changes as described in FAForever/downlords-faf-client#1783.
Closes #607

server/matchmaker/match_offer.py Outdated Show resolved Hide resolved
tests/unit_tests/test_match_offer.py Outdated Show resolved Hide resolved
@Askaholic Askaholic force-pushed the feature/#607-match-confirmation branch 3 times, most recently from 92adf62 to 0516987 Compare June 29, 2020 00:21
@Askaholic Askaholic force-pushed the feature/#607-match-confirmation branch from 0516987 to 52a90eb Compare July 19, 2020 19:22
server/ladder_service.py Outdated Show resolved Hide resolved
server/matchmaker/match_offer.py Outdated Show resolved Hide resolved
server/ladder_service.py Outdated Show resolved Hide resolved
@Askaholic Askaholic force-pushed the feature/#607-match-confirmation branch from 20d58f6 to 02e1939 Compare December 2, 2023 20:33
@Askaholic Askaholic changed the base branch from develop to v2-develop December 30, 2023 17:34
@Askaholic Askaholic force-pushed the feature/#607-match-confirmation branch from 02e1939 to 97d09a7 Compare January 2, 2024 19:12
Comment on lines 544 to 550
new_search = Search(
players=search.players,
# TODO: What start time do we want to use?
start_time=search.start_time,
rating_type=search.rating_type,
on_matched=search.on_matched
)
Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Can we just reuse the same object? That way we preserve the failed matching attempts / threshold expansion which would give the auto requeue a real technical benefit over just having people rejoin the queue.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Seems like yes

@Askaholic Askaholic force-pushed the feature/#607-match-confirmation branch from 3ba4852 to a88d3fc Compare January 2, 2024 20:15
@BlackYps
Copy link
Collaborator

BlackYps commented Jun 8, 2024

This really is ready? I missed that

@Askaholic
Copy link
Collaborator Author

This really is ready? I missed that

Yes. Certainly ready enough to build a client implementation against.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Replace party ready check with match confirmation
3 participants