네트워크 게임에서 이동처리에 꼭 UDP를 사용해야하는가?

많은 분들이 UDP가 TCP보다 빠르다고 알고 있습니다. 그것은 사실이 아닙니다.

Nagle알고리즘을 사용하지 않고 네트웍 상에 패킷로스가 발생하지 않는다면 tcp와 udp의 latency는 같습니다.

클라이언트가 주기적으로 자기 위치를 전송하는 방법은 별로 좋은 선택이 아닙니다.

보안문제나 패킷량 문제를 떠나서 게임플레이측면에서 별로 우아하지 않습니다.

당장 그런식으로 처리하는 wsad+마우스 컨트롤 게임에서 마우스를 좌우로 흔들면서 움직여보세요. 다른 클라이언트에서 볼때 완전히 부드럽게 보일수 없습니다.

이동관련 이벤트에 속도와 위치를 Tcp로 보내서 서버,다른 클라이언트 모두 데드레커닝하면 이동경로를 완전히 똑같이 재현할수 있습니다. 지연시간은 있을망정 로컬에서의 캐릭터 이동이 원격에서도 똑같이 재현됩니다.
자기 위치를 초당 n회 전송하는 식으로 처리하니까 UDP가 효율적인거지 처음부터 이벤트 드리븐으로 만들면 UDP 쓸 이유가 없어요.


답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Google+ photo

Google+의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

w

%s에 연결하는 중