현실적인 물리가 장착 된 차량이 장착 된 MMO 게임을 보지 못했는데 왜 고속을 달성 할 수 있습니까? 네트워크 대역폭 제한 때문입니까?
세컨드 라이프에는 차량이 있지만 물리는 나쁘고 최고 속도는 한심합니다.
현실적인 물리가 장착 된 차량이 장착 된 MMO 게임을 보지 못했는데 왜 고속을 달성 할 수 있습니까? 네트워크 대역폭 제한 때문입니까?
세컨드 라이프에는 차량이 있지만 물리는 나쁘고 최고 속도는 한심합니다.
답변:
예, 아니오 (그러나 대부분 아니오)
모든 MMO 게임에는 물리에 영향을주는 몇 가지 제한 사항이 있습니다. 이것들 중 가장 중요한 것은 대기 시간 입니다. 지연 시간은 클라이언트가 서버에 요청을 보내고 응답을받는 데 걸리는 시간입니다. 최상의 상황에서도이 시간은 약 50-100 밀리 초입니다. 실제 세계에서는 최대 500ms가 될 수 있습니다. 즉, 플레이어가 자동차 바퀴를 돌리는 것과 같이 무언가를 할 때마다 100-500ms 후에 게임이 반응하는 것을 볼 수 있습니다.
실제로 100ms는 상당히 많습니다. 지연 시간이 많은 게임은 응답하지 않으며 500ms는 재생할 수없는 느낌입니다. 그렇기 때문에 게임 클라이언트는이 지연 시간을 막기 위해 많은 트릭을 사용합니다. 예를 들어, 플레이어의 자동차는 서버를 기다리지 않고 휠을 돌리는 순간 회전을 시작할 수 있습니다. 그러나 이러한 트릭은 대기 시간 만 마스킹 하므로 실제로 줄일 수는 없습니다.
예를 들어, 자동차에 두 명의 플레이어가 동시에 서로를 향하고 있다고 가정 해 봅시다 . 각 고객은 즉시 자신의 차를 돌리기 시작 합니다. 그러나 코스 변경 정보가 대기 시간으로 인해 클라이언트에 아직 도달하지 않았기 때문에 상대방 플레이어의 자동차는 회전하지 않습니다. 두 선수 모두 행복하게 차를 조종 한 다음 bam! -서버는 실제로 서로 충돌했음을 알았습니다.
이와 같은 상황은 막을 수 없습니다. 우리가 사용하는 영리한 예측 체계, 다른 플레이어가있는 장소에 관계없이 항상 상황이 잘못 될 가능성이 있습니다. MMO 게임에서 방금 본 0.5 초 정도는 아직 실제로 발생하지 않았 으며 언제든지 바뀔 수 있습니다. 이제 전통적인 MMORPG와 같이 느리게 진행되는 게임에서 0.5 초는 그리 길지 않습니다. 이 시간 동안 캐릭터는 한두 미터 만 움직일 수 있습니다. 그러나 우리가 급변하는 자동차 경주에 대해 이야기한다면, 0.5 초는 정말 긴 시간입니다! 당신은 반 초에 세 번처럼 충돌 할 수 있습니다 (-8
실제로, 빠르게 진행되는 게임은 이러한 한계에도 불구하고 작동 할 수 있습니다. 불쾌한 순간이 있지만 모든 플레이어가 좋은 관계를 유지하는 한 게임을 즐길 수 있습니다. 이것이 멀티 플레이어 레이싱 게임의 작동 방식입니다. 그러나 또 다른 MMO 제한이 있습니다 : N- 제곱 업데이트 수.
10 명의 플레이어가 동시에 플레이한다고 상상해보십시오. 그들이 서로를 볼 수 있도록 서버는 다른 모든 플레이어에 대한 모든 플레이어 정보를 보내야합니다. 예를 들어, 10x10 = 100 개의 정보를 준비하여 보내야합니다. 그것은 "N- 제곱"플레이어의 제곱입니다. 이 숫자는 매우 빠르게 증가하며 같은 지역에 많은 플레이어가있을 때 전통적인 MMORPG조차도 어려움을 겪기 시작합니다. 우리의 상상력이 빠른 자동차 게임의 경우 이러한 정보는 느린 게임보다 훨씬 빠르게 전송되어야합니다. 그리고 그들은 아마도 더 커질 것입니다-당신은 위치뿐만 아니라 속도, 가속도, 각속도 등을 보냅니다. 이것은 빠른 멀티 플레이어 게임은 제한된 수의 플레이어만을 가질 수 있음을 의미합니다.
위의 두 문제 는 원칙적으로 소프트웨어로 해결할 수 없으며 어느 정도만 가려져 있습니다. 플레이어 수를 제한하여 조금 줄일 수 있습니다. 예를 들어, 플레이어 수가 적은 경우에만 빠른 자동차를 사용하는 게임이 가능합니다. 나는 그것이 APB가 한 일이라고 믿는다. 그러나 빠른 자동차를 갖춘 완전한 오픈 월드 MMO 게임은 일어나지 않을 것입니다. 퀀텀 엔테 그먼트 네트워크 인터페이스가 나올 때까지는 그렇지 않습니다.
예.
네트워크 대기 시간 및 네트워크에서 게임 상태 동기화를 처리해야합니다. 자동차가 더 빨리 움직일수록 네트워크 대기 시간이 더 두드러집니다. 네트워크 문제로 인해 게임 클라이언트가 서버에서 게임 상태를 업데이트하지 못하여 플레이어가 벽에 충돌 할 수 있습니다. 플레이어가 보행 속도로 움직일 때 문제가되지 않습니다 ;-)
MMO 서버에 더 많은로드가 있습니다. 멀티 플레이어 레이싱 게임은 10 명이 연결되어 있으면 제대로 작동 할 수 있지만 서버가 수백 명의 사용자로부터 과부하로 응답하지 않으면 충돌하고 타 버립니다.
세컨드 라이프의 차량 물리학은 잘못 구현되었습니다. (여전히 살아 있습니까?)
먼저 참고 문헌을 살펴 봅시다.
GTA 자체에는 멀티 플레이어와 관련하여 몇 가지 문제가 있지만 이것은 예상됩니다. 예를 들어 대기 시간이 자동차 추격을 악몽으로 바꾸는 경우입니다. 때때로 플레이어는 대기 시간 때문에 서로를 죽입니다.
그러나 대기 시간이 유일한 문제는 아니며 클라이언트에서만 MMO를 실행할 수 없으며 서버가 필요하며 이러한 서버는 사기꾼을 피하기 위해 모든 물리학이 아니라면 대부분을 관리해야합니다.
따라서 수천 명의 플레이어와 함께 달리기를 상상해보십시오. 물리 집약적 인 활동 중에 CPU에 대한 스트레스도 상상해보십시오. 스트레스의 덩어리를 전용 GPU로 상쇄 할 수 있습니다 . Bullet Physics 에는 CPU에서 실행되는 구현이 있습니다.
그러나 서버의 과부하를 피하려면 플레이어 밀도에 따라 동적 영역 재정의를 처리하는 메커니즘을 구현해야합니다. 이 경우 다른 MMO보다 훨씬 중요합니다.
할 수 있습니다. 여기서 문제는 더 많은 플레이어를 처리하고 서버에 분산 된 게임의 주요 인스턴스를 실행하기 위해 게임을 확장해야한다는 것입니다.
물리학을 최적화하고 서버간에 객체를 빠르고 효율적으로 전송하고 대규모 군중을 피할 수있는 방법을 찾은 경우 (예 : 인스턴스) MMO 특성으로 인해 참조와 유사한 제한과 몇 가지 다른 제한으로 수행 할 수 있습니다. 게임의.
모든 게임 상태 업데이트를 항상 모든 플레이어에게 보낼 필요는 없으며 플레이어와 즉시 관련된 변경 사항 만 지속적으로 보내야하며 나머지는 더 낮은 속도로 보낼 수 있습니다.