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] New Lobby Management System #32

Open
Zandor300 opened this issue Mar 28, 2018 · 0 comments
Open

[Feature] New Lobby Management System #32

Zandor300 opened this issue Mar 28, 2018 · 0 comments

Comments

@Zandor300
Copy link
Contributor

Zandor300 commented Mar 28, 2018

Being able to create lobbies for a specific game and join already existing lobbies. With a specific message, you are also able to get a list of all the lobbies and (when specified with a payload) being able to filter lobbies.

Specific features

  • Password protection
  • Lobby naming
  • Controlled and uncontrolled lobbies (one player being the host or controlled by the server automatically)

Messages Concepts

EMessage_RecvWaitingForPlayers will be the message that joining a lobby was successful and the message to inform about new players in the lobby.

Client -> Server

EMessage_SendJoinLobby

DATA_1: uint32_t(<CLIENT ID>)
DATA_2: uint32_t(<LOBBY ID>)
DATA_3: RakString(<PASSWORD>) (optional; only when lobby is password protected)

EMessage_SendLobbyList

DATA_1: EGame(<GAME>) (optional; if send, lobbies only for the specified game will be shown)

EMessage_SendCreateLobby

DATA_1: uint32_t(<CLIENT ID>)
DATA_2: EGame(<GAME>)
DATA_3: RakString(<NAME>)
DATA_4: RakString(<PASSWORD>) (optional; only when the host wants to password protect it)

EMessage_SendAssignNewHost

Can only be executed by the current host.

DATA_1: uint32_t(<CLIENT ID>)
DATA_1: uint32_t(<LOBBY ID>)
DATA_2: uint32_t(<CLIENT ID OF NEW HOST>)

Server -> Client

EMessage_RecvLobbyList

DATA_1: uint32_t(<LOBBY ID>)
DATA_2: RakString(<NAME>)
DATA_3: uint32_t(<NUM PLAYERS IN LOBBY>)
DATA_4: bool(<PASSWORD PROTECTED Y/N>)

DATA_5...: (above repeating for every lobby)

EMessage_RecvNewHost

For when the original host leaves and a new one will be randomly assigned or when EMessage_SendAssignNewHost is executed.

DATA_1: uint32_t(<LOBBY ID>)
DATA_2: uint32_t(<CLIENT ID OF NEW HOST>)

Errors

  • EServerError_InvalidLobbyPassword

What do you think?

@Zandor300 Zandor300 changed the title New Lobby Management System [Feature] New Lobby Management System Mar 28, 2018
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

No branches or pull requests

1 participant