2012-05-08 3 views
2

저는 최근에 빠르게 진행되는 실시간 게임을위한 네트워킹에 대해 생각해 봤습니다. 만약 당신이 올바르게 보간하면 히트 (hit) 계산은 player2 (p2)의 점에서 (p1.interp + p2.interp + p1.ping/2 + p2.ping/2) 전 이상 일어난 상태에서 이루어집니다. 범인이 player1 일 때 봅니다 (p1).게임용 실시간 네트워킹, 보간 문제

패킷은 먼저 p1.ping/2를 취하는 서버로 이동 한 다음 서버는 p1.interp + p1.ping/2 전에 발생한 게임 상태에서이를 계산합니다. 그 계산의 결과는 player2에게 보내지 만, 단지 나중에 보게됩니다. 그것은 3면 모두가 사물을 처리하는 데 걸리는 시간 때문에 더해졌습니다. 불쌍한 내 ASCII 아트 기술을 그러나 나는 저항 할 수 없었다

player1   server    player2 
     |     |     | 
.------|_1.............actual.....|.....game state......| 
|  |     |^    | 
|intrp |_2    | |     | 
|  |     | |     | 
`----->|_3----ping/2  | |     | 
        `------|_4----ping/2  | 
            `------5_|-------. 
              |  | 
              6_| intrp| 
              |  | 
              7_|<------‘ 

변명.
(나는 윈도우가 설치되어 어디 집에 도착하고 나는 여기 보이는 똥 방법을 볼 수 있지만 사람은 아이디어를 얻을 희망) 100ms의 보간 더 이상은 250ms가 요약 우리에게 제공, 50ms의 핑을 가정

. 즉, player2는 player1에 의해 과거에 약 250ms 가량 보였지만, 클라이언트의 prediciton을 가정하면 실시간으로 보게됩니다. 내 논리에 결함이 있느냐, 아니면 큰 문제가 아닌가?

+2

글쎄, 나는 그 ASCII를 고치려고 노력했다. :) –

답변

0

related 질문에 대한 대답은 this입니다. 이것이 대답으로는 적절한 지 모르지만 나는 논평 할 수 없다.

+0

그럼 내 질문은 다소 그 기사를 기반으로했다. – redka