&quot;Moving left&quot; is NOT an input.  An input is &quot;The controller is pushed to the left&quot; (with perhaps a numeric value of how far it is pushed to the left).  &quot;Firing once&quot; is similarly NOT an input.  &quot;The fire button is down&quot; and &quot;The fire button is up&quot; are inputs.  That is how well implemented first person shooters have worked since the Quake days (I think Quake 2 actually).<p>The point of the article is actually that the server doesn&#x27;t validate anything.  There&#x27;s nothing to validate.  The only data it gets from the client is the state of the controls.  Then it runs the real simulation.  The client only ran a prediction of what it thought the server would do.  Sometimes, it&#x27;s wrong and corrects itself when it gets new values from the server.