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

[WIP] Initial blind lobby / game support #4175

Draft
wants to merge 15 commits into
base: master
Choose a base branch
from

Conversation

past-due
Copy link
Member

@past-due past-due commented Jan 13, 2025

This PRs enables "blind" lobbies / games.

What is a "blind" lobby / game?

In a blind lobby: Players' true identities are hidden from everyone (except the host) - until the game starts
In a blind game: Players' true identities are hidden from everyone (except the host) - until the game ends

The host (currently, a spectator host) has the ability to see players' chosen player names / identities, and configure all of the game settings as expected (position, teams, etc).

You might want to also consider other configuration options, like blocking free chat, if you want to prevent players in the lobby from purposefully revealing their identities to each other.

What is the new "simple lobby" waiting room for blind lobbies / games?

A blind lobby / game can optionally be configured with an even simpler waiting room, which does not reveal the list of players, but simply:

  • Basic information on the host
  • The ability to check ready
  • Basic status information on the lobby (number of ready players, whether waiting on the host to start the game, etc)
blind_waiting_room

Implementation Details

When connecting to a game configured in any of the blind modes, each client will generate a unique new "blind identity" which is exchanged and used for communication with other clients. The host will receive the "true" player name / identity on join, which it can verify as appropriate, but will only share the "blind identity" and generic player names / details with all other clients.

Once the game begins (in "blind lobby" mode) or the game ends (in "blind game") mode, the host shares the host-verified "true" player names / identities with all other connected players. These are then "fixed-up" in the replay files so that replays play back with the true player names / identities revealed.

@past-due past-due force-pushed the 2025_01_room_options_1 branch 2 times, most recently from e53f016 to 3e8f5b6 Compare January 13, 2025 01:06
@past-due past-due force-pushed the 2025_01_room_options_1 branch from 3e8f5b6 to a7bcad4 Compare January 13, 2025 02:49
@ManManson ManManson self-requested a review January 13, 2025 19:47
@past-due past-due changed the title Initial blind lobby / game support [WIP] Initial blind lobby / game support Jan 14, 2025
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.

2 participants