Open robertmeta opened 12 years ago
From Kelly: I agree with this...It all fits well into adding a special "Developer Mode" when playing a game...I don't think one would verify the hash from a website, but from the remote clients version...clientA.Hash == clientB.Hash => play
If they have 'developer mode' checked, it won't care.
a simple hash comparison between the player(s) joining the game and the player designated as the game host.
If the game definition version is different, send a chat notification to all players saying something "playerX is using version X.X.X (host version Y.Y.Y)" If the versions are equal, THEN compare the hashes and send a similar message "playerX is using a modified game definition (host version Y.Y.Y)"
The plan with this is that it doesn't BLOCK users from playing with modified or outdated game definitions, it merely warns the other users that they may be up to something sneaky.
And I chose to check version numbers first, because if they are different then OBVIOUSLY the hashes will be different (even if they're both "official" releases of the file). However that shouldn't necessarily label the user as a potential cheater. Maybe it could go more detailed and compare hashes and THEN date modified to suggest that the more recently updated file is more likely to be the cheating file, but that's a little extreme paranoia factor.
this would solve potential issues with players modifying the game definition to help them cheat (modifying the shuffle function to stack the deck in their favor, for example)