현대의 고사양 크로스플랫폼 게임 개발과 라이브 서비스에서 ‘최적화’는 유저 경험을 결정짓는 핵심 요소다. 하지만 플랫폼의 다변화와 복잡해진 그래픽 옵션은 개발진에게 거대한 ‘검증의 벽’으로 다가온다. 정밀한 최적화를 위해서는 동일한 조건에서 수차례 반복 플레이를 하며 데이터를 수집해야 하지만, 한정된 인력으로 이를 수동 검증하는 것은 불가능에 가깝기 때문이다.
넥슨이 주최하는 국내 최대 규모의 게임 개발자 콘퍼런스 '넥슨 개발자 콘퍼런스'가 6월 16일부터 18일까지 사흘간 판교 넥슨 사옥에서 개최됐다. 게임 개발 전반의 노하우가 공유되는 가운데, 넥슨게임즈는 라이브 서비스 중인 루트 슈터 '퍼스트 디센던트'의 개발 과정에서 구축한 자동화 테스트 기술을 공개했다.

17일 진행된 프로그래밍 세션에서는 넥슨게임즈 엔진팀 강장훈 개발자가 '복잡한 게임에 자동화 테스트 하기 - 퍼스트 디센던트 맞춤 Auto Play Test Tool 제작기'를 주제로 발표를 진행했다.
이번 세션에서는 개발팀이 자체 제작한 자동 플레이 테스트 도구 'M1 Auto Play Test(M1 APT)'를 소개했다. 해당 툴은 게임 로그인부터 월드 탐색, 미션 수행, 성능 데이터 수집까지 전 과정을 무인으로 수행하는 퍼스트 디센던트 전용 자동화 시스템이다.

강장훈 개발자는 게임 최적화 작업의 본질은 반복 검증이라고 설명했다. 특정 구간의 성능 문제를 발견하고 개선한 뒤, 동일한 조건에서 다시 플레이하며 결과를 비교하는 과정을 수없이 반복해야 한다는 것이다.
'퍼스트 디센던트'는 PC, PS5, 엑스박스 X|S를 아우르는 크로스플랫폼 게임이다. 라이브 서비스 중 매 빌드마다 다양한 맵과 미션을 플레이하며 성능 데이터를 수집해야 하는데, 개발진 앞에는 두 가지 거대한 벽이 존재했다.
첫 번째는 ‘조합의 벽’이었다. PS5 7가지, 엑스박스 14가지, PC 대략 9가지 등 검증해야 할 플랫폼과 그래픽 옵션 프리셋의 조합만 총 30가지에 달했다. 엔진팀 인력만으로 이 모든 조합을 수동으로 전수 검증하는 것은 물리적으로 한계가 명확했다.
두 번째는 ‘콘솔의 벽’이었다. 오픈 생태계인 PC 플랫폼과 달리, 콘솔 플랫폼은 외부 스크립트나 서드파티 자동화 툴의 도입이 엄격히 제한된다. 오직 공식 SDK에서 지원하는 API만 사용해야 하므로 기존의 대중적인 자동화 도구를 연동하기 어려웠다.
강장훈 프로그래머는 "내가 다른 주 업무를 처리하는 동안, 나를 대신해 로그인부터 월드 탐색, 미션 수행, 성능 프로파일링까지 전 과정을 사람 개입 없이 자동으로 수행해 줄 녀석이 필요했다"며 M1 APT의 개발 배경을 밝혔다.

퍼스트 디센던트는 자동화 테스트 입장에서 상당히 까다로운 게임이다. 경로에는 계단과 점프대가 섞여 있고, 전투가 시작되면 수십 마리의 몬스터가 동시에 등장한다. 심지어 미션 이름조차 업데이트마다 조금씩 바뀐다. 강 개발자는 이런 환경에서는 "완벽한 자동화"보다 "절대 멈추지 않는 자동화"가 중요하다고 강조했다.
이를 위해 M1 APT는 4가지 핵심 파이프라인을 설계해 여러 단계의 예외 처리와 복구 시스템을 갖췄다. 핵심은 경로 탐색(Path Finding), 전투 캐싱(Combat Caching), 미션 타입 판별(Mission Classification), 그리고 전체 테스트를 통제하는 오케스트레이터 구조다.

가장 대표적인 기술은 '3단계 Fallback 경로 탐색'이다. 봇은 기본적으로 표준 내비게이션 메시(NavMesh)를 이용해 길을 찾지만, 실패할 경우 2단계로 끼임 현상을 유발하는 내비게이션 링크(Nav Link) 구간을 제외하고 우회로를 찾는다. 이마저도 막히면 3단계로 높이 변화 구간을 모두 배제한 평지 위주의 경로를 재계산한다.

여기에 캐릭터가 가속도 입력을 유지하고 있으나(Acceleration 존재) 실제 이동 속도가 10cm/s 미만인 누적 시간(NoMoveButAccelTime > 1.5초), 그리고 타겟 지점까지의 남은 거리가 줄어들지 않는 누적 시간(NonDecreasingDistTime > 1.2초)을 체크하여 두 조건이 모두 만족되면 자동으로 텔레포트를 수행해 장애물에서 탈출하도록 만들었다. 완벽한 재현보다 '테스트의 중단 없는 지속'을 우선순위에 둔 설계다.
강 개발자는 "무인 자동화에서 가장 중요한 원칙은 무한 대기 상태가 존재해서는 안 된다는 것"이라며 "어떤 상황에서도 자기 복구하거나 종료할 수 있어야 한다"고 설명했다.
전투 처리 방식도 독특하다. 자동 플레이 봇은 주변 몬스터를 찾아 공격해야 하지만 매 프레임마다 수십 마리의 몬스터를 전부 검색하면 오히려 테스트 툴 자체가 성능에 영향을 줄 수 있다.
전투 처리 방식도 독특하다. 자동 플레이 봇은 주변 몬스터를 찾아 공격해야 하지만 매 프레임마다 수십 마리의 몬스터를 전부 검색하면 오히려 테스트 툴 자체가 성능에 영향을 줄 수 있다.

