d라이브러리









엇, 이게 죽어? ‘랙’ 없는 온라인 게임 가능할까

 

‘호다다다닫다닥’.
적의 탄환이 빗발치는 배틀로얄 게임‘배틀그라운드’전장. 총알을 피하기 위해 앞으로 갔다 뒤로 갔다, 점프해서 트리플 악셀까지 선보이며 겨우 벽 뒤로 숨었다. 
‘쩌는 무빙이었어(좋은 움직임이었어)’. 손톱 끝에 총알 한 발만 더 스쳤어도 죽을 뻔한 고비를 넘겼다. 스스로 기특해하며 회복약을 먹으려는 순간,‘으억!’갑자기 화면이 흑백으로 바뀌었다. 카메라는 벽 뒤에서 죽은 내 시체를 비추고 있다.‘분명히 벽 뒤에 숨었는데…’라고 되뇌며 허망하게 모니터를 바라보지만 게임의 결과는 되돌릴 수 없다.‘아…, 또 랙인 건가.’

 

1ms(밀리초·1ms는 1000분의 1초). 현실에서는 피부로 느끼지 못할 만큼 이 짧은 순간을 온라인 게임에서는 체감할 수 있다. 게임 중 흔히 겪을 수 있는 통신 장애인 래그(Lag), 일명 ‘랙’ 때문이다.


평상시 컴퓨터를 사용할 때는 사용자가 무언가 입력하면 모니터에 바로 결과가 나타난다고 생각한다. 문서를 작성할 때 글자가 바로 탁탁 튀어나오는 것처럼 말이다. 하지만 그 짧은 순간에도 컴퓨터에서는 여러 과정이 수행되고 있다. 


간단히 말해 사람이 키보드로 글자를 입력하면 그로 인해 생긴 전자신호를 컴퓨터가 받아 결과값을 도출한 뒤, 그 결과값을 모니터에 전송해 사람에게 그래픽으로 보여준다. 최근 흔히 사용되는 컴퓨터 사양 기준으로 여기에 걸리는 시간은 수십ms가량 된다. 


그런데 온라인 게임은 여기서 한 단계가 더 추가된다. 사용자(유저)가 키보드로 명령을 내리면 컴퓨터가 그 신호를 받아 처리한 뒤 결과값이 게임 서버로 전송된다. 게임 서버는 같이 게임을 즐기는 다른 사용자들의 입력 신호를 모두 모아 처리한 뒤 그 결과를 각 사용자의 컴퓨터로 보내고, 컴퓨터는 다시 모니터로 보낸다. 여기에는 수~수십ms가 걸리고, 길게는 수백ms까지도 소요된다.


이처럼 사람과 컴퓨터 간, 그리고 개인 컴퓨터와 게임 서버 간에 신호가 오가는 지연시간을 ‘레이턴시(latency)’라고 부른다. 온라인 게임 서비스 기업인 넥슨에서 ‘바람의 나라’ ‘엘소드’ 등 인기 게임을 개발한 오규환 아주대 미디어학과 교수는 “아무리 반응 속도가 빠른 컴퓨터가 나온다 해도 레이턴시가 아예 없는 건 불가능하다”고 말했다.


다만 사용자가 기대한 만큼 빨리 모니터에 결과값이 나타나지 않으면, 즉 레이턴시가 길어지면 사용자는 통신에 장애가 생겼다고 생각하게 된다. 이를 흔히 ‘랙 걸렸다’라고 표현한다(사실 랙은 통신상 레이턴시를 일컫는 또 다른 명칭인 래그의 잘못된 표기법이다). 


오 교수는 “다수가 접속하는 온라인 게임에서는 사용자의 네트워크 회선 속도보다는 사용자 컴퓨터의 처리 속도, 모니터 성능, 개발사의 게임 서버 처리속도가 래그 발생에 더 많은 영향을 미친다”고 말했다.

 

 

