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

Add secrets #1

Open
Longwelwind opened this issue Aug 2, 2021 · 0 comments
Open

Add secrets #1

Longwelwind opened this issue Aug 2, 2021 · 0 comments

Comments

@Longwelwind
Copy link
Collaborator

Since Ravens works by sharing the state of the game to all clients, this can allow for easy cheating if the game possesses secret information (decks, cards in hand, seed for randomness, ...) since players can check the full state of the game by reading the state of the game sent by the server.

Though, secrets can easily be implemented by adding:

  • A way for actions to be stripped of secret information before they are sent to the players. The local state of the players would be temporarily different from the one of the server.
  • A reconciliation system where the server can send a piece of information to the clients so that the local state of the player can be reconciliated with the one from the server.
  • A way for the state to be filtered when a serialization occur. This must be done since if a player joins after the local state of the player but before it was reconciliated. Since Ravens will send the full state of the game to the joining player, the state should be filtered to make sure this player receives a serialized state without sensitive information
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant