ENSL / NS

Natural Selection mod for Half-life
http://www.unknownworlds.com/ns
GNU General Public License v3.0
43 stars 12 forks source link

No game version consistency check #71

Closed pierow closed 3 years ago

pierow commented 4 years ago

A consistency check from the server to each client should be done to verify everyone is playing the same version of the game. Users on a mismatched version, old client on a new server or vice versa, is fairly common and the amount of bugs that result is only going to grow. Malicious clients are also a possibility.

So far I've tried adding entries for ns.dll/so/dylib akin to this: https://github.com/ENSL/NS/blob/2fb18b989f8ba369a94a3a7a80bcc14bdd1e42d9/main/source/dlls/client.cpp#L1227 defined here: https://github.com/ENSL/NS/blob/2fb18b989f8ba369a94a3a7a80bcc14bdd1e42d9/main/source/dlls/enginecallback.h#L91-L98

This has had no affect in my testing, but I think it's likely something small preventing it from working.

jirikivaari commented 3 years ago

I think some sort of cvar for this would be great; like:

sv_minclientversion 3.2.2

This way the server provider can allow more people to join. Maybe even set it to 3.2.

It would be useful for hotfixes too. Some break compatibility, some don't. Like eg. 3.4.1 server might work with 3.4 clients but 3.2 not with 3.2.2 clients etc depending how much the versions have changed.

It would need logic to order versions, and standard versioning pattern.