보간법 vs. 보외법

멀티플레이어 게임을 고려할 때 네트워크 개체를 동기화 상태로 유지하는 것이 문제의 일부일 뿐입니다. 가장 두드러진 문제 중 하나는 lag 이며, 다른 말로하면 한 플레이어로부터 업데이트되는 데 걸리는 시간이 다른 플레이어에게 도착하며, 어떤 극단적인 경우에는 등장 캐릭터가 "텔레포트" 이동이나 심지어 극한의 상황으로 이어질 수 있다는 것입니다.

이러한 경우를 완화하기 위해 Photon Bolt는 (i)보간(보간된 스냅샷)과 (ii) 보외(데드 레코닝) 두 가지 전략으로 게임 경험을 최대한 유지하려고 합니다. 기본 목적은 동일합니다. 화면에서 원격 플레이어 캐릭터를 부드럽게 움직이려고하는 것이지만 두 방식은 매우 다르게 움직입니다.

Bolt는 아래에 설명된 바와 같이 위치 및/또는 회전 정보를 동기화하는 데 주로 사용되는 특정 유형의 엔티티에 대해 이러한 알고리즘을 지원합니다.

속성 유형 보간법 보외법
Array
Float
Quaternion
Vector
Transform

보간법

또한 Interpolated Snapshots(IS)라고도 하며, 간단한 원칙을 따르며, 오래되었지만 알려진 두 위치를 선택하고 캐릭터 사이를 이동하는 방식으로 작동합니다. 이를 위해 Bolt는 현재 값과 마지막 유효 값 사이의 원활한 전환을 계산하는 데 사용되는 제한된 기록 데이터(예: 엔티티 위치와 회전을 나타낼 수 있음)를 유지합니다.

예를 들어, 엔티티의 Transform 속성을 동기화하기 위해 이 기술을 사용할 때, 대부분의 경우 이미 알려진 원격 객체의 위치만 렌더링되고 몇 가지 경우에는 해당 객체가 위치에 고정되는 것처럼, 각 플레이어의 세계를 매우 정확하게 표현한다는 점에서 잇점이 있습니다.

보간법의 단점은 렌더링 객체의 지연이 미리 설정된 양만큼 필요한데, 클라이언트에 표시된 객체는 가장 최근의 값을 나타내므로 플레이어가 실제 게임 상태(간격이 작더라도)보다 항상 뒤떨어져 있다는 의미이기 때문에, 이는 lerp 를 올바르게 수행해야 한다는 것입니다. 또한 각 엔티티에 대해 각 클라이언트에서 알고리즘을 실행해야 하며 각 속성을 사용하도록 설정해야 합니다. 따라서 이 알고리즘을 주의하여 사용하는 것이 좋습니다.

Back To Top

보외범

보외법은 비주기적 상태 업데이트에 대한 인식을 줄이는 데 사용되는 또 다른 방법입니다. 때로는 Dead Reckoning, 데드 레코닝(DR)이라고도 하는 이 방법은 게임 물체의 마지막 위치, 회전 및 속도를 고려하여 미래의 엔티티를 예측합니다. 플레이어가 세 번째 프레임마다 패킷을 전송하는 경우, 해당 패킷에 우리 객체의 현재 위치, 회전 및 속도가 포함되어 있다면, Bolt의 보외법 알고리즘은 새로운 정보가 도착할 때까지 다음 세 프레임에 대한 객체의 위치를 추론할 수 있습니다.

이 경우 중요한 요인은 세 번째 프레임으로 보외법으로했을 때 새 패킷이 도착하지 않았다면 동일한 알고리즘으로 계속 추측할 수 있다는 것입니다. 물론, 미래에는 우리가 틀릴 가능성이 높을수록, DR 알고리즘은 실제 데이터가 도착하면 수정하기 위해 예측 속도 혼합이라는 것을 사용합니다.

보외법을 사용하는 것의 장점은 패킷에 인위적인 지연이 필요하지 않다는 것입니다. 또는 최소한 필요한 것은 거의 없습니다. 이렇게 하면 게임이 플레이어에게 더 빨리 전달될 수 있고 보간법과 동일한 유형의 인위적인 lag를 도입하지 않습니다. 또한 손실된 패킷이나 건너뛴 패킷(특정 엔티티 위치, 회전 및 속도에 대한 정보가 없는 경우)을 투명하게 처리하므로 플레이어가 많은 게임을 처리할 때도 훨씬 좋습니다.

DR의 비용은 IS만큼 정확하지 않으며, FPS 게임과 같이 권위 있는 lag 보상 촬영을 원하는 경우 사용하기가 어려울 수 있습니다. 보외법(추정)의 특성상 보간 값을 사용하는 경우 각 플레이어의 화면에서 상황이 좀 더 다르게 보일 수 있는 것으로 움직이는 플레이어를 똑바로 조준해도 맞출 수 없다는 뜻입니다.

Back To Top

부드러운 알고리즘 선택

Bolt 엔티티 상태의 새로운 속성을 생성할 때 속성 유형(여기에 있음)에 따라 사용 가능한 스무딩 알고리즘 중 하나를 선택할 수 있습니다:

Smoothing Algorightm selection
Smoothing 알고리즘 선택.

보간법 옵션을 선택하면 별도의 설정이 필요 없으며, Bolt가 알고리즘 실행을 처리하지만, 보외법 기술을 선택할 때는 다음과 같이 일부 파라미터를 변경할 수 있습니다.

  • Extrapolation 속도: : 게임 객체의 속도를 입력하거나 계산할 위치로부터 선택합니다: (i) 위치에서 계산 차이, (ii) Rigidbody에서 복사, (iiii) Rigidbody2D에서 복사 또는 (iv) CharacterController에서 복사 컴포넌트.
  • Extrapolation 설정: 매끄러움 없이 데이터를 설정하기 위해 예측 값과 실제 값 사이의 추정 및 오류 허용오차를 향후에 구성할 최대 프레임 수를 설정합니다.

Extrapolation Algorithm settings.
Extrapolation 알고리즘 설정.

기술문서 TOP으로 돌아가기