이를 해결하기 위해 개발팀은 'K-Closest 캐싱' 방식을 도입했다. 캐시가 비어있을 때만 전체 스캔을 진행하고, 이후에는 캐시된 K개의 타겟에 대해서만 거리를 재계산하고 정렬하는 구조로 CPU 오버헤드를 극적으로 낮췄다.
또한 미션 이름이 업데이트마다 조금씩 변경되는 문제를 해결하기 위해 문자열 유사도를 계산하는 '레벤슈타인(Levenshtein) 알고리즘'도 적용했다. 단순 문자열 비교 대신 편집 거리를 계산해 75% 이상 유사하면 같은 미션 유형으로 판정하도록 설계했다. 덕분에 개발자가 사소한 오타를 입력하거나 미션 명칭이 변경되더라도 자동 테스트가 중단되지 않는다.

콘솔 플랫폼은 피델리티, 밸런스, 퍼포먼스 등의 프리셋과 FG(프레임 생성), RT(레이 트레이싱), 모션 블러 토글을 커맨드라인 한 줄로 자동 세팅할 수 있게 구조화했다. PC 역시 13개의 스케일러빌리티 옵션을 한 번에 제어한다.
전체 아키텍처는 FM1AutoPlayTestModule, 오케스트레이터 아래에 로그인/월드 진입 도우미, 성능 프로파일링, 미션 자동 수행, 필드 맵 순회 매니저를 독립적으로 배치했다. 각 매니저는 테스트 사이클마다 데이터를 깔끔하게 초기화할 수 있어 이전 테스트의 영향 없이 청결한 무인 반복 수행이 가능하다.

M1 APT는 단순히 플레이만 하는 봇이 아니다. 테스트를 진행하는 동안 메모리 사용량과 VRAM 점유율, 스트리밍 풀 사용량, CPU·GPU 프레임 타임, 드로우콜 수, 플레이어 위치 데이터 등을 자동으로 수집한다. 이 데이터는 실시간으로 CSV 파일에 기록되며 이후 파이썬 기반 분석 툴을 통해 자동 리포트로 변환된다. 개발자는 직접 게임을 플레이하지 않아도 특정 빌드의 성능 변화와 병목 구간을 비교할 수 있다. 발표에서는 실제로 Render Thread Time이 지속적으로 개선되는 과정을 자동 수집 데이터로 확인한 사례도 공개됐다.
현재 M1 APT는 PC와 콘솔 플랫폼에서 정기적으로 무인 테스트를 수행하며, 성능 데이터를 자동 수집하고 분석 리포트를 생성하는 데 활용되고 있다.

다만, 강장훈 개발자는 자동 플레이 테스트가 사람을 완전히 대체할 수는 없다고 설명했다. 반복 재현과 데이터 수집, 장시간 테스트는 자동화가 훨씬 효율적이지만 화면이 깨지거나 텍스트가 뚫리는 등 그래픽 오류나 연출 이상 여부를 판단하는 것은 여전히 사람의 영역이라는 것이다.


그는 "자동화 봇은 수동 테스트의 대체가 아니라 '보완'의 영역"이라며, "봇이 지루하고 정량적인 반복 데이터 수집을 담당하고, 사람은 봇이 걷어온 데이터를 바탕으로 정성적인 시각 버그나 최종 아트 퀄리티를 판단하는 분업 구조를 만드는 것이 핵심"이라고 강조했다. 물론 그의 도전은 계속 이어져 향후에는 스크린샷 자동 비교 검토, 테스트 영상 자동 녹화, 미션 전략 모듈화 등을 추가해 한계를 극복해 나갈 예정이다.
강 개발자는 발표를 마무리하며 라이브 서비스의 폭풍 속에서 자동화 테스트 툴을 성공적으로 안착시킬 수 있었던 비결로 두 가지를 꼽았다.
첫째는 직관이 아닌 객관적 근거를 확보한 ‘데이터 기반 최적화 세계’의 구축이고, 둘째는 완벽한 설계보다 중요한 ‘일단 해보자’라는 태도와 ‘멈추지 않는 시도’였다. 처음부터 완벽한 자동화 시스템을 꿈꿨다면 변수가 가득한 크로스플랫폼 환경 앞에서 시작조차 하지 못했을 것이다. 매 순간 발생하는 예외 상황과 봇의 멈춤 현상을 치열하게 고민하고 3단계 Fallback, 유사도 매칭 등의 우회로를 하나씩 더해간 여정 자체가 '퍼스트 디센던트'의 든든한 기술적 자산이 되었다.
[홍이표 기자 siriused@chosun.com] [gamechosun.co.kr]
ⓒ기사의 저작권은 게임조선에 있습니다. 허락없이 무단으로 기사 내용 전제 및 다운로드 링크배포를 금지합니다.

몬길:스타다이브 