유저 레이턴시 따라 크기 바뀌는 장애물

 

게임 개발사는 레이턴시로 인한 유저들의 불편함을 줄이기 위해 다양한 보정 기술을 적용하고 있다. 그런데 레이턴시 문제를 해결하기 위해 주로 사용하는 시간 조정 기법, 즉 유저들의 서로 다른 레이턴시를 일정하게 맞추기 위해 게임 내 시간을 억지로 조정하는 방법은 유저 입장에서 종종 부자연스러운 상황을 만들어낸다. 가령 배틀그라운드 유저가 벽 뒤에 숨은 뒤에 숨기 전 총에 맞은 것이 반영되는 상황이다. 


이병주 KAIST 문화기술대학원 교수팀은 이런 레이턴시 문제를 해결하기 위해 게임 시간이 아닌 게임의 디자인 요소, 즉 장애물의 크기나 형태를 변화시키는 방법을 제안했다. 이 내용은 5월 4일 열린 인간-컴퓨터 상호작용 분야 최고권위 국제 학술대회인 ‘CHI 2019’에서 발표됐다. doi: 10.1145/3290605.3300790


이 교수팀은 ‘플래피 버드(Flappy Bird)’라는 모바일 게임에 이를 적용했다. 플래피 버드는 2013년 출시 직후 100여 개 국가의 앱스토어에서 다운로드 1위를 차지한 인기 게임이다. 


게임 방식은 매우 단순하다. 게임 캐릭터가 계속 앞으로 나아가며 장애물을 마주칠 때마다 점프해 피하는 원버튼 게임(one-button game) 방식이다.


이 교수팀은 우선 이 게임에 온라인 게임과 유사한 레이턴시가 존재하도록 설정했다. 이렇게 설정하면 버튼을 누르고 조금 뒤에야 캐릭터가 점프하기 때문에, 미리 예상해서 버튼을 눌러야 한다. 타이밍 예측에 실패하면 장애물에 걸리기 일쑤다.


연구팀은 이 상태에서 자체 개발한 레이턴시 보정 기법을 적용했다. 그러자 같은 위치에 있던 장애물의 크기가 줄어들었고, 마치 레이턴시가 없는 조건에서 게임을 한 것처럼 장애물을 쉽게 넘어갔다. 이 교수는 “그동안 레이턴시 문제를 해소하기 위해 게임은 그대로 두고 유저마다 다른 레이턴시를 일괄 조절하는 데 초점이 맞춰졌다”며 “이번에는 레이턴시 대신 항상 고정됐던 게임 내 디자인 요소들을 변경했다”고 설명했다.


이는 발상의 전환이었다. 지금까지 게임 공간에서 등장하는 물체는 모두 정해진 크기를 갖고 있다. 캐릭터는 물론이고 건물, 탈 것, 자연물 모두 게임 내 정해진 규격을 갖고 정해진 흐름대로 움직인다.


그런데 이런 물체의 디자인을 변경했다. 왜 그랬는지는 이 교수가 개발한 수학 모델을 통해 유추해 볼 수 있다. 그가 만든 수학 모델에는 게임 내외의 여러 변수들을 적용한 결과로 ‘에러율’이라는 결과값이 나온다. 에러율을 플래피 버드로 설명하자면 장애물에 걸릴 확률이다. 에러율이 0%라면 무조건 장애물을 피할 수 있는 재미없는 게임이 되기 때문에 게임 개발자는 일정한 에러율을 설정해 놓는다. 


이 에러율을 결정하는 게임 내외의 변수는 다양하다. 타깃을 관찰할 수 있도록 주어진 시간, 타깃이 등장하는 주기 등과 같이 ‘게임 내 요소’뿐만 아니라, 유저가 시각 정보를 해독하는 속도, 버튼을 눌러야 하는 타이밍을 포착하는 정확성 등 ‘유저 개인의 능력’도 반영된다. 물론 여기에 유저마다 다른 레이턴시도 주요 변수다.


