I'd like my game to support both multiplayer gameplay (in a client-server architecture) and content modifications. This presents a problem: what should happen if a player tries to connect to a server that loads different content? Anything in this game can be modified or added, including scripts and entities.
The easiest solution is simply to reject that player if his content doesn't match. This would be done by comparing checksums of all the client files with the server files, and, if they don't match, that player is not allowed to connect. There are many drawbacks to this system, because a player can easily get himself locked out of online play if he accidently modifies a file associated with a published mod or the vanilla game.
There's also the solution in which the files are compared to the server and then downloaded if they do not match (or if they do not exist at all). This is the more attractive of the two, at least in my case. What is the best way to manage this? Should each server create its own local mod on the client's machine?
Show differencesHistory of post edits
#1MaelmDev
Posted 19 December 2012 - 03:42 PM
I'd like my game to support both multiplayer gameplay (in a client-server architecture) and content modifications. This presents a problem; what should happen if a player tries to connect to a server that loads different content? Anything in this game can be modified or added, including scripts and entities.
The easiest solution is simply to reject that player if his content doesn't match. This would be done by comparing checksums of all the client files with the server files, and, if they don't match, that player is not allowed to connect. There are many drawbacks to this system, because a player can easily get himself locked out of online play if he accidently modifies a file associated with a published mod or the vanilla game.
There's also the solution in which the files are compared to the server and then downloaded if they do not match (or if they do not exist at all). This is the more attractive of the two, at least in my case. What is the best way to manage this? Should each server create its own local mod on the client's machine?
The easiest solution is simply to reject that player if his content doesn't match. This would be done by comparing checksums of all the client files with the server files, and, if they don't match, that player is not allowed to connect. There are many drawbacks to this system, because a player can easily get himself locked out of online play if he accidently modifies a file associated with a published mod or the vanilla game.
There's also the solution in which the files are compared to the server and then downloaded if they do not match (or if they do not exist at all). This is the more attractive of the two, at least in my case. What is the best way to manage this? Should each server create its own local mod on the client's machine?