서버 동기화 시간

온라인 게임에서는 참여하는 게임 클라이언트 전체를 대상으로 동기화된 시계가 필요합니다. (리얼월드의) 특정 일시에 일어나는 게임 이벤트가 그 예입니다. 그 이벤트가 어떤 플레이어에게는 시작되고 또 어떤 플레이어에게는 시작되지 않는다면 게임 플레이 환경이 망가집니다.

최근에 인터넷에 연결되는 기기 중에는 네트워크에서 동기화되는 시계 메커니즘이 있는 것도 많지만, 대개는 사용자가 네트워크 동기화를 버리고 수동으로 시각을 조정할 수 있기 때문에 기기에서 제공하는 시스템 시각에만 의존할 수는 없습니다. (특히 비동기화된 시계 때문에 속임수를 사용할 여지가 생기기도 합니다.)

Strix Unreal SDK에서는 채널마다 서버 시계와 자동으로 동기화되는 시계가 있으며, 같은 방 서버에 연결하는 클라이언트는 이 동기화된 시각을 공유합니다. 이 시계는 또 클라이언트와 서버 간 왕복 시간(줄여서 RTT 또는 이라고도 함)도 측정합니다. 왕복 시간은 네트워크 지연을 추정하여 부여합니다.

서버 동기화 시간과 관련된 함수에는 다음 네 가지가 있습니다.

GetSynchronizedTime

서버 동기화 시간을 가져옵니다.

GetSyncRTT

클라이언트와 서버 간 왕복 시간을 가져옵니다.

GetSyncTimePeriod

동기화 운영 간 시간을 가져옵니다.

SetSyncTimePeriod

동기화 운영 간 시간을 설정합니다.

참고

10초 간격으로 서버 간에 시각을 동기화합니다. 필요하다면 이 기본 시간을 SetSyncTimePeriod 함수로 바꿀 수 있습니다. 원하는 시간을 밀리초 단위로 입력하면 됩니다. (10초 기본값은 10,000으로 표시됩니다.)

단, 너무 짧게 설정하면 네트워크 트래픽이 커지고 서버 부하가 높아지며, 너무 높게 설정하면 동기화된 시각의 정확도가 떨어집니다.