닫기버튼


상단 배너 영역


취재

[NDC22] 넥슨 '카트라이더: 드리프트', 네트워크 지연시간 줄이기 위해 머신러닝 활용

페이스북 트위터 기사제보

컴퓨터가 데이터를 분석해 스스로 학습하고 규칙을 형성할 수 있는 '머신러닝'은 게임 개발에서도 매우 활발하게 활용되고 있는 인공지능이다. 머신러닝을 통해서 보다 폭넓은 데이터를 분석할 수 있을 뿐만 아니라, 빠른 시간 내에 가장 효율적이고 적합한 답을 찾는 것이 가능하다.

'넥슨 개발자 콘퍼런스 2022(이하 NDC 2022)'에서는 넥슨의 캐주얼 레이싱 게임 '카트라이더: 드리프트'에 활용되고 있는 머신러닝에 대해 소개했다. 발표자로는 니트로 스튜디오에서 카트라이더: 드리프트를 개발하고 있는 RND 유닛 소속 김진호 개발자가 나섰다.

김진호 개발자는 '<카트라이더: 드리프트> 머신러닝을 활용한 위치 예측 개선'이라는 주제로 발표했으며, 해당 발표를 통해 위치 예측의 필요성과 머신러닝으로 어떤 문제를 해결해야하는지에 대해 소개했다. 또한 머신러닝을 통해 만든 모델 간 비교를 통해 이해를 도왔다.

일반적으로 온라인 게임은 서버를 통해서 위치 정보를 전달받게 됨에 따라 레이턴시(네트워크 지연 시간)가 발생할 수 밖에 없다. 이에 실제 유저 간의 위치 정보는 서버를 거쳐서 데이터를 주고 받기에 이동이 동시에 이뤄질 수 없다는 문제가 있다. 온라인 게임 개발 시에 레이턴시를 고려해야하는 것은 당연한 것이다.

곡선, 즉 커브 구간 주행 시에는 속도를 최대한 유지하기 위해 드리프트를 사용하게 되는데, 인터넷 환경이 원활할 때에는 등속 예측 모델을 적용 시에 큰 오차없이 경로를 따라가나, 인터넷 상태가 좋지 못할 때에는 경로를 벗어나는 현상이 발생한다. 즉 등속 예측 모델의 경로가 레이턴시에 따라서 크게 차이가 나게 되는 것이다. 

따라서 카트라이더: 드리프트의 경우, 상대의 현재 카트 위치를 예측해서 표시하면서 이러한 레이턴시의 간극을 메웠다. 좀 더 정확하게는 레이턴시를 극복하기 위해 등속 예측 모델을 사용했다. 등속 예측 모델은 과거 카트의 위치와 속도를 통해 예측하는 것으로, 동속 운동 공식을 사용해 패킷에 기록된 시간 이후로 일정하게 카트의 과거 속도로 이동한 것을 계산한다.

이는 기존작 크레이지 레이싱 카트라이더와 신작 카트라이더: 드리프트의 가장 큰 차이점 중 하나라 할 수 있다. 크레이지 레이싱 카트라이더는 국가별로 서버가 있기에 레이턴시 20ms 이하로 플레이할 수 있는 반면에 카트라이더: 드리프트는 글로벌 서비스를 목표로 하고 있고 데디케이티드 서버 구조를 사용함에 따라 국내 유저끼리 매칭이 된다고 하더라도 약 50ms의 레이턴시가 발생한다.

주행과 관련된 파라미터가 매우 다양하기에 이와 같은 문제를 수정하면서 테스트하는 것에는 무리가 있었으며, 머신러닝 기술을 활용해 접근해보는 시도가 이뤄졌다. 머신러닝을 통해 레이턴시 100ms 수준에서도 자연스러운 주행이 가능한 모델을 만드는 것과 매 프레임 예측이 필요한 만큼 연산량을 최소화하는 것에 초점을 맞췄다. 또 패킷에 포함된 데이터는 무엇이어야 하는지에 대해 고려했다.

이에 패킷을 보낸 시간, 위치, 속도, 각속도, 방향, 키 입력 상태, 드리프트 상태 등의 데이터를 고려했으며, 드리프트를 사용할 때 일정 시간 후의 위치를 예측하는 것이 아니라 일정 시간 동안 움직인 위치 변화량을 예측하는 모델을 만들게 됐다.

실제 개발 과정에서는 10여 가지가 넘는 모델을 테스트해봤으며, 대표적으로 선형 회귀 모델이 있다. 기존의 속도 피처만 사용하고 있는 등속 예측 모델에 더 많은 피처를 시계열 분석에서 많이 활용되는 ARIMA 모형으로 분석했으며 결과적으로 오차가 70% 정도 개선할 수 있었다. 선형 회귀 모델은 연산량이 적고 오차가 줄어들었으나, 비선형적 데이터로 인해 한계에 부딪혔다. 

이를 해결할 방법으로 딥러닝을 활용했으며 딥러닝 은닉층에 활성화 함수를 사용해 문제를 풀어나갔다. LSTM 및 CNN 구조로 시도를 했으나 연산량이 많아져 과도하게 CPU를 사용하게 됐으며, DNN 구조로 실험을 시작했다. 시행착오 끝에 Leaky ReLU 모델을 활용했으며 모델을 가볍게 하기 위해 중요한 정보를 추출할 때 사용하는 GLU 활성화 함수를 개선책으로 활용했다.

즉 Leaky ReLU 함수를 기본적으로 사용하면서 데이터가 너무 발산하는 것을 막기 위해서 GLU 함수를 섞었으며, 초기 입력을 출력에 연결시키는 Skip Connection 구조를 추가해 DNN-GLU 모델을 완성시켰다.

카트라이더: 드리프트의 지난 3차 CBT 진행 결과, 레이턴시가 200ms를 넘기도 했으며 DNN-GLU 모델을 적용하더라도 위치 예측의 오차가 크게 발생했다. 이에 카트라이더: 드리프트를 개발하고 있는 니트로 스튜디오는 해당 문제를 개선하고 해결하기 위해 노력중이며 실력이 비슷한 유저들의 플레이 패턴과 맵의 특징을 분석해 드리프트 타이밍을 미리 예측하는 등 보다 진화된 모델을 만들기 위해 노력하고 있다.

끝으로 김진호 개발자는 "유저분들이 게임을 보다 재미있게 플레이하실 수 있도록 카트라이더: 드리프트의 데이터를 활용한 다양한 작업을 준비하고 있다"라고 전했다.

한편 카트라이더: 드리프트는 2022년 하반기 중 출시될 넥슨의 신작으로, 17년 동안 전세계 많은 게이머로부터 사랑받은 '크레이지 레이싱 카트라이더'의 정통 후속작이다. 카트라이더: 드리프트는 글로벌 서비스를 목표로하는 크로스 플랫폼 게임이며 지난 12월 3차 CBT를 진행하면서 완성도를 끌어올리고 있다.

[이시영 기자 banshee@chosun.com] [gamechosun.co.kr]

이시영 기자의

ⓒ기사의 저작권은 게임조선에 있습니다. 허락없이 무단으로 기사 내용 전제 및 다운로드 링크배포를 금지합니다.

최신 기사

주간 인기 기사

게임조선 회원님의 의견 (총 0개) ※ 새로고침은 5초에 한번씩 실행 됩니다.

새로고침

0/500자

목록 위로 로그인


게임조선 소개및 약관