The problem I see with your thoughts is you're trusting the client to authenticate its moves,...
I never said that, my idea for this problem is to simply subtract the two last player positons... then you get the actual speed of the player
Code: Select all
speed = currentPosition - formerPosition
and if this speed is higher than the desired speed, you could send an error to the client ("You are cheating" or something like that ;-D) or you could reduce the player's speed to regulate it. (Just an idea, maybe this is not good enough for games which require exact movement like CS, but I think it might fit the needs for a RPG or something similar).
Source's way is tough on the server, and probably tough on lag as well...
...now a question comes to my mind...
Is it necessary to do all player interactions with the world over the server, or ... what could be (safely) done on the clients side, where is the border between safety and *insane* safety
Is it necessary to do every physic calculation on the server..? What would be if I want to collapse a whole house with my physics engine,which is absolutely no problem on the client, but when such huge data masses are sent via the network, the whole feeling of the game would get laggy..!?!
---> I for example, recognise such *laggyness* in CS Source, always when I run against a barrel or shoot it, there's a little delay before it even begins to move, but then it quickly falls down.
This really looks weird, for me...
*please, criticize me and my thoughts, I can handle it

*
[edit]:
Just a little thought again, how will I have to program a throw of a grenade:
Code: Select all
a) [User mouse klick] ---> [message: "User klicked mouse"] ---> [Network] ---> [Server receives message] ---> [Server decides to do a throw, calculates it and sends back data to client]
that's how I understood it from the article of Valve,
or
Code: Select all
b)[User mouse klick, client decides to do a throw] ---> [message: "User wants to throw grenade"] ---> [Network] ---> [Server receives message] ---> [Server calculates throw and sends back data to client]
The idea behind this question is, if just the *real* input of the user (such as keyboad, mouse, joystick, ...) is sent to the server (then almost every decission would be made on the server

), or could I send a request for the effect which will result from that input?
stoneCold