At 12:36 AM 7/13/2005 -0700, Eric said to all and sundry: >>>Thousands of times, theoretically, when you consider >>>holding the mouse button down is sending the signal that >>>you're doing so... >> >> and that still only makes your weapon discharge a single >> round > >...if you're firing a semi-auto weapon, I guess.
I doubt any of that is actually transmitted to the server. Alfred probably can't disclose much, but typically the mouse-click is handled client-side and the action performed is sent to the server, which responds with a result. Thus, typical netcode will have the client report to the server "I'm at position X.Y.Z and pointed to position A.B.C, action is automatic fire from Super Soaker." The server takes that information, determines if this action has a result on another client, then informs all clients of your new location and specific clients of the effects of your action. We're all familiar with seeming to die at the same time a player rounds a corner and fires, though human reaction times are nowhere near that fast. In fact, the scene was probably played out in the server a half-second prior, and your client is just now getting both the "Client 1 moved to position X.Y.Z and is facing towards A.B.C" message to generate his form and the "client 1 hit you with eighteen gazillion damage" message that tells you to die at about the same time. It would be possible for the netcode to only send updates about client position to relevant clients, so when Client 1 moves to a position only those with line-of-sight to that location are updated. However, this would necessarially increase the processing required on the server and may actually introduce more latency. It would also eliminate wallhacks and ESP, since there's nothing coming in for them to work with, but that could require an entire engine overhaul and coupled with server demands there's probably a reason it was written the way it is. So, in theory a server is going to be sending a bit more data than it takes in, since it's taking in only position and action while sending out that same info to all clients as well as results of actions. Naturally, this is going to take a bit of buffering in the engine to handle the wide range of update rates that players are connected at. If I have a ping of 200 (not uncommon given my method of connecting to the internet) and you have a ping of 100, that's 300ms worth of player movement and action that needs to be buffered. Let's say a half-second is what's in buffer that the server acts upon. Let's also assume that a cl_cmdrate of 10 means 10 updates per second to the server. So with a cl_cmdrate of 20, if I fire one round at time 0.0s the server only knows that action happened between t0.0 and t0.05, when it gets the next update. If I set my cl_cmdrate to 10, the server only knows it happened between t0.0 and t0.10. Suddenly I'm firing for twice as long a period. Now the server has to figure I fired during that 10th of a second, checks the location of you my target, and if you were within the hit cone during that 10th of a second has to record a hit. So, by setting my cl_cmdrate to the lowest setting single-shot weapons would suddenly be more effective because the time they're on-target is a 10th of a second rather than a 20th or a 30th. Note: all this is speculation on my part. So, rather than increase the cl_cmdrate minimum, what I'd suggest is to base both cl_cmdrate and cl_updaterate off of the old rate variable, and just make them a ratio of what the server needs vs what it has to send. So if the server has a maxrate of 10000, and a minrate of 5000, when client 1 connects with rate 5000 he gets cl_cmdrate 20 and cl_updaterate 30. When he connects with rate 10000 he gets cl_cmdrate 40 and cl_updaterate 60, just to use an example. If we base the up and down rates as portions of the overall rate, it should be easier for the engine to handle. The caveat is DSL is asymetrical, so people with a 3M download speed and a 48K upload speed might have a problem, but overall I think it would even out a lot of the differences between the broadband and the dial-up users. -- Dan * Dan Sorenson DoD #1066 A.H.M.C. #35 [EMAIL PROTECTED] * * Vikings? There ain't no vikings here. Just us honest farmers. * * The town was burning, the villagers were dead. They didn't need * * those sheep anyway. That's our story and we're sticking to it. * _______________________________________________ To unsubscribe, edit your list preferences, or view the list archives, please visit: http://list.valvesoftware.com/mailman/listinfo/hlds_linux