레벨업과 장비 파밍이 끝난 MMORPG 유저는 뭘 해야 할까. <던전앤파이터>의 코어 유저들이 눈을 돌린 곳은 ‘외형’이다. <던전앤파이터> 경매장에서는 성능 좋은 아바타 보다, 소위 ‘룩 좋은’ 아바타들이 높은 가격에 팔리는 것을 쉽게 볼 수 있다.
캐릭터의 외형을 꾸미는 일이 콘텐츠 급으로 소비되는 데는, 오랜 시간 동안 쌓인 다양한 아바타 덕이 컸다. 2018년 4월까지 인게임에 구현된 아바타는 모두 69,000개 정도다. 더 놀라운 점은 게임이 모든 아바타 이미지를 게임 밖으로 꺼냈다는 점이다. <던전앤파이터>는 현재 웹 캐릭터 검색과 어플리케이션에서 게임 속 아바타를 조합해볼 수 있는 '던파쇼룸' 서비스를 제공하고 있다.
네오플 조종실 <던전앤파이터> 서비스웹팀 최우선 과장은 “까다로운 작업이었지만, 국내 온라인게임 중 유일한 서비스를 만들었다는 자부심도 있다”고 말했다. <던전앤파이터>는 왜 이런 만만치 않은 작업을 하기로 한 걸까. 강연에서 공개된 던파쇼룸의 비하인드 스토리를 정리해봤다./디스이즈게임 김영돈 기자
# "웹에서도 아바타를 입어볼 수 있게 해주세요"
네오플 조종실 <던전앤파이터> 서비스웹팀 최우선 과장은 3년 만에 서울을 찾았다. 네오플이 제주로 이전한 뒤 쭉 <던전앤파이터>의 국내 웹 개발과, 글로벌 북미 버전 런칭에 관여하느라 짬이 나질 않았단다.
바쁜 시간 중 6개월은 ‘던파쇼룸’을 만들며 보냈다. 2017년 8월 업데이트된 던파쇼룸은 게임 아바타를 웹브라우저와 ‘던파ON’ 어플리케이션에서도 입어볼 수 있는 시스템이다.
시작은 간단했다. 게임에서 장착할 수 있는 아바타를 웹에서도 입어보면 좋겠다는 요청 때문이었다. 이는 실제 많은 유저 커뮤니티와, 개발자 동료들이 원했던 기능이었다. 최우선 과장은 "아바타를 쉽게 입히고 조합할 수 있는 서비스를 만드는 일이 <던전앤파이터>의 오랜 숙원 사업으로 불렸을 정도”라고 말했다.
웹 기반 아바타 조합은 단순해 보이지만, 기술적으로 구현하기 어려운 기능이었다. 게임이 이미지를 다루는 방식과 웹 서비스가 이미지를 다루는 방식이 전혀 달랐기 때문이다. 그는 던파쇼룸의 경험이 웹 서비스와 게임 개발 협업의 좋은 사례가 되길 바란다며 강연을 시작했다.
# 3천만 개 넘는 이미지, 전부 만드는 게 최선일까?
게임 이미지를 웹으로 이식하는 작업의 출발은 게임 클라이언트를 뜯는 일이었다. <던전앤파이터>뿐만 아니라 대부분의 게임 파일은 보안과 기술적인 이유로 암호화돼있다. 관련 부서에서 직접 받을 수 있는 이미지도 있었지만, 대부분의 이미지는 복호화 작업을 통해 웹에서 다룰 수 있는 형태로 변환했다.
이 작업이 완료된 후에는 캐릭터를 웹상에 출력하는 기술과 실시간으로 아바타 이미지를 불러와 조합하는 시스템을 구현하려고 했다. 처음 모델로 삼은 아키텍쳐(개발에서 정보를 처리하는 전체적인 구조를 뜻하는 용어)는 서버에 이미지 정보를 담아두고, 유저 브라우저에 전송해 이미지를 조합하는 방식이었다.
최우선 과장은 이 방식이 웹에 노출되는 배너 이미지와 일부 비슷한 방식이라고 설명했다. 웹 서비스에서 익숙했던 방식이므로 정적이고, 구현에 큰 어려움이 없으리라 판단했다.
하지만 이 예상은 완전히 빗나갔다. <던전앤파이터>의 아바타는 너무 방대했기 때문이다.
13년 차 서비스를 맞은 <던전앤파이터>는 긴 서비스 기간 만큼 많은 아바타를 쏟아냈다. 2018년 현재 게임 내 구현된 아바타는 총 6만 9천 개였다. 여기서 그치는 것이 아니라 아바타 1개당 3개의 레이어 파일도 있었다. 정면과 측면에서 바라볼 때 필요한 이미지였다. 움직임을 구현하기 위해 필요한 150프레임의 추가 이미지들은 말할 것도 없었다.
다양한 요소를 고려했을 때, 웹서비스팀이 추산한 이미지는 최소 3천만 개였다. 큰 숫자 때문에 드는 거부감은 둘째 치더라도, 점검 때마다 이미지를 추가하고 잘 구현되는지 테스트할 생각을 하니 기술적인 어려움이 문제였다.
보안 이슈도 있었다. 브라우저와 앱 단위에서 이미지를 조합하면, 조합의 로직이 노출될 수밖에 없었다. 웹 서비스만으로는 큰 문제가 아니지만, 자칫 게임에 부정적인 영향을 줄 수도 있었다. 또한, 최적화와 서비스 확장 차원에서도 1차 아키텍쳐는 불완전한 부분이 많았다.
# 버릴 건 버리고, 개선할 건 개선한 ‘2차 아키텍쳐’
개선된 2차 아키텍쳐는 1차를 개선한 버전이다. 큰 틀은 같지만, 차이점은 png 형식 이미지 추출 과정을 생략했다는 점이다. 최우선 과장은 2차 아키텍쳐에서는 전체 이미지 대신 메타 데이터만 추출해서, 서버에서 조합하기 때문에 불필요한 데이터를 처리하는 과정이 줄었다고 설명했다.
구체적인 절차를 조금만 설명하자면, 먼저 유저가 ‘내 캐릭터 보여줘’라고 요청하면, 브라우저가 캐릭터와 장비 정보를 불러온다. 가져온 데이터는 서버 메모리상에 구현돼 ‘업 스케일링’ 과정을 거친다. 도트 그래픽의 특성상 확대하면 깨지는 현상을 막기 위한 퀄리티 업이다. 이렇게 처리된 정보는 인코딩 과정을 거쳐 사람의 눈으로 볼 수 있는 형태로 바뀌어 출력되는 순서를 거친다.
만약 9부위의 아바타를 7프레임 정도로 보여달라는 요청이 들어오면 전체 이미지 조합은 약 700개의 절차를 거치게 된다. 아바타 외에도 캐릭터 몸체와 명암과 반투명, 염색 처리 등 작업을 거치면 처리 과정은 더욱 복잡해지고 오래 걸리게 된다.
각 과정마다 필요한 이유가 있지만, 유저가 체감하는 것은 결국 서비스 속도다. 이미지를 요청했을 때 얼마의 시간이 걸려 결과물이 나오는가는 서비스의 인상을 결정짓는 중요한 요소기 때문이다.
내부 테스트 결과 2차 아키텍쳐 초기 모델은 1초 당 50개의 아바타 조합을 처리할 수 있었다. 이는 서비스가 불가능한 수준은 아니지만, 많은 부작용과 장애를 초래할 수 있는 속도였다. 개발팀은 처리 중 지연되거나 의심되는 절차를 개선하는 과정을 진행했다.
불필요한 절차가 존재한다는 진단 아래, 이미지 조합은 각각의 과정이 아닌 모든 처리 과정이 끝난 뒤 한 번만 시행하게 바꿨다. 이미지 업스케일링 과정도 가장 효율적이고 빠른 방법으로 고쳤다. 대량의 데이터가 오고갈 것을 대비해 하드웨어도 SSD로 교체했다. 퍼포먼스 향상을 거친 서비스는 1초당 881개의 처리속도를 보였다. 비로소 완벽하지는 않아도 쓸만한 수준의 서비스가 된 것이다.
초당 881개의 조합을 처리할 수준이 되서야 최우선 과장과 팀원들은 처음으로 웃었다.
# "한번 잘 만들면 여러번 해야할 일이 줄어든다"
게임의 이미지를 웹에 이식하는 작업은 던파쇼룸 서비스 외에도 다양한 부분에 응용됐다. 먼저, 웹에서 캐릭터 검색이 가능해졌다. 캐릭터 명을 검색하면 인게임에서 마지막으로 장착한 아바타 외형과 장비 정보를 보여주는 서비스가 가능해졌다.
네오플이 오픈한 <던전앤파이터> 오픈 API에 웹기반 아바타 이미지 정보를 제공할 수 있게 됐다. 또한, 공식 홈페이지 게시판에서 프로필을 보여주는 서비스도 사용된다. 웹 기반 이미지는 인게임에도 진출했다. 최우선 과장은 최근 업데이트된 콘텐츠인 모험단 메뉴에서, 계정 내 캐릭터들 함께 모여있는 창도 웹 아바타 이미지 서버에서 가져가는 것이라고 설명했다. 게임으로 구현할 수도 있지만, 잘 구축된 웹 이미지 서버를 활용하지 않을 이유가 없었기 때문이다.
그는 마지막으로 개발 단계의 미구현 서비스도 소개했다. 바로 웹 기반 캐릭터 애니메이션과 경매장 연동이다. <던전앤파이터>의 상징인 움직이는 도트 캐릭터는 현재 웹으로 구현할 수 있지만, 상용화까지 아직 최적화 작업이 남아있는 상태라고 한다.
경매장 연동은 던파쇼룸에서 장착한 아바타에 대한 인게임 시세 보기와 구매 기능이다. 입혀보면 사고 싶은 마음이 드는 게 인지상정이지만, 아직 기술적인 부분과 보안 이슈로 내부 논의가 진행 중이다.
최우선 과장은 언젠간 추가될 서비스로 웹브라우저와 인게임의 채팅 연동도 구현할 예정이라고 말했다. 웹 개발자로서 게임과 웹의 서비스 공유가 많아질수록 유저에게 긍정적인 경험을 줄 수 있다는 확신이 있기 때문이란다. 그는 팀원들과 함께 라이브 서비스 업무 중 3분의 1을 투자해 웹 서비스를 제작하고 있으며 보다 많은 기능을 선보일 것이라고 약속하며 강연을 마무리했다.