Opened 3 years ago

Last modified 12 months ago

#6136 new enhancement

Add lobby password option alternative.

Reported by: nani Owned by:
Priority: Nice to Have Milestone: Backlog
Component: Multiplayer lobby Keywords: lobby passwordless private game password buddy list
Cc: Patch: Phab:D4987

Description (last modified by nani)

Add an alternative option to make games private by allowing to access your game (and hence your IP) to only buddies you have as host.

Why would this be a desirable alternative:

  • It would get rid of the need to know the password
  • It would allow all your buddies to join automatically
  • If designed right it would allow for new cool hypothetical cases as
    • tournaments: only allowed players for each match would be allowed to go in + arbiter or streamer
    • lobby admins allowed to join a rated game or similar to resolve problems
    • Temporary allow some users in your match if not buddied
    • others?
  • As is done now if you want to have a big game (ex: 4vs4) and not have a public due DDOS (or DOS) attacks everyone must know the password and having to pass it to each player can be very difficult as most only use lobby or forum as chat medium

How would be implemented:
The current password system seems to be sending the password to the server doing the client verification there, then returning a deny or allow. With this it would either need to know the buddy list of each player (which is inefficient and unrealistic) o an alternative, which would be to send a join request from the server to the game host with all the corresponding information needed and let the host return a allow or deny response, which will be forwarded to the client by the sever.

Change History (9)

comment:1 by nani, 3 years ago

Description: modified (diff)

comment:2 by nani, 3 years ago

@angen given it seems you did https://code.wildfiregames.com/D3184 how hard would it be to add this option?

comment:3 by Silier, 3 years ago

hi,

I have been already playing with idea to make option to not require password for buddies.

Since verification is done by the host of the match, I do not think list of buddies of all players is needed, unless I missunderstood the request.

I believe user1 mentioned similar mechanism done by the lobby bots, not sure how far is he with this.

To avoid another round of request response with the host of the match and also to not make stanza data potencially huge (as one can have in theory 100+ buddies) I would suggest option to whitelist buddies when creating the match but still setting the password. Then joiners will see note something like: 'password not required for buddies'. Does it look acceptable to you?

comment:4 by nani, 3 years ago

Imho the best option would be to wait for the host reply, even if this means having to make another message to send, the best would be to have the server as an agnostic proxy that only tells you if you are denied or allowed (if allowed send extra game info to join of course). That way you can have all the allow logic in the host client (hopefully implemented having c++ as the medium and the request verification handled in javascript for maximum versatility, the handle cout be defined in gui/common/ or similar place). Imagine a player from lobby make a request to join a game, you as the host could be shown in the gui as a notification that a player wants to join, you could then accept or reject it, or if as the ticket says, if is a buddy automatically accept. As for the players that want to join a pre join message could be indeed be nice to have. Having a password + buddies sounds nice but then the problem that I stated at the ticket still exist, that is, you need to send the password to that person and pasting the password in the lobby chat makes no sense.

Overall, I think sending the buddy list to the server is best avoided. Better leave the verification handling to the host and in case of having something small to send like it could be the case of a password then that can be directly handled by the server.

Last edited 3 years ago by nani (previous) (diff)

comment:5 by Stan, 3 years ago

Milestone: Alpha 25Alpha 26

comment:6 by Stan, 2 years ago

Milestone: Alpha 26Alpha 27

Unlikely to get done for A26

comment:7 by Freagarach, 16 months ago

Milestone: Alpha 27Backlog

Pushing back.

comment:8 by Norse_Harold, 12 months ago

Patch: D4987

I've submitted Diff 4987, which adds the allow-list functionality. It would resolve this issue.

comment:9 by phosit, 12 months ago

Patch: D4987Phab:D4987
Note: See TracTickets for help on using tickets.