더북(TheBook)

1.2.6 이동 관리자

이동 관리자(move manager)의 역할은 플레이어의 이동 데이터를 최대한 빨리 전송하는 것이다. 템포가 빠른 멀티플레이어 게임을 즐겨본 독자라면, 이러한 장르의 게임에서 정확한 이동 정보가 치명적 요소라는데 충분히 공감할 것이다. 적 플레이어의 위치 정보가 더디게 수신되면 아무리 정조준해서 사격해도 목표의 현재 위치 대신 과거 위치에 대고 사격하는 꼴이며, 이는 실제로 겪어보면 그저 황당할 따름이다. 레이턴시를 줄여 플레이어가 지연을 느끼지 못할 정도로 이동 정보를 빠르게 갱신해 줘야 한다.

이동 관리자는 초당 30프레임7의 빠른 속도로 입력 캡처를 수행하여 데이터를 생성하는데, 이 데이터에는 높은 우선순위가 부여된다. 1초에 30건씩 입력 정보가 쌓이므로, 이 중에서 가장 최신의 정보를 가능한 한 빨리 보내줘야 하기 때문이다. 이동 데이터를 내려보내면 스트림 관리자는 다른 것보다 가장 먼저 이동 데이터를 챙겨 내보낼 패킷 앞에 끼워 보내는데, 이동 데이터의 우선순위가 가장 높기 때문에 이렇게 동작하는 것이다. 각 클라이언트의 이동 관리자는 이 같은 방식으로 각자 자신의 이동 정보를 서버에 송신해야 한다. 아울러 서버는 수신한 정보를 게임 시뮬레이션에 반영하고, 클라이언트에게 이동 정보를 잘 받았다고 확인응답해 주어야 한다.

 


 

7  역주 프레임 빈도는 게임마다 다르게 잡는다. 동체 시력을 가진 유저를 위한 격투 게임은 60프레임도 모자랄 지경이다.

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