-
팁게에 여러 가공 추천기, 젬파고, 조합기 글들이 올라왔었는데, 개인적으로 아쉬운 부분들이 있었습니다.
-
(다른 젬파고 분석)
-
대전제로 우리의 궁극적 목표는, 늘 그렇듯 최대한의 딜 증가율을 얻는 것인데, 이 때 "가능한 적은 비용"으로 달성하는 것입니다.
-
아무리 망한 젬이라도, 현재 가공 비용이 0G라면 일단 끝까지 눌러는 보지 않겠어요? 어차피 무료인데 혹시 모르니까요. 반대로 애매한 젬인데 비용마저 1,800G씩 들어간다면 그냥 버릴 거고요.
-
(주의) 지루하고 현학적입니다. 시작은 그저 고민되는 선택의 순간에서 도움을 받으려고 작게 시작한 개인 프로젝트였는데, 막상 하다보니까 고려할 요소가 너무 많아지더라고요. 저는 설계자가 아니고 일개 유저일 뿐이라, 이 아크 그리드 시스템을 이해하고 분석하기 위한 이런 저런 고민의 과정이 순서대로 담겨 있어서, 좀 난잡하고 약간 일기장스러운 내용도 있습니다. 그래도 최대한 골드를 아끼기 위한 몸부림이라 생각하시고 의식의 흐름을 같이 따라와 주시면 감사하겠습니다.
-
엘릭서나 초월처럼, 아크 그리드도 단계별 목표를 제시하고 있습니다. 단계 별로, 같은 딜 증가율을 얻기 위해서 들어가는 기대 골드가 쭉쭉 올라갑니다. 사장님이 아닌 이상에야 우선 급한 스펙업부터 진행하고 나중에 차차 손을 보게 될텐데, 우리도 같은 방식으로 우선 발사대를 활성화하고, 그 다음 스펙업을 생각해보기로 하겠습니다.
4막과 종막을 열심히 트라이해서 깬 다음, 유물 이상 코어를 먹고, 17P를 활성화해야 한다고 합니다. 공급 의지력은 15이고. 일단 안정/침식이 코스트가 적으니 이걸로 4개를 끼운다고 하면, 4개의 젬을 합해서 의지력 효율 17 이상, 코어 포인트 17 이상을 달성해야 합니다. 그러면 평균은 8.5정도 되네요. (영웅은 공급9/포인트10이니 2개 끼우면 의지력 효율 7 이상, 코어 포인트 10 이상. 3개 끼우면 의지력 효율 15, 코어포인트 10 이상) (전설은 공급12/포인트14이니 3개 끼우면 의지력 효율 12 이상, 코어 포인트 14 이상, 4개 끼우면 의지력 효율 20, 코어포인트 14 이상) (대충 영웅/전설이어도 평균 합8~9 이상이면 되겠죠) 오케이. 일단 발사대를 만듭시다. 엘릭서 할 때처럼, 합8 이상이나 합9 이상 정도 노려보면 되겠네요.
이곳저곳에서 얻은 젬을 열심히 깎아 봅니다. 매 가공마다, 우리에겐 다음과 같은 선택지가 있습니다.
- 깎던 젬 계속 가공하기
- (리롤 횟수가 있을 때) 리롤 돌리기
- (이미 망한 것 같다면) 초기화권 쓰거나, 가공 완료 누르고 분해하든 융합하든 하기
이 중에 뭘 해야 할까요? 일단 3번은 나중에 생각해 볼 문제라고 하더라도, 리롤 횟수가 있는데 현재 상태에서 리롤을 하는 게 나은지 아닌지 판단이 잘 안 섭니다. 특히나 영웅 젬은 귀한데... 괜히 잘못 판단하면 아깝잖아요? 우선 비용 문제는 차치하고, '현재 젬 상태 기준, 원하는 목표를 달성할 확률' 표를 만들어 보기로 합니다. 그래도 엘/초보다는 비교적 상태 공간도 작아보이니, 정확한 확률표를 만들 수 있을 것 같아 보입니다.(심지어 그 때는 확률표도 없던 시절... 엘파고/초파고 제작자분께 무한한 respect) 처음에는 그냥 몬테카를로 시뮬레이션으로 해볼까 하다가, 그렇게 해도 언제 리롤을 하는 게 맞는지 확신할 수는 없을 것 같았습니다.
-
우선, 상태 공간부터 정의해 봅니다. 공, 추피, 보피 중에 두 개, 아피강, 낙인력, 아공강 중에 두 개가 각각 안정/침식, 견고/왜곡, 불변/붕괴에서 고정적으로 선택되므로, 그 4개의 부가 옵션의 레벨을 dealerA, dealerB, supportA, supportB로 합니다.
- 예를 들면 견고/왜곡에서는 dealerA = 공, dealerB = 보피, supportA = 아피강, supportB = 아공강입니다. 사실 이 단계에서는 발사대가 목적이라 부가 옵션 자체가 크게 의미 있지는 않습니다.
-
이제, 다음과 같이 젬의 상태를 순서쌍으로 정의합니다: (willPower(의지력 효율), corePoint(질서/혼돈 포인트), dealerA, dealerB, supportA, supportB, remainingAttempts(남은 가공 횟수), currentRerollAttempts(리롤 횟수), costModifier(가공 비용 변동), isFirstProcessing).
- 남은 가공 횟수와 리롤 횟수는 당연히 필요하고,
- 공개된 확률표를 보면 가공 비용 상태가 -100%일 때는 -100% 선택지가 안 나오고, +100%일 때는 +100% 선택지가 안 나오므로 costModifier도 필요하고,
- 첫 번째 가공에서는 리롤이 불가능하기 때문에 isFirstProcessing 값도 필요합니다.
총 몇 가지 젬 상태가 가능할까요? 시작 젬의 경우의 수 18(고급, 희귀, 영웅마다 dealerA~supportB 중 두 개 선택)개로부터 시작해서 BFS를 돌려 보면, 570,864개가 나옵니다.
옵션 선택지의 경우는 어떻죠? 등장할 수 있는 옵션의 개수가 젬 상태에 따라 10~20개 안팎인데, 그러면 최대 8,000개 정도의 4개 옵션 조합이 등장할 수 있습니다. 그러면 이것까지 곱하면 OMG. 10억이 넘어가네요. 이 정도 크기의 표를 만드는 건 현실적으로 어려워 보이고, 현재 젬 상태만 가지고 만들어 보기로 합니다. 그러니까, '아직 옵션 4개를 보기 전, 현재 젬 상태 기준으로 원하는 목표를 달성할 확률' 표를 만들어 봅니다. 일단 발사대를 깎아야 하니, willPower, corePoint 조합이 5/5, 5/4 이상, 4/5 이상, 5/3 이상, 4/4 이상, 3/5 이상, 합8 이상, 합9 이상 등의 목표를 두고, 추가로 유물+, 고대, 그리고 딜러 종결(5/5/5/5/0/0), 서폿 종결(5/5/0/0/5/5) 젬 등도 재미삼아 추가해 보았습니다.
몇 가지 언급하고 싶은 점들이 있는데,
-
옵션 별로 등장 가중치가 존재하는데, 가공할 때 그냥 가중치를 따라 하나 고르는 게 아니라, 먼저 가중치를 따라 4개의 옵션 후보 조합을 뽑고 그 중에서 25% 확률로 하나를 고르는 거라, 약간 정규화되는 부분이 있습니다. 그러니까, 가중치가 큰 +1 옵션 같은 것들은 표기된 등장 가중치보다는 조금 덜 선택되고, 가중치가 작은 +4 옵션 같은 것도 표기된 등장 가중치보다는 조금 더 선택되는 경향이 있습니다. 예시: () 또 그러기 위해 모든 4개 옵션 조합이 나타날 확률을 모두 고려해야 해서, 연산량이 좀 됩니다.
-
Tabulation 방식으로 계산했는데, 표를 채울 때도 매 스텝마다 리롤을 할지 말지(첫 가공이 아니고 + 리롤 횟수가 남아 있을 때 리롤 가능)의 여부는 정해야 합니다. 어떤 한 상태의 '원하는 목표를 달성할 확률'을 계산할 때, 다음과 같이 계산합니다.
-
- 그 상태에서 가능한 모든 4개 옵션 조합마다
-
- 해당 조합으로 이후 가공을 진행했을 때의 '원하는 목표를 달성할 확률'을 각각 가져와서 1/4 가중치로 더하고
-
- 리롤이 가능하다면 해당 상태에서 리롤만 하나 소모한 상태의 '원하는 목표를 달성할 확률'을 가져옴
-
- 이제, (가공 중단, 이대로 진행, 리롤) 중에 가장 확률이 높은 상태를 선택. '가공 중단'은 현재 목표를 이미 달성했으면 1, 아니면 0.
-
- 각 조합의 등장 확률을 가중치로 하여 더함.
- 나중에 비용도 고려하기 위해서, 각 상태별로, '이 젬에서 추후에 소모하게 될 예상 비용'도 같이 계산해서 저장합니다.
- 위 세 가지 선택지의 확률이 다 같다면 로직 상 '가공 중단'을 선택하게 되는데, 그러면 이미 목표를 달성한 경우에는 0G가 되고, 반대로 절대 불가능해서 모든 가능성이 0인 경우에도 가공 중단을 고르게 되어 추후 예상 비용이 0G이 됩니다.
아무튼, 그렇게 해서 얻은 결과 중 일부를 공유드리면, 합 9이상: 고급 2.74%, 희귀 11.29%, 영웅 25.92% 유물+: 고급 0.30%, 희귀 5.95%, 영웅 25.48% 고대: 고급 0.003%, 희귀 0.20%, 영웅 2.26% 정도 되었습니다.
또 리롤의 가치를 어느 정도 체감할 수 있게 보여드리자면, 예시: ()
종결 젬은 저격 옵션 두 개 들고 시작한 영웅 젬 기준, 달성 확률 0.39% 정도 나왔습니다.
여기서 끝이 아니다!
그러면 그냥 저 표 보고 리롤 할지 말지 정해서 가공하면 되는 걸까요? 아닙니다. 저 표는, 이미 목표를 달성했거나, 절대 불가능한 경우가 아니면 끝까지 가공하는 전략입니다. 그러니까 일말의 희망이라도 있을 때에는 일단 가공하고 본다는 거죠. 그런데 딱 봐도 현실적으로 가망 없어 보이는 젬은 굳이 더 골드 써가며 가공하기 아깝잖아요? 이제 비용을 고려해서, '아니, 이 정도면 그냥 새로 사서 가공하는 게 더 싸겠는데?'의 선택지를 추가할 차례입니다. 그리고 초기화권도 고려해야 하고요.
예를 들어서, 젬 가격이 10,000G, 그리고 목표 달성 확률이 10%라고 합시다. 그리고 가공 예상 비용이 6,000G이라고 하고요. 그러면 목표한 젬을 깎는 평균 비용은 (10,000G + 6,000G) / 10% = 160,000G으로 계산할 수 있겠습니다.(젬 융합은 일단 무시하면요)
그런데 가공 중에 어떤 상태에서, 목표 달성 확률이 1%이고, 이 상태에서 이 젬의 추후 가공 예상 비용이 3,000G이라고 하면, 가공을 계속할 때의 예상 비용은 3,000G + (1 - 0.01) * 160,000G = 161,400G가 되어, 이걸 마저 깎아서 작은 확률에 골드를 쓰느니 차라리 사서 새로 깎는 게 낫다는 결론을 얻게 됩니다. 아니면 초기화권을 쓸 수도 있고요.
그런데 문제가 있습니다. 이렇게 가망이 적은 젬들을 미리 포기하는 식으로 전략을 수정하면, 처음에 생각했던 '목표한 젬을 깎는 기대 비용 160,000G'이 변합니다. 목표한 젬을 깎는 기대 비용을 160,000G로 가정하고 시작했는데, 최적화를 하고 보니 새로운 기대 비용이 나온 거죠. 더 문제인 점은, 저 3,000G와 1%라는 값도, 지금은 확률이 0과 1 사이기만 하면 끝까지 가공한다는 전략이기 때문에, 전략이 바뀌면 계속 변한다는 겁니다. 결론적으로 보다 정확한 답을 얻으려면, 지금 테이블에 있는 '끝까지 가공' 전략의 확률과 기대 비용이 아니라, '골드를 가장 적게 쓰는' 전략의 확률과 기대 비용을 따로 두어서, 이것이 수렴할 때까지 계속 업데이트해야 합니다.(상한은 '끝까지 가공'일 것이고요)
초기화권을 고려하게 되면, 상태 공간의 크기가 늘어납니다. 초기화는 젬 하나당 한 번 밖에 못하기도 하고, 또 초기화를 하게 되면 옵션이 랜덤으로 바뀌는 게 아니라 최초의 부가 옵션 두 개로 고정되어 돌아가기 때문이죠. 즉 젬 상태에 '초기화권을 썼냐 안썼냐' 에다가 '최초의 두 활성 옵션이 무엇이었느냐'까지 추가해서 다시 BFS를 돌려보면, 고급 젬 225,156개, 희귀 젬 1,203,216개, 영웅 젬 3,123,204개로 훌쩍 늘어납니다.
또, 초기화권과 젬 가격은 고정이 아니고 시장 상황에 따라 계속 변하잖아요? 그래서 각 가격들의 초기 조건에 따라서도 조금씩 변할 텐데 이걸 모두 해볼 수는 없는 노릇이라, 우선 임의대로 몇 가지 세팅을 해서 진행해 봅니다.
예시: 희귀 젬으로 헙 9+인 젬이, 젬 가격 5,000G, 초기화권 10,000G일 경우에. '끝까지 가공' 전략은 성공률 11.29%, 평균 가공 비용 6,341G '골드를 적게 쓴다' 전략은 성공률 10.53%, 평균 가공 비용 4,114G. 성공률 일부를 손해보지만, 가망이 적은 젬들을 빠르게 쳐냄으로써 최종적으로 합 9이상 젬 하나를 가공하는 기대 비용이 100,420G에서 86,559G로 줄었습니다.
실제 해당 표를 따라서 100만 회 시뮬레이션한 결과: ()
여기서 끝이 아니다!
- 아직 가공 완료 젬들의 융합을 고려하지 않았습니다. 망한 젬의 경우에, 융합을 통해 소생시키는 게 가능합니다. 아까의 수식에서, 현재 젬으로 계속 진행했을 때 원하는 젬을 깎는데 성공했다면, 융합의 재료로써의 가치만큼을 잃는 것이 되므로, '망한 젬'의 '융합을 통한 목표 젬 얻기에서 재료로써의 가치'를, 가공에 실패한 경우에 이후 비용에서 빼면 됩니다(일종의 페이백 개념). 그런데 정확히 얼마로 산정해야 하죠? 아무 젬이나 한 번 가공하고 완료하면 되니 900G? 그리고, 애초에 '망한 젬'이라고 한들 그 젬이 전설이냐, 유물이냐, 고대냐에 따라서도 그 가치가 무척 달라지는데 이건 어떻게 반영해야 할까요?
- 일단 이 문제는 잠시 미뤄두고, 이후에 다른 이슈와 함께 고려해보도록 하겠습니다.
결론적으로 우선 저는 합8+, 합9+를 노리고 확률표를 참고해 가면서 깎고, 적당히 끼워가며 일단 발사대를 모두 켜는데까지는 성공했습니다.(아직 하나는 전설이라 14P긴 하지만요)
여기서 끝이 아니다!
- 맞습니다. 아직 한참 남았습니다. 지금까지 했던 것은 목표한 단일 젬 하나만 깎는 거였는데, 젬은 하나만 깎아서 끼는 게 아니니까요. 총 6개의 코어에, 코어 하나당 최대 4개의 젬들을 끼워야 하는데, 젬 타입까지 고려해 가면서 어떤 최적의 기댓값 표(위에서 만든 것 처럼)를 구한다? 이건 말도 안 됩니다.
우리가 인게임에서는 어떻게 하죠? 일단 젬들을 깎아보고, 결과들을 모아놓고, 코어 아다리를 맞춰보고, 필요 없는 건 융합도 해보고, 현재 상태를 보고 또 목표 젬을 설정하고... 보통 그렇게 하겠죠? 그래서, 이제는 젬 인벤토리(젬 가방 언제나옴?????)와 젬 장착 최적화 시스템을 만들어 봅니다.(이거는 기존에도 이미 팁게에 잘 만들어두신 분들이 있기는 합니다)
코어에 젬을 장착하는 문제는 정확히 '0-1 배낭 문제(Knapsack problem)'라는 문제인데, 심지어 배낭(코어)이 질서/혼돈 3개씩 있는데다가 부가옵 효과는 서로 묶여 있어서 완전 독립도 아니고. 게다가 활성화 효과 계산은 정말 까다롭습니다.(그냥 단순 딜증이 아니라 다른 코어와의 시너지나 플레이 스타일이 바뀌는 경우도 있고 해서) 그런데다가 우리가 가공 완료된 젬을 수십 개씩 들고 있다면 모든 경우의 수를 확인해서 최적해를 찾는 건 현실적으로 불가능할 겁니다.
그래서 이 부분은 어쩔 수 없이 적당한 해를 찾는 걸로 만족해야 합니다. 젬을 정렬하고 끼워가면서, 결과값이 낮은 경우들은 계속 쳐내 가면서 최대한 좋은 결과값이 나오는 배치를 찾는 배치기를 만들어봅니다.
(젬 배치기 알고리즘 설명)
여기서 끝이 아니다!
모든 코어를 유물 이상으로 얻었고, 17P를 다 달성했다고 합시다. 이젠 무슨 젬을 깎아야 할까요? 일단 눈에 보이는 건 나에게 필요 없는 부가옵들이 달린 젬이나, 코어 포인트가 5가 안 된 젬들이 눈에 띕니다.
그래서 이제 발사대 젬을 좀 업그레이드하고 싶은데, 또 뭔가 고민이 됩니다. 안정/침식이 의지력 면에서는 좋은데, 비싸기도 하고, 불변/붕괴가 고점이 높다 보니, 뭔가 고점을 노려 보고 싶기도 하고... 18~20P 활성 효과를 약간 포기하더라도, 보피/추피 잘 달린 게 더 나을 것 같기도 하고... 도대체 뭘 노리고 깎아야 할 지 모르겠습니다.
그래서 이제 본격적으로 젬의 '밸류'를 산정해보고자 합니다. 우선 (필요 의지력, 코어 포인트) 조합을 여러 개 미리 만들어 놓고, 각각에 대해서 추가로 '공용 옵션에 의한 데미지 증가량'도 적절히 몇 개 만들어서, '임시 젬'을 내 인벤토리에 추가하고 이 상태로 위의 최적 배치기를 돌려봅니다.
예시를 들기 위해 현재 제 아크 그리드 상태를 가져왔습니다.
또 지금의 확률표는 단순하게 목표를 달성하면 1, 달성하지 못하면 0이었는데, 아무리 내가 합9+ 젬을 목표로 했더라도, 적당히 합8짜리 나와도 쓸만할 수 있고(특히나 부가옵도 잘 붙었다면), 5/5젬이 나오면 그냥 합9+보다는 더 가치가 있을 겁니다. 그러면 각 젬마다, '밸류'를 설정할 수가 있게 됩니다. 기존처럼 '목표 달성 시 1, 아니면 0' 과 같은 목표가 아니라, 최종 상태 별로 젬의 가치가 달라지게 되는거죠.
이제 밸류가 설정되었으니, 드디어 융합도 그 가치를 제대로 평가할 수 있게 되었고, 그 결과로 나오는 유물이나 고대 젬도 가치를 평가할 수가 있게 되었습니다.
Q. 그러면 왜 처음부터 이렇게 안 했나요 그냥 처음에 발사대 뽑을 때부터 이렇게 하면 안 되나요? 처음엔 일단 기본적인 젬 풀 자체도 없고, 아직 17P 하기도 전에는 뭐 다른 거 노려볼 만한 게 없기 때문입니다. 그래도 저도 뭔가 미심쩍긴 해서, 일단 뒤에서 한 번 해보겠습니다.
Q. 이제 끝인가요? 아니요... 아직도 고려해야 할 사항들이 있습니다. 우선 지금 하위 등급 코어인데 나중에 고대로 업그레이드 되는 경우도 있겠죠. 또 이 방법은 '젬을 하나씩만 추가'해 보는 거라서, 전역으로 최적은 아닙니다. 이게 무슨 말이냐? 종결은 우리 다 알죠. 유물은 안안견불or안견견견, 고대는 안견불불이나 견견견불. 그런데 예를 들어서 모든 코어를 의지력 효율이 4/4/4/5(필요 의지력이 4/4/4/3)여서 딱코로 맞춰 놓은 상태라면, 아마 필요 의지력이 5인 젬은 (불변/붕괴)은 종결이라도 고려가 안 될 겁니다. 아무리 종결이어도 17P 활성화가 더 리턴이 클텐데 활성화를 못하니까 말이죠. 하지만 안정으로 의지력 효율 5 찍어서 필요 의지력 3짜리 하나 넣어 놓으면 넣을 수 있잖아요? 이런 상황이 우리 로직 상으로 고려되지는 않는다는 겁니다.
그러면 어떻게 하면 좋을까요? 예시 젬들을 여러 개 만들어서 넣어보기? 오우... 너무 빡센데 그건...
- 젬 가공 시스템이 가공 자체만 보면 엘/초 보다는 훨씬 단순해 보이는데, 대신에 골드 소모 면에서는 선택지가 많아서 이 쪽에서 복잡하게 만들고 골드 삭제를 유도한 게 아닐까 싶습니다. 가랑비에 옷 젖는다고, 가공 900G, 융합 500G씩 들어가다보면 진짜 골드 순삭나니까요.