더북(TheBook)

5.3 레이턴시 마스킹

 

 

여러분이 게임을 이렇게 작동하게 만들었다고 치겠습니다.

1. 클라이언트에서 플레이어 캐릭터를 조종하는 명령을 서버에 보냅니다.

2. 서버에서는 플레이어 캐릭터의 이동 연산을 합니다.

3. 일정 시간(1/30~1/10초)마다 클라이언트에 이동 정보 메시지를 보냅니다.

4. 클라이언트는 이동 정보 메시지를 받으면 추측항법으로 플레이어 캐릭터 위치를 부드럽게 만든 후 업데이트합니다.

p237

▲ 그림 5-10 여러분이 만든 게임이 이렇게 작동 중이라고 가정

 

이렇게 만들어 놓고 실제로 게임을 플레이해 보면 인터넷 환경이 그다지 빠르지 않을 때 답답함을 느낍니다. 플레이어가 캐릭터를 이동하는 방향키를 누르면, 플레이어 캐릭터가 즉시 움직이지 않고 약간의 지연 시간 후 움직이기 때문입니다. 방향키에서 손을 떼면 플레이어 캐릭터는 즉시 멈추지 않고 조금 있다가 멈춥니다. 플레이어가 입력한 명령이 서버를 거쳐 다시 도착할 때까지 시간이 걸리기 때문입니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.