개발자의 관점: 보다 새로워진 덱 추천 기능을 소개합니다!

개발자의 관점: 보다 새로워진 덱 추천 기능을 소개합니다!

여러분, 반갑습니다! 저는 하스스톤 팀의 선임 데이터 과학자 티안입니다. 보다 새로워진 덱 추천 기능을 소개하고, 최근 이 기능이 소개된 이후 커뮤니티에 올라온 몇 가지 질문에도 대답해 드리고자 이 글을 쓰게 되었습니다.

우선 이 기능을 간단하게 소개한 다음, 지금 이 글을 읽고 계신 여러분께서 진짜로 궁금해 하실만한 부분에 대해 심층적으로 알아보겠습니다. 바로 과학적인 원리에 대해 설명해 드리겠습니다!

HS_Blog_Divider_Filigree_Bar.png

새로워진 덱 추천은 어떤 기능인가요?

새 하스스톤 덱을 만드는 일은 노련한 플레이어들에게 즐겁고 보람을 느끼는 경험이 되겠지만 하스스톤을 한동안 쉬었거나 처음 접하는 경우, 시간 여유가 별로 없는 경우 또는 본인이 보유한 카드 수집품을 등급전에 자신 있게 가져갈 만한 덱으로 만드는 데 약간의 도움이 필요한 경우도 많을 것입니다. 이럴 때 새로워진 덱 추천 기능이 여러분께 도움을 드릴 수 있습니다. 새로워진 덱 추천 기능은 덱을 만들 때 드는 수고를 덜어드리고, 클릭 몇 번이면 효과적인 인기 덱을 가지고 게임에 나설 수 있게 해드립니다!

이 덱 추천 기능을 사용하려면 우선 덱을 만듭니다. 직업도, 카드 수도 마음대로 결정할 수 있습니다. "내 덱 완성하기" 또는 "완료"를 클릭하면, 추천 기능이 이미 선택한 카드를 기본 토대로, 기존 수집품에 포함된 카드들을 이용해서 덱의 나머지를 효과적으로 채워드립니다. 덱을 어떻게 완성하는지 예를 들어 설명하자면, 운다스타죽은척! 카드를 선택한 다음 하스스톤에게 주도권을 넘겼다고 한다면, 덱 추천 기능이 여러 가지 요인을 감안하여 가능한 최선의 덱이 무엇인지 결정해 그대로 조합합니다. 예를 들어 아래와 같은 죽음의 메아리 사냥꾼 덱이 나올 수 있겠죠.

03_27_HS_DeveloperInsights_SmartDeck_BlogDecklist_800x1000_JY_v01_enUS.png

정말 이렇게 간단하게 끝입니다. 빈 덱을 시작하거나 플레이에 꼭 쓰고 싶은 카드를 몇 장만 골라주면, 나머지는 하스스톤에서 알아서 처리하여 완성된 덱을 만들어 드립니다.

HS_Blog_Divider_Filigree_Bar.png

시스템 원리:

본론으로 바로 들어가, 이 기능을 만드는 데 관련된 기술적인 측면의 이야기부터 하자면, 이러한 덱 추천 시스템은 두 개의 단계로 이루어져 있습니다. 각 단계에는 여러 개의 하위 단계가 있어 덱을 자동으로 완성해줍니다. 이제 이런 단계들이 여러분이 원하는 덱을 만드는 데 각각 무슨 일을 하는지 알아봅시다.

첫 번째 덱 만들기 단계: 메타 만들기

03_27_HS_DeveloperInsights_SmartDeck_BlogAssets_300x400_JY_v01_H.jpg

