개발 이야기: 디아블로 III의 피해 수치

개발 이야기: 디아블로 III의 피해 수치

소프트웨어 개발자가 항상 숙지해야 하는 사실이 있습니다. 간단해 보이는 개발 상의 문제점들에 대한 해결 방안이 항상 간단하지만은 않다는 점입니다. 그 개발 분야가 비즈니스이든, 엔터테인먼트이든, 게임 개발이든 마찬가지입니다. 한 마디로 게임 개발은 복잡합니다. 매우 작은 요인으로 인해 개발을 처음부터 다시 시작하거나 되돌아가는 경우가 발생하여 몇 주라는 긴 시간을 보내기도 합니다. 겉으로 봤을 땐 “그냥 고치면 되는 거 아냐?”라고 말할 만한 것들도 말이죠. 이것은 마치 파티쉐에게 빵을 만들 때 설탕 대신 수크랄로스(단맛의 무열량 감미료)를 쓸 수 없냐고 물어보는 것과 같습니다. 이 질문에 파티쉐는 아마 이렇게 답할 것입니다. “그렇게 간단한 일이 아닙니다.” 개발도 마찬가지입니다.


숫자 – 어떤 방식으로 표시되나요?

디아블로 III에서 플레이어에게 보여지는 정보는 많습니다. 그 중 숫자에 대해 이야기해보죠. 숫자는 게임 내 모든 곳에서 찾아 볼 수가 있습니다! 장비, 캐릭터 프로필에도 기재되어 있고, 또 전투 중에는 캐릭터 머리 주변에도 숫자가 나타났다 사라집니다. 게임 화면에 보이는 이러한 숫자들의 이면에는 그렇게 동작되게 하는 수 많은 기술적 기법이 자리합니다. 

저희는 많은 플레이어 분들로부터 전투 시에 표시되는 숫자가 부담스러울 만큼 커지기 시작했다거나, , 긴박한 양상의 게임플레이 중에는 숫자를 알아보기 힘들어지고 있다는 피드백을 받았습니다. 과거에는 큰 숫자들이 뚜렷한 우위를 보여주는 즐거움을 주는 요소였습니다. 어떻게 하면 영웅이 약해진 것 같은 느낌을 주지 않으면서도 숫자가 주는 즐거움을 고스란히 가져올 수 있을까요? 

이를 위해 저희는 이번 2.4.0 패치에서 몇 가지 새 기능을 도입하였습니다. 먼저, 전투 수치를 줄여 간략하게 표시되게 할 수 있는 게임 내 설정을 추가했습니다. 두 번째로, 영웅의 피해 수치 중 가장 큰 수치들을 다른 색으로 강조하는 새 기능을 도입했습니다. 이 기능들을 각기 게임에 추가할 때에는 디자인적인 문제나 현지화와 관련된 우려 사항, 최종 결과물이 시각적으로도 좋아야 한다는 점 등의 난관이 뒤따랐습니다. 

초기 개발 단계에서는 플레이어의 피해량 중 상위 5%에 해당하는 수치를 강조하는 방안을 추진하려고 했습니다. 하지만 이 접근 방식의 첫 번째 문제는 모든 빌드(기술 및 아이템 세팅)가 다르며 특히 피해량의 산출이 제 각각이라는 점입니다. 어떤 플레이어들은 꾸준히 일정 수준의 피해를 낼 수 있는 반면, 어떤 플레이어들은 일정 시간 동안 입히는 피해 중 일부만 큰 피해를 내기도 합니다. 또 다른 문제점으로는, 상위 5%를 피해량의 변동 폭에 맞추어 적용하지 못한다는 점이었습니다. 예를 들어, 공격력을 일시적으로 강화해주는 능력의 수정탑 효과를 얻게 되면 문제가 생기죠. 능력의 수정탑 효과가 끝난 후에도 여러분이 주목할만한 피해량을 내고 있는 때가 언제인지 알고 싶어하기 때문입니다.

이에 저희는 수치를 주황색으로 표시하는 규칙을 다음과 같이 정하고, 이러한 예외적 상황을 고려한 알고리즘을 개발하였습니다.

  • 피해량 수치는 10,000 이상이어야 한다.
  • 만약 피해량이 그전 주황색으로 표기된 피해량 수치보다 크면 새 피해량 수치를 주황색으로 표기한다.
  • 가장 큰 수치를 매초마다 3%씩 줄여나간다
    • 이를 통해 너무 오랫동안 강조된 피해량 수치가 표시되지 않는 경우를 줄인다.
  • 첫 10개의 큰 수치는 무시한다
    • 이를 통해 시스템이 수치를 측정할 수 있게 한다.
  • 10초 동안 피해 수치가 없는 경우, 시스템을 초기화한다. 


현지화에서의 난관

