공식 포럼 통해 문제 원인 분석 및 개선 방안 내놓아

블리자드 엔터테인먼트가 최근 불거진 ‘디아블로2 레저렉션’의 서버 불안정 문제와 관련해 문제 원인을 분석하고 개선 방안을 내놓았다.

블리자드는 15일 북미 공식 포럼을 통해 “(서버 불안정 문제는) 단일 문제로 발생한 것이 아니다”라며 “각각의 문제를 해결하고, 장기적 구조를 변경해 문제를 해결하고 있다”고 밝혔다. 또한 “캐릭터 진행 손실(롤백)은 몇 분 이내로 제한될 것이며, 이 문제에 대해 계속 노력하겠다”고 덧붙였다.

블리자드에 따르면 일련의 서버 불안정 문제는 ‘레거시 코드(예전에 만든 낡은 코드)’를 유지하는 과정에서 생긴 과부하와 글로벌 데이터베이스에 데이터를 너무 자주 저장하는 방식 때문에 발생했다.

블리자드는 “원작에 충실하기 위해 많은 레거시 코드를 유지했는데, 특정 레거시 코드가 현재 유저들의 행동을 따라잡지 못하고 있다”며 “이 코드는 싱글톤 패턴(매번 새로운 인스턴스를 만들지 않고 하나의 인스턴스를 유지하도록 만든 패턴)이기 때문에 모든 유저가 최근의 게임 목록을 확인할 수 있도록 단 하나의 인스턴스만을 실행한다”고 설명했다.

이어 “이를 해결하기 위해 다양한 최적화를 시도하긴 했지만, 현재 유저들이 게임을 생성하고 종료하는 것을 빠르게 반복한다는 사실을 과소평가했다”고 덧붙였다.

또한 “우리는 전반적으로 글로벌 데이터베이스에 데이터를 너무 자주 저장하고 있다는 것을 깨달았다”며 “예전처럼 이렇게 자주 할 필요가 없다. 지역 데이터베이스에 저장한 후 캐릭터를 해금할 때만 글로벌 데이터베이스에 저장해도 된다. 이 작업을 변경하는 코드를 작성중”이라고 밝혔다.

블리자드는 서버 불안정 문제를 해소하기 위해 한시적으로 유저들의 게임 생성 속도를 제한할 방침이다. 블리자드는 “핀들스킨 런(핀들스킨을 반복해서 잡는 것)을 하는 사람들의 경우 게임을 들락날락하면서 20초마다 새로운 게임을 만들고 있는데, 어느 순간부터 속도에 제한이 걸릴 것”이라며 “이는 서버가 다운됐다는 뜻은 아니며, 일시적으로 과부하를 줄이기 위한 장치다. 이것은 임시 조치이며 장기적인 대책은 아닐 것”이라고 강조했다.

또한 유저들이 한꺼번에 몰리는 것을 방지하기 위해 ‘월드오브워크래프트’와 비슷한 방식의 접속 대기열을 만들고, 중요한 게임 기능을 여러 개의 작은 서비스로 분해해 서버 과부하를 줄일 계획이라고도 전했다.

‘디아블로2 레저렉션’은 20년 전의 고전 명작 ‘디아블로2’를 현대적 감각으로 재해석한 리마스터 버전이다. 9월 말 출시되어 전세계적으로 폭발적인 인기를 끌었으나, 서버 불안정 문제가 반복해서 발생하고 장기간 해결되지 않아 논란을 일으켰다. 일부 유저들은 청와대 국민청원에 불만을 털어놓기도 했다.

관련기사

저작권자 © 게임톡 무단전재 및 재배포 금지