혼동을 방지하기 위해, "메타"라고 하면 무엇을 가리키는지 먼저 간략하게 짚고 넘어가겠습니다. 메타는 "메타 게임"의 줄임말로, 특히 등급전에서 자주 보이는 최신 덱들의 동향을 설명하는 말입니다. 대다수의 플레이어는 성공적인 덱을 조합하려 할 때 최신 메타를 염두에 두고 상대편으로 만날 가능성이 높은 덱에 대비해 승률이 높은 카드를 포함하게 됩니다. 예를 하나 들어보면, 무기 함량이 높은 메타의 경우(즉 인기 덱에 대부분 무기 카드가 포함된 경우)라면 덱에 산성 늪수액괴물이나 걸신들린 수액을 포함할 가능성이 높습니다. 무기를 파괴하여 메타에 효과적으로 "반격"을 가할 수 있기 때문입니다.

덱 만들기의 첫 단계(즉, 메타 단계)에서는 현재 메타에서 인기를 끌고 있는 카드, 플레이어가 덱에 이미 포함해 놓은 카드, 그리고 플레이어가 보유한 카드 수집품에서 이용 가능한 카드 등을 토대로 가능한 최선의 덱을 조합하려 합니다. 무엇을 메타로 보는지 판단하기 위해 인기 덱 중에서 기본적으로 유형이 같은 것들을 하위 그룹으로 묶는 연산 알고리즘을 사용합니다. 각각의 하위 그룹은 현재 메타에서 플레이되고 있는 덱 유형을 나타내죠. 예를 들어 "비밀 사냥꾼", "용 사제", "홀수 성기사" 등으로 분류되는 것입니다. 이러한 하위 그룹에 속한 각 덱의 내용은 약간씩 다를 수 있지만, 궁극적으로는 같은 덱 유형으로 볼 수 있습니다. 기계 학습 측면의 용어로 설명하자면, 이런 과정을 일명 "클러스터링"이라고 합니다. 저희가 사용하는 클러스터링 알고리즘은 수백만 가지 버전의 덱으로 구성된 데이터를 구문 분석하되, 각 덱을 하나의 데이터 포인트로 삼고 각 데이터 포인트가 수백 가지 차원의 벡터 하나를 나타내게 됩니다. 알고리즘은 이런 클러스터링 정보를 활용하고 다른 수학적 해법을 조합하여 동적으로 덱을 채워 나가고, 덱이 꽉 차면 두 번째 단계인 "메꾸기" 단계가 시작됩니다.

플레이어의 실력 수준에 따라 덱의 종류, 플레이 패턴과 어려워하는 부분도 각기 다르기 때문에 메타는 플레이어가 등급전의 어디 쯤에 속해 있는지에 따라 다를 가능성이 높습니다. 이런 상황을 해결하기 위해 메타 덱 채우기 프로세스마다 각기 다른 하위 단계를 사용합니다. 즉, 플레이어의 등급이 20등급 정도라면 덱 추천 기능으로 만들어지는 덱은 전설 등급 플레이어가 쓰는 덱과 다른 메타의 덱일 것입니다. 또한, 메타 보고서를 자주 업데이트하므로 메타 덱은 항상 최신 상태로 유지됩니다.

덱에 이미 포함된 카드와 플레이어가 보유한 카드 수집품을 사용하여 효과적인 메타 덱을 만드는 시도를 한 다음에는, 다음 단계인 두 번째 만들기 단계로 넘어갑니다.

두 번째 만들기 단계: 메꾸기

03_27_HS_DeveloperInsights_SmartDeck_BlogAssets_300x400_JY_v01_G.jpg

메타 레이어가 플레이어의 수집품을 사용해 덱에 채울 30장의 카드를 찾지 못하는 경우, 두 번째 단계인 "메꾸기" 단계가 주도권을 넘겨받습니다. 이 단계는 덱의 완성을 담당하며 이용 가능한 카드 중 최선의 카드를 골라 사용합니다. 우선, 게임이 플레이어의 수집품을 사용해 효과적인 메타 덱을 만들 수 없다고 결정하면, 이용 가능한 카드를 가지고 가능한 최선의 덱을 만드는 것으로 되돌아갑니다. 메꾸기 알고리즘의 핵심 원칙은 좋은 카드와 적절한 마나 곡선을 가지고 균형 잡힌 덱을 만드는 것입니다. 그럼 이제 덱에 좋은 카드란 무엇인지 어떻게 결정하는지 알아보겠습니다.