이번 2.4.0 패치가 적용된 디아블로 III를 플레이해보신 분들은, 새로운 전투 수치 축약 시스템를 이미 보셨을 수도 있을 텐데요. 주로 영어권 플레이어들로부터 왜 피해량 수치를 빌리언 (billion, 10억) 단위를 생략하고 밀리언(million, 100만) 단위로 측정하는지에 대한 질문들이 많았습니다.  

그 질문의 답변으로 여러 이유가 있지만, 그 중 가장 중요한 이유는 현지화입니다. 디아블로 III는 13개의 언어로 배포되는 글로벌 게임입니다. 그렇기에 저희는 문자로 표기되는 부분(또는 수치 표기 부분)에 영향을 주는 디자인과 관련된 결정을 내릴 때에는, 해당 변경 사항이 모든 언어 버전에 어떠한 의미를 가져오는 지도 염두에 두어야 합니다.  숫자는 번역하는 것 중 가장 쉬운 것으로 생각될 수도 있지만, 실상은 그렇지가 않습니다. 


왼쪽: 영어 버전 게임 내 숫자 표시, 오른쪽: 한국어 버전 게임 내 숫자 표시

간단해 보이는 번역이 복잡해질 수 있는 예를 들어보겠습니다. 스페인어나 불어와 같은 언어는 “빌리언(billion, 10억)” 단위를 나타내는 단어가 존재하지 않습니다. 그러기 때문에 10억 단위의 수치를 표기할 때 “일천 백만(one thousand million)” 으로 나타냅니다. 잠시 어원에 대해 말씀 드리자면, 본래  “billion”은 미국식 영어와 영국식 영어에서 “one million million” 을 뜻했습니다. 그러다 “one thousand million”를 쉽게 나타내는 단어가 없었기에 자연스레 “billion”이 “one thousand million”의 뜻을 가지게 되었습니다.

큰 단위의 숫자를 한국어와 중국어로 번역하는 경우는 더욱더 복잡해집니다. 예를 들어, 영어는 천 단위로 명명법이 달라집니다. 천, 100만인 밀리언(million), 그리고 10억인 빌리언(billion)과 같이 말이죠. 반면 한국어는 숫자의 명명법이 10의 4승마다 달라지는데, 이는 한국어에서는 숫자들이 천 단위가 아닌 만 단위로 묶이기 때문입니다. (예. 만 > 억 > 조 > 경) 

구두법(쉼표 표기) 또한 숫자 번역을 더욱 어렵게 만듭니다. 모든 언어가 긴 숫자를 쓸 때 쉼표를 표기하지 않습니다. 유럽에서 쓰이는 몇몇 언어들은 쉼표 대신 점을 쓰기도 하고, 또 다른 언어들은 구두점을 아예 안 쓰기도 합니다. 


왼쪽: 한국 금화 표기법, 오른쪽: 프랑스 금화 표기법

디아블로 III에서 숫자들이 커짐에 따라 저희는 구두점을 넣기로 했고, 현지화를 하는 과정에서 구두점을 어디에 혹은 언제 표기할지 매끄럽게 “번역”을 하는 방안을 찾아야 했습니다. 저희는 소프트웨어를 현지화하는 데 큰 도움을 주는 International components for Unicode (이하 ICU) 라는 라이브러리를 이용하여 코딩합니다. ICU는 다양한 쓰임새가 있는데, 개발팀에서는 그 중 숫자와 지역 언어(미국식 영어, 불어, 또는 한국어 등)를 입력값으로 넣으면 그 지역 언어에 맞춘 형식과 구두점을 반영한  숫자를 결과값으로 보여주는 기능을 이용했습니다. 저희 현지화 팀도 각 지역에서 어떤 숫자를 쓰고 결과가 어떻게 나타나는지를 보여주는 표를 참고합니다.


예시) 언어에 따라 숫자가 생략되는 표기법을 나타내는 내부 현지화 표 중 일부.

어떤 현지화 과정에서는 문화권에 제약을 받지 않고 숫자를 덜 혹은 더 생략하기도 합니다. 플레이어가 선호하는 방식은 개인마다 그리고 문화권마다 천차만별이며, 플레이어의 만족도와 여러분의 보고 있는 숫자의 길이 이면에는 심리학적 고찰이 숨어있습니다. 예를 들자면, 개발팀에서는 영문 버전 디아블로III에서는 백만 단위 이하의 숫자들은 줄이지 않기로 했습니다. 이는 “1M” (1밀리언, 즉 100만) 보다 ‘0’ 이 길게 나열된 “1,000,000” 를 보는 것이 플레이어에게 더 큰 만족감을 주기 때문입니다. 10억 단위의 경우도 마찬가지입니다. “1B” (1빌리언, 즉 10억) 보다 “1,000M” 이라는 숫자가 화면에 뜨는 것이 더 짜릿하게 느껴지죠. 물론, 숫자의 길이만이 저희가 고려해야 할 요인은 아닙니다. 시각, 색상, 움직임 모두가 중요한 고려 대상입니다.


