답변:
글쎄요, 이 책이 있습니다.이 책 은 지금 조금 낡았지만, 실제로 읽지는 못했지만, 유명한 출판사에서 온 것입니다. 나는 또한 이것이 새로운 것을 찾았 지만 전에는 들어 본 적이 없다. 둘 다 MMO (또는 최소한 온라인) 게임 개발 문제를 다루고 있다고 주장합니다. 즉, 클라이언트 측 예측은 동시 플레이어 규모에 관계없이 거의 동일하며 Google에는 이에 대한 많은 정보가 있습니다 .
실용적 관점에서 볼 때 인디 / 취미 개발자 는 "대규모"로 간주 될만큼 이론상 최대 동시성을 달성 할만큼 충분한 플레이어 를 확보 할 수있을 정도로 인기있는 게임을 만드는 것이 다소 어렵다는 것을 인식하는 것이 중요합니다 .그러나이 기술은 여전히 연구 교육이 될 수 있습니다.
할 수있는 일에는 크게 두 가지 분류가 있습니다.
두 번째는 실제로 게임 디자인 및 사회적 조작 문제입니다. 멀티 플레이어 게임은 본질적으로 사회적이기 때문에 특히 까다로워서 매력적이기 때문에 플레이어 무리를 너무 낙담시키고 싶지 않습니다. 다른 한편으로, 세계의 모든 사람들이 게임에서 최고의 전리품을 떨어 뜨리는 사람을 스폰 캠핑하는 게임은 확장하기가 어려울 것입니다.
첫 번째 옵션으로는 계층화 된 메시징을 고려할 수 있습니다. 직책과 같이 항상 알아야하는 다른 플레이어에 대한 몇 가지 사항이 있습니다. 그러나 건강과 같은 다른 것들은 현재 플레이어가 아직 볼 수없는 물체에 중요하지 않을 수 있으므로, 근처에있는 다른 모든 엔티티의 상대 거리에 따라 플레이어에게 보내는 것을 게이트합니다. 질문의 마지막 부분에서 언급 한 바와 같이 전송하는 데이터와 필터링합니다.
매우 큰 규모의 멀티 플레이어 아키텍처는 즉각적인 조치가 필요없는 보고서를 버퍼링합니다. 서버로 전송 된 문자 저장 메시지는 델타에서 수행 할 수 있으며 중요 지점에서만 전체 업데이트가 가능하며 이러한 업데이트는 제한 서버에서 버퍼링되어 실제로 문자 데이터를 안정적으로 유지하는 서버로 전송됩니다. 정기적 인 방식-플레이어의 기본 규모에 따라 디스크 트래픽과 네트워크 트래픽 최적화에 대해 걱정해야합니다. 캐릭터 데이터베이스가 쓰러지는 것을 원하지 않습니다.
MMO 이외의 게임에서와 마찬가지로 패킷 속도와 크기는 게임마다 크게 다릅니다. 실제로 요구 사항에 따라 다르며 일반화 된 표준이 없습니다.
위의 답변 외에도 TCP_NODELAY와 창 크기 조정 작동 방법을 읽으십시오. TCP의 세부 사항을 이해하고 (그렇습니다. 순서에 관계없이 도착하는 차등 업데이트를 처리 할 가능성이 없다면 TCP가 아닌 UDP를 사용하고 싶습니다) 재전송은 대기 시간 제어에 중요합니다.