테크레시피

카운터스트라이크 10년 버그 원인 해결책은?

FPS 게임인 카운터스트라이크(Counter-Strike)에 대해선 다수 보고가 이뤄지며 리메이크 작품에 해당하는 CS : GO(Counter-Strike:Global Offensive)와 업데이트 버전인 CS2(Counter-Strike2)에서도 볼 수 있는 특수한 버그가 있다. 게이머를 오랫동안 괴롭혀온 이 버그에 대한 근본적인 해결책을 발견해 카운터스트라이크 시리즈 커뮤니티 운영을 해온 소프트웨어 엔지니어가 버그에 대해 해설해 눈길을 끈다.

이 엔지니어(Freudensprung)에 따르면 특정 상황 하에서 카운터스트라이크 시리즈를 실행해 플레이하면 에러(No user logon)가 발생한다고 한다. 이 버그는 2008년경부터 전 세계에서 보고되어 왔으며 개발사인 밸브는 이를 수정하지 않았다고 한다. 인터넷 상에선 이 에러를 해결하는 몇 가지 방법 식 기사가 넘쳤고 게임 재설치나 파일 검증 등을 해결책으로 들었지만 버그를 근본적으로 해결하는데 이르지는 않았고 일시적으로 개선할 뿐이라는 지적이다.

이를 해결하는 방법은 의외로 간단해 게임을 실행하고 메인 메뉴에서 10초 기다리는 것이라고 한다. 보고에 따르면 커뮤니티에서도 같은 버그가 다수 보고되어 이미 100회 이상 조사했음에도 원인을 특정할 수 없는 문제였다고 한다. 버그에 시달리던 중 게이머가 게임에 접속하고 2∼3분 뒤 발생하는 경우가 많은 경향, 자신의 스킨이 표시되는데 몇 분 지연이 발생했다는 말에서 힌트를 얻어 가설을 세웠다고 한다.

이 가설은 밸브가 게임 내에서 스킨 표시에 부정이 없는지 사용자 ID를 검증하고 있는 게 아니냐는 것이었다. 실제로 게임 서버 로그를 확인한 결과 접속 1분 20초 뒤 사용자 ID를 검증하는 모습이 보였다고 한다.

더구나 이전에 유출된 CS : GO 소스코드를 조사하자 Steam3이라는 서버가 사용자 인증을 실시하고 있을 가능성이 부상했다. 이 서버는 매치메이킹을 실시하는 서버와는 별개로 단지 인증을 위해서만 존재하는 서버로 보인다.

또 문제를 확인한 결과 Steam3은 CS2.exe 같은 머신 상에서 실행되는 Steam.exe를 통해 Steam3에 접속하면 사용자를 올바르게 인증하는 처리를 하고 있는 것으로 판명됐다. 따라서 게임 외부 브라우저에서 게임에 연결하거나 스팀 친구 목록에서 게임 외부 친구와 일치하거나 게임이 시작되지 않은 상태에서 스팀 브라우저 프로토콜(steam://connect/127.0.0.1 :27015)을 이용해 수동으로 서버에 연결하면 높은 확률로 버그가 발생한다.

이 엔지니어는 10초간 기다리는 솔루션이 사용자 99%에게 효과적이라고 확신하지만 여기에서 다루지 않은 다른 이유로 오류 영향을 받는 사용자는 상당히 적다고 밝혔다. 관련 내용은 이곳에서 확인할 수 있다.

추천기사