숫자 더 잘 보이게 만들기

플레이어가 숫자를 봤을 때 그 숫자가 무엇을 함축하는 지와 그 즉시 플레이어에게 어떤 의미를 가져오는 빠르게 이해할 수 있도록 하는 것은 매우 중요합니다. 이번 2.4.0 패치에서 저희는 전투 중의 정보를 이전보다 더 많이 제공하고자 했습니다. 이 부분은 극대화 피해 수치가 강조되는 것에서 확인하실 수 있는데요. 

이 수치 정보를 보여주기 위해 개발팀의 여러 아이디어 중 하나는 단순히 색을 바꾸는 것이었습니다. 이런 큰 수치들을 가장 잘 보여주는 방법이 무엇일지에 대해 여러 질문을 우리 스스로에게 던졌습니다. “숫자를 더 크게 만들어야 할까?” “배치를 바꿔볼까?” “플래시 효과를 삽입할까?” “숫자가 화면에 더 오래 보여지게 끔 할까?” “아니면 그냥 단순히 다른 색으로 표현할까?” “이 아이디어 중 어느 것이 가장 효과적일까?” 하고 말이죠. 

저희는 색을 바꾸자는 방향으로 의견을 좁혀졌는데, 이는 여러분에게 기존과는 매우 다른 방식으로 새로운 정보를 보여드리는 것이 플레이어 측면에서 이해하기 쉽지 않을 거라는 우려가 있었기 때문입니다. 주황색의 숫자는 눈에 쉽게 띄고, 여러분이 그전에는 본적이 없기 때문에 여러분이 무의식적으로 해당 숫자를 주목하리라 판단하였습니다.

주황색은 또한 색맹 증상이 있는 분들께도 문제 없는 색상입니다. 색상환에서 주황색은 저희가 흔히 숫자를 표기할 때 쓰던 색과는 다른 범위에 놓여있습니다. 그래서 색맹 증상이 있는 분들도 새로 추가된 것이라는 걸 알 수 있습니다. 

인터페이스에서 변화하는 색상을 살필 때, 개발팀의 아티스트들은 색조, 채도, 그리고 밝기라는 세 가지 선택지를 검토합니다. 이는 색 표현을 위해 흔히 쓰이는 디지털 표준 방법인 HSL 색 공간이라고 하는 것의 일부입니다. 각 속성을 조정하면 각기 다른 느낌을 전달하거나 플레이어의 반응을 불러낼 수가 있습니다. 분위기를 바꿔볼까요? 그러면 다른 색조를 고릅니다. 색이 많이 입힌 이미지를 밋밋하게 바꾸자 한다면, 채도를 조절하면 됩니다. 이목을 끌거나 줄이려면 밝기를 손보면 됩니다.

예를 하나 들어보죠. 여러분이 생명력을 얼마만큼 회복하는지는 게임 내에서 매우 중요한 정보입니다. 회복은 생명력의 원천이라고 할 수 있고, 저희는 생명력 회복이 시각적으로 잘 표현되길 원합니다. 그러기에 생명력 회복과 관련된 요소들은 게임 내에서 가장 밝게 표현되었습니다. 저희는 극대화 피해 또한 매우 눈에 띄길 바랐고, 큰 피해 수치가 뜰 때 여러분이 단번에 알 수 있게끔 밝기를 수 없이 바꾸는 조정 작업을 진행했습니다.


개발팀에도 여러 분야가 있습니다

디아블로 III 개발팀이라고 하면, 직업 캐릭터나 아이템을 수정하고 새롭고 멋진 기능을 추가하는 개발자들을 쉽게 떠올릴 수 있습니다. 이러한 것들은 여러분과 직접적으로 상호작용하는 것들이고, 게임 개발을 생각할 때 아마도 가장 많이 떠오르는 것들입니다. 하지만, 여러분의 영웅이 입고 착용하는 것들 외에도 수 많은 개발 요소들이 있으며, 아티스트, 엔지니어, 현지화 전문가 등 많은 인원이이 디아블로 III가 세계 어디에서나 매끄러운 게임 플레이가 가능하도록 노력하고 있습니다. 

작은 기능에 대한 뒷 이야기를 다루는 이번 게시물을 여러분께서 즐겁게 읽어주셨으면 합니다. 저희는 디아블로 III 개발 작업을 할 수 있다는 점을 감사하게 생각하고 있습니다. 그것이 비록 작고 세세한 요소의 개발일지라도요. 읽어주셔서 감사합니다!