해결책
GTA 온라인의 악명 높은 긴 로딩 시간은 플레이어들 사이에서 늘 웃음거리였다. 게임에 진입하기 전 로딩 화면을 6분 넘게 바라봐야 했다. 2021년 3월, t0st라는 이름의 코더는 이에 지쳐 게임을 분해해 자신만의 수정안을 만들었다.
원인은 지극히 평범했다. GTA 온라인 개발자들이 수 메가바이트에 달하는 대형 JSON 파일의 데이터를 파싱한 뒤 정렬하는 방식을 택한 것이었다. t0st의 수정안은 그가 직접 한 비공식 벤치마크 기준으로 로딩 시간을 약 70% 줄였으며, 그의 글은 핵심 파싱 및 저장 문제가 "개발자 한 명이면 하루 안에 해결할 수 있는 일"이라고 지적했다.
2주 안에 록스타는 t0st에게 연락해 그가 PC 버전의 로딩 시간에서 실질적인 개선점을 드러냈다는 점을 인정하고, 자사의 버그 바운티 프로그램에 따라 1만 달러를 지급했으며, 향후 타이틀 업데이트에서 변경 사항을 구현하겠다고 약속했다.
이룬 성과
6분의 로딩은 수 메가바이트 JSON 파일에 대한 CPU에 묶인 파싱과 정렬 하나로 귀결되었다. 수년간 눈앞에 숨어 있던 하루짜리 수정이었다.
매번 실행될 때 돌아가는 시작 코드는 눈앞에 숨어 있다. 늘 느렸던 것은 아무도 프로파일링하지 않는다.
수 메가바이트 파일에 대한 비효율적인 파싱과 정렬은 매번 실행 시 플레이어의 대기 시간을 몇 분으로 불어나게 한다.
디스어셈블러를 들고 선입견 없이 접근한 외부인이 며칠 만에 찾아낸 것을 수년간의 일상적 개발은 드러내지 못했다.
당신의 제품에서 가장 느린 것은 아무도 프로파일링한 적 없는 데이터 구조 하나일 수 있다. 그리고 때로는 디스어셈블러를 가진 고객만이 그것을 들여다볼 것이다.
그 후
PC Gamer에 보낸 록스타의 성명은 t0st가 "실제로 로딩 시간과 관련된 게임 코드의 한 측면"을 개선할 수 있음을 드러냈다고 확인했으며, 변경 사항이 향후 타이틀 업데이트에서 배포될 것이라고 밝혔으나 구체적인 시기는 제시하지 않았다. 이 사건은 게임 분야에서 커뮤니티 프로파일링과 버그 바운티 지급 모두의 표준 사례로 자리 잡았다.
근거 확인하기
출처
- Developers to update GTA Online to address poor load times after community fix Ars Technica · arstechnica.com ·