2012-07-11 3 views
8

나는 Latency Compensating Methods in Client/Server In-game Protocol Design and Optimization이라는 Yahn Bernier의 2001 년 논문에서 수정 된 밸브 article on multi-player networking을 읽었습니다. 나는 socket.io를 통해 클라이언트에 연결된 Node.js를 서버를 사용하여 실시간 멀티 플레이어 게임을 만들고있어 나는 원칙에 관한 몇 가지 질문은 아래에 자세히 있습니다TCP와 Node.js의 실시간 멀티 플레이 게임 원리

Entity Interpolation

[보간] 방지를 이것이 흔들리는 움직임은 보통 으로 버퍼링 된 서버 업데이트로 이어지고 그 사이를 부드럽게 보간 된 으로 다시 재생합니다. 또한 패킷 손실로 인한 글리치로부터 을 보호 할 수 있습니다.

Client-Side Prediction

예측

이를 확인하기 위해 서버를 기다리지 않고 지역 플레이어의 행동의 효과를 예측 클라이언트의 개념입니다. 일치 또는 잘못된 일치가 감지 될 때까지 엔티티의 예상 상태가 으로 도착할 때 서버 명령에 대해 테스트됩니다. 명령이 전송 될 때

Lag Compensation

지연 보상 [사용자 입력을 프로세싱 할 때 플레이어 톱을 확인하기 위해서, 시간을 되감기 플레이어의 지연 를 사용하여 서버의 개념이며 . 예측과 함께 지연 보상을 사용하면 네트워크 대기 시간을 지점까지 거의 없앨 수 있으므로 공격자의 관점에서 거의 제거 할 수 있습니다.

  • 는 원칙들이 UDP하는 것처럼 TCP에 적용 및 구현에 차이가있을 것이다합니까? 엔티티 보간은 패킷 손실로부터 보호 할 필요는 없지만 그것에 대해 보호 할 필요가 있음을 알 수 있습니다.

  • UDP와 Node.js를 사용하여 서버와 웹 브라우저간에 통신 할 수 있습니까?

  • 이 논문은 10 년이 넘었으므로 이들 원칙은 여전히 ​​사용 중이며 다른 기술이 등장 했습니까?

어떤 도움을 주시면 감사하겠습니다.

답변

2
  • UDP에 적용되는 것처럼 TCP에 적용되는 원칙이 구현에 어떤 차이가 있습니까? 엔티티 보간은 패킷 손실로부터 보호 할 필요는 없지만 그것에 대해 보호 할 필요가 있음을 알 수 있습니다.

패킷 손실을 처리 할 필요는 없지만 더 긴 전송 시간을 처리해야합니다. TCP는 UDP보다 느리고 실시간 멀티 플레이어에서이를 완화해야합니다. 나는이 원칙들이 여전히 근본적인 수준에 적용된다고 생각할 것이다.

  • UDP와 Node.js를 사용하여 서버와 웹 브라우저간에 통신 할 수 있습니까?

일반적으로 말해서, 아직 없습니다. 최소한 브라우저 확장이나 플러그인의 형태가없는 것은 아닙니다. WebSocket은 TCP를 사용합니다. 즉, WebRTC (더 구체적으로 PeerConnection API)가 출시 될 것이라고합니다. 데이터 채널이 구현 될 때 이론적으로 UDP 통신이 가능해야합니다.

  • 이 논문은 10 년이 넘었으므로 이러한 원칙은 여전히 ​​사용되고 있습니까? 아니면 다른 기술이 있습니까?

내가 더 이상 사용하지 않는다고 들으면 놀랄 것입니다. 인용 한 기사는 게임 프로그래머를 위해 실제로 읽어야합니다. 몇 년 동안이 분야의 발전에 세심한주의를 기울이지는 않았지만, 새로운 기법이 나타나지 않았다.

관련 문제