Whereas client side prediction
is the client application
using the network
data available combined with the physics
rules of the particular game that is running in order to compensate for latency
, human side prediction is the actual human doing mental calculations in order to determine how to move their character. Although there are likely prior instances of this to the release of the original Quake
, it was most defiantly in use the most during this period.
Due to Quake 1 being client-server rather than peer to peer, many felt that internet play via dial-up very nearly removed their ability to use their reflexes appropriately and quickly became frustrated with Internet play. Many called for the return of peer to peer networking they enjoyed in Doom, as with peer to peer the game logic is performed on both computers and data is simply synched. However, id made the correct choice in making their network play via a client server configuration for a number of technical reasons, not the least of which being able to join games already in progress.
This ability, combined with the fact that it was one of the first successful games with TCP/IP, caused it to be one of the first commercial games (MUDs doing this had been around for quite some time) where a user could find and join a multiplayer game at any time of the day. Before this time most users had to organize LAN parties if they wanted fast action carnage. (Aside from Kali users perhaps, but Kali was nowhere near this scale.) This convenience far outweighed the latency problems.
Lag, and human side prediction:
Latency (Lag), of which there are many kinds, both network and non-network related, caused a great to disturbance to players. That is, when they went to move their mouse or press keys it was only after a noticeable and annoying amount of time passed that their on-screen avatars decided to do as they commanded and slaughter the poor guy typing a message in a corner, or worse, so lagged that they have simply given up and decided to wait it out.
Some dial-up users had relatively stable and constant connections and only (wisely) connected when the round trip between them and the server (ping) times were low. This allowed them to have a constant time delay between input and action. With this knowledge, along with the knowledge of the way that the engine worked, good estimations of where players were located, and quite a bit of luck, a lagged player could accurately predict where both himself and his opponent would be located when their input was recognized and act accordingly.
This human side prediction became second nature to many, and some relied on it so much they became unable to play single player effectively. Later John Carmack decided to do an experiment with the network code and Internet Quake play and developed Quakeworld. Quakeworld also featured client side prediction, which called forth the fall of using human side prediction for lag-based twitch gameplay decisions, as the client took care of this for them. Human side predictions are, of course, still used in overall strategy, non-lag related twitch decisions, and other more long term based gameplay elements. Making these unnecessary would likely greatly disturb the entertainment value these games provide.