5.3 레이턴시 마스킹
여러분이 게임을 이렇게 작동하게 만들었다고 치겠습니다.
1. 클라이언트에서 플레이어 캐릭터를 조종하는 명령을 서버에 보냅니다.
2. 서버에서는 플레이어 캐릭터의 이동 연산을 합니다.
3. 일정 시간(1/30~1/10초)마다 클라이언트에 이동 정보 메시지를 보냅니다.
4. 클라이언트는 이동 정보 메시지를 받으면 추측항법으로 플레이어 캐릭터 위치를 부드럽게 만든 후 업데이트합니다.
▲ 그림 5-10 여러분이 만든 게임이 이렇게 작동 중이라고 가정
이렇게 만들어 놓고 실제로 게임을 플레이해 보면 인터넷 환경이 그다지 빠르지 않을 때 답답함을 느낍니다. 플레이어가 캐릭터를 이동하는 방향키를 누르면, 플레이어 캐릭터가 즉시 움직이지 않고 약간의 지연 시간 후 움직이기 때문입니다. 방향키에서 손을 떼면 플레이어 캐릭터는 즉시 멈추지 않고 조금 있다가 멈춥니다. 플레이어가 입력한 명령이 서버를 거쳐 다시 도착할 때까지 시간이 걸리기 때문입니다.