2014-03-25 3 views
0

저는 자체적 인 서버/클라이언트 실시간 멀티 플레이어 게임 아키텍처를 개발하려고합니다. 서버 업데이트 때마다 업데이트 패킷을 보낼 수 없다는 것을 알고 있습니다 (높은 CPU & 대역폭 제한). 내 질문은 로컬 네트워크/인터넷의 모든 클라이언트에 매초마다 얼마나 많은 업데이트를 보내야합니까?멀티 플레이어 게임 (또는 전송 빈도)에서 초당 몇 개의 "월드 스냅 샷 패킷"을 보내야합니까?

+0

나는이 질문을 생각하지 않습니다를 (클라이언트가 작동 할 최소한의 동적 데이터를 필요로 할) 보낼 필요가 패킷의 양을 최소화하는 방법을 생각하는 것을 시도해야는 하나 일반적으로있다 산술 대답 .. – nos

+0

세계에서 다른 일을하는 건 어때? 로컬 네트워크 게임에서 서버 업데이트 속도 (예 : 초당 60fps -> 60 회 업데이트)로 보낼 수 있습니까? – daddylonglegs

답변

1

난 당신이 각 연결 (소켓 클라이언트)를 모니터링하고 적응해야 할 생각

... 클라이언트 나 활동의 급격한 피크에 대한 대역폭 마진을 유지하면서 서버 중 하나를 질식 없이는 가능한 한 많은 수신 할 수있는 데이터의 양 - 서버의 소켓에 쓰는 데 걸리는 시간을 모니터링하여 클라이언트 당 초당 메시지 수를 조정해야합니다.

로컬 네트워크에서 UDP를 통해 모든 "공용 환경"패킷 (즉 공개 채팅, 공개 이벤트)을 보낼 수 있습니다 (네트워크로드가 많은 경우 일부 패킷은 삭제되지만 큰 문제는 아닙니다). 잃어버린 udp 패킷의 재 게시를 처리하는 것은 까다로울 수 있습니다 (임시 정상 TCP 호출로 수행 할 수 있음). 공개 환경 패킷은 동일한 영역의 모든 플레이어에게 전송되는 패킷입니다. udp를 사용하면 플레이어 당 한 번만 보내는 대신 모든 플레이어에게 한 번만 보낼 수 있습니다. 일반적으로

당신이