지금까지 대부분의 게임은 레이턴시를 제외한 다른 변수들은 고정해뒀다. 그 결과 당초 의도한 에러율에 맞추기 위해 게임 개발자가 조절할 수 있는 변수는 레이턴시뿐이었다. 그래서 제각각인 유저들의 레이턴시를 일률적으로 맞추기 위해 게임 시간을 건드린 것이다. 이 교수는 “게임 시계를 되돌려 보정하다보면 유저들의 게임 흐름을 방해할 수밖에 없다”고 설명했다.


이에 이 교수팀은 유저들의 레이턴시 대신 그간 고정된 수치로 여겼던 게임 내 디자인 요소들의 크기를 변경하는 방법을 시험했다. 가령 레이턴시가 긴(컴퓨터 성능이 낮은) 유저의 게임화면에서는 장애물의 크기를 대폭 줄이고, 레이턴시가 짧은(컴퓨터 성능이 좋은) 유저의 게임화면에서는 장애물의 크기를 덜 줄이는 방식이다. 


이런 방식으로 보정을 한 뒤 플래피 버드를 통해 테스트한 결과, 실험 참가자들은 레이턴시가 있어도 마치 없는 것과 같은 게임 결과를 선보였다. 굳이 게임 시간을 건드리지 않아도 레이턴시가 없는 것과 같은 게임 환경이 만들어진 것이다.

 

‘배그’에서는 적군 머리를 크게

 

이 교수는 “이 보정 기술을 플래피 버드처럼 장애물이 고정돼 있거나 움직임을 예측하기 쉬운 게임이 아닌 배틀그라운드처럼 타깃이 예측 불가능하게 움직이는 게임에도 적용할 수 있다”고 말했다. 


이 교수팀은 유저가 총을 발사하기 200ms 전 상황을 눈여겨봤다. 유저들은 적을 발견하면 조준점을 적에게 옮겨 발사하는데, 흔히 조준점이 일직선으로 움직인다고 착각한다. 하지만 사실 대부분의 유저들은 200ms마다 타깃의 움직임을 예측하며 방향을 아주 미세하게 바꾼다. 


이를 인지과학 용어로 ‘간헐적 제어(intermittent control)’라고 부른다. 그렇게 적을 향해 발사하기 200ms 전, 마지막으로 조준점의 방향을 바꾼 시점에 도달했을 때 적의 움직임을 예측하는 것이다. 이 교수는 “200ms라는 시간은 사람이 움직임과 행동을 갑자기 바꾸지 못할 만큼 짧은 순간이라 다음 200ms 뒤의 상황에 대한 예측이 가능하다”고 말했다. 


이로써 발사 200ms 전까지의 적의 움직임을 통해 다음 움직임을 예측한 뒤, 유저의 레이턴시에 따라 게임 내 디자인 요소들의 형태나 크기를 변화시킬 수 있다. 가령 레이턴시가 긴 유저가 적을 조준하는 경우에는 적 캐릭터의 머리를 커 보이게 해 조금 더 맞추기 쉽게 하는 식이다. 


이 교수팀은 유명 슈팅 게임인 ‘카운터 스트라이크’에 이 방법을 적용해 연구 중이며, 첫 번째 결과를 논문 초고 온라인 등록 사이트인 ‘아카이브(ArXiv.org)’에 2018년 6월 게재했다. 현재는 알고리즘을 정교하게 다듬는 중이다. 이 교수는 "게임의 래그 현상 뿐만 아니라 사람들이 좀 더 편리하게 컴퓨터와 상호작용할 수 있는 연구들을 이어갈 것"이라고 말했다. 

2019년 11월 과학동아 정보

  • 서동준 기자 기자

🎓️ 진로 추천

  • 컴퓨터공학
  • 정보·통신공학
  • 게임공학
이 기사를 읽은 분이 본
다른 인기기사는?