> The problem with an md5sum on a completely free program is that someone
> could simply modify their client to send the correct md5sum. Even if the
> server changes how its summed each time, you can simply keep a clean
> copy of the binary elsewhere on your disk and sum that instead of the
> actual running executable. The server has no way of trusting that the
> client didn't lie.
>
> Some games have tried having a secret string or algorithm in the
> "official" binary that does not exist in the free source code to achieve
> what you are proposing. A client based on the free code would only be
> able to connect to servers that allow it. That may work reasonably well
> if you ignore how difficult it would be to hide your string/algorithm
> from anyone who examines the executable. The problem is that your game
> is now non-free. You would need special permission from any contributors
> to let you distribute a binary without the source code that was used to
> generate it.
>
>
> Brandon
>

A more important problem than free software politics is that even if
you have a proprietary fork that the binary uses that sends a md5 of
itself, a motivated enough person could probably just as easily use a
packet sniffer to reverse engineer the process, and make a fork of the
free version that works on the servers that only accept the non-free
version.

Now, with free-software in mind; as said by Brandon; having two
versions, a proprietary one that works, and an open source one that
doesn't really is missing the point of having the open source version.



>From my own experiences, the only good answer to the problem of people
cheating by modifying the game client is to not put anything important
to game physics within the game client.  I think there are some
surefire benefits to this that don't have the usual hypothetical
chains of cause and effect for the scenarios of when someone really is
motivated enough to step up to the challenge of circumventing your
security measures.

First one is; when you don't give them anything to modify, they can't
modify it.  You can do this easily with a server-side physics engine,
and use client-side for rendering information from the server and
sending information from the player to the server.

Second one is; you're not using the same canned engine that everyone
else uses (ODE).  Its not hard to design a simple physics engine to do
what you need for your game, and you can use pretty basic math to do
it.

I think the only argument against handling physics serverside is the
assumed load it would put on the server;  and my honest belief is that
when that actually is a problem, its 2 parts bad design, and 1 part
being overly elaborate.

_______________________________________________
Soya-user mailing list
Soya-user@gna.org
https://mail.gna.org/listinfo/soya-user

Reply via email to