각 카드는 직업별로 덱에 사용될 때 개별적인 "카드 능력"이 있습니다. 이 때는 여러 카드 사이의 고유한 시너지 효과나 콤보 가능성은 배제한 상태로, 이 능력 수치는 일정하지 않으며 덱의 현재 상태에 따라 활발하게 변화합니다. 다만 카드 능력을 좌우하는 것으로 크게 세 가지 요인을 들 수 있습니다.

  • 게임 파급력: 주어진 카드가 덱의 승률에 미치는 기여도를 말합니다.
    • 예를 들어 마법사 덱이라면 물의 정령이 공포의 해적보다 승률에 크게 이바지하겠죠.
  • 마나 비용 버킷: 마나 비용이 같은 카드로만 구성된 컬렉션을 말합니다.
    • 마나 1 또는 2의 마나 버킷에서 빈자리를 채우는 한 장의 카드를 찾는 것이 목표라면 은빛십자군 종자가 탁월한 선택이겠지만, 마나 5의 버킷에는 어울리지 않습니다.
  • 마나 버킷이 넘치지 않게 예방:
    • 특정 마나 비용 버킷에 이미 10장의 카드가 있다면 해당 마나 비용 범위에는 더 이상 카드를 더하지 않습니다. 다만 추가하려는 카드가 대안에 비해 훨씬 나은 경우라면 고려할 가치가 있겠죠.

메꾸기 과정에서는 덱에 포함하기에 가장 좋은 카드 능력을 가진 카드를 적극적으로 선택합니다. 수학적으로 말하자면 카드 능력을 일종의 함수로 보면 됩니다. 즉, 승률에 기여하는 정도를 변환한 조건과 여러 가지 불리한 조건을 더한 것으로 구성되는 함수입니다. 검색할 때마다 목표는 현실적으로 가능한 모든 해법 중에서 목표 함수를 최대치로 만들어주는 것을 찾는 것입니다.

HS_Blog_Divider_Filigree_Bar.png

기타 사항, 규칙 및 제한 사항

03_27_HS_DeveloperInsights_SmartDeck_BlogAssets_3Steps_600x260_JY_v01.png

이 두 가지 덱 만들기 단계에는 고급 수학이나 기계 학습 방식 외에도 수많은 품질 보증 규칙이 구현되어 있어, 결과적으로 도출되는 덱이 이치에 닿는 선택이도록 보장합니다. 예를 들어 아직 미완성된 덱에 이미 공작 켈레세스가 포함되어 있다면, 비용이 2인 카드를 피하려고 최선의 노력을 다합니다.

덱에 카드를 하나도 넣지 않은 채로 짧은 시간 안에 여러 번 반복해서 덱 추천을 요청하는 경우, 버튼을 클릭할 때마다 다른 덱을 제시하려 노력합니다. 하지만 이 기능은 맨 처음 덱이 비어 있지 않으면 작동되지 않습니다.

현재 이 덱 추천 기능은 정규 덱을 만들 때만 지원된다는 제한이 있지만, 야생 지원에 대해서도 여러 가지로 연구중에 있습니다. 또한 수집품에 없는 카드를 포함한 덱을 만들려고 할 때 표시되는 카드 한 장 추천 기능은 현재 덱 추천 시스템을 사용하지 않습니다.

HS_Blog_Divider_Gems.png

덱 추천 기능을 이용해 멋진 덱을 만들었다면 망설이지 말고 공유해주세요! 궁금한 점이 있으시면 아래 덧글을 통해 알려주시기 바랍니다. 그럼 선술집에서 뵙겠습니다!

덧글 불러오는 중...

덧글을 불러오던 중 오류가 발생했습니다.