Are good server games for multiplayer / MMO clients using delays in motion calculations?

There are a few questions here.

Imagine that I have client A that sends the following message to the server: "START MOVEMENT FORWARD".

The server will not receive this message instantly because there is a delay due to the delay.

Question 1: ping (or better: round-trip time ) is the time it takes the client to send a message to the server and get a response. Does this mean the following if you can ignore the time it takes the server to notify that it has received a message and start sending a response (this should be very short)?

  • time required for the client to send messages to the server = round-trip-time / 2
  • time it takes the server to send something to the client = round-trip-time / 2

So, when client A sends this message, the server is supposed to receive this message round-trip / 2 milliseconds after the client sends the message. This leads me to the next question.

Question 2: should the client send the packet first and then wait for the round time / 2 milliseconds before executing this command on the client side (in this case: move forward) to compensate for the delay / lag?

Now the server will send the following message to all neighboring players: "CLIENT A IS FORWARD." Then these clients will see to it that the client’s character begins to move, and this leads me to the next question.

3: , , , , /2 ? , , /2?

, , , , . ? ? , , , , ? .

+3
5

, , . , . , , , , , , . . , , . , , , .

. , "".

, , , , . , .

, , , , , wow, . , , .

. , , , , , . , . , //, , , .

, , .

: , . - mmo, , . , , .

+8

, , , , -.

. , RTT. ... , .

, . :

  • : t
  • : (x, y, z) (x, y, z, w)
  • : , (x, y, z), , (x, y, z)

, [T, P, M] simtime. .

[T, P, M], T + deltaT. deltaT , ", T, ". , : ", - , ", [T, P, M] ( , ).

T + deltaT + differentdeltaT. , , , , , -. , , , 2 * . , , ,

, , , .

. sloppily (, RakNet ( ) ). : , , , , , ; , , , , . , ( ).

, , "". , . ( 50 ), , RTT . , . , . ( , , , ).

: -, , . (, , ). -, ... ethernet 5 100 ... . , " , T, T + some_large_number, , ". some_large_number , RTT, .

. 400 , , , ... 30 , , - , . , , , 100 , 500 .

FPS ( , ). , , ( ), , , . , FPS , ... , , , , , . , , . , , MMORPG FPS , ( Mortal Online, , ).

.

+4

Q1: .

Q2: , , - : , - , , , , , , ( : , ).

Q3: , X, , {A, B, C} {X, Y, Z}. , , ( ). , .

- , .

+1

;

: , - .

  • lockstep;

, empire2, lockstep.

, , RTS 100 , , .

50, Send Command MoveForward, , 51; , 51, . .

, 50, , 49, , 100 .

RTT, , 100 ;

, , , frameId, .

, , .

, , , .

, , pos , .

, , , .

, .

, , .

, , , , lockstep, , .

, , , , , Continuity.

, , , -.

0

, , . , . , wacko, , , . MMO- , . , .

-1

Source: https://habr.com/ru/post/1718096/


All Articles