|
2020-12-30 18:59
조회: 27,839
추천: 20
[DPM] DPM 내용 정리 - 1부안녕하세요, 데슬 DPM 제작자 중 한 명인 사냥원리입니다. 사실 이러한 글을 써야겠다고 고민해본 지는 오래됐지만, 귀찮음 + 양이 너무 많음 덕분에 미루고 미루다 그나마 여유있을 때 써 보자는 심정으로 DPM에 대한 근본적인 내용들을 적어 보려 합니다. 이 글로 다양한 요소에 대한 폭넓은 이해를 하실 수 있는 기회가 되었으면 좋겠습니다. "이거 왜 올릴수록 안 좋은 거지?" 이런 것들에 대한 대답이 최대한 되도록 써보겠습니다.
0. 주의사항 * 본 글은 여러 번에 걸쳐 연재될 예정입니다. 기간이 꽤 소요될 수 있습니다. * 딜량 관련 연산의 계산식은 결코 어렵지 않습니다. 해 봐야 사칙연산, 일차방정식 풀이, 확률을 이용해 기댓값을 구하는 정도에 그칩니다. 중등수학 + 확통 기초 정도만 사용되고, 영향을 미치는 요소가 워낙 많다 보니 식이 꽤 복잡해 보일 수는 있습니다. * 단순히 딜량의 연산뿐만 아니라, 어떤 옵션이 본인에게 더 잘 맞을지 연산하는 방법도 제공할 예정입니다. 가장 좋은 예시가 데미지% vs 방무 vs 공마% 계산이라던가, 추옵 올스탯% vs 깡추 계산 등입니다. 스탯 관련 계산은 생각보다 훨씬 쉽기에, 다양한 고찰도 해볼 수 있을 겁니다.
1. 기본 정의 우선 이 글의 가장 궁극적인 목표는 DPM을 연산하는 것입니다. 일반적으로 사용하는 DPM의 정의는 그냥 쉽게 분당 평균 데미지라고 보시면 됩니다. 가끔 분당 데미지라고 정확히 1분 동안 넣을 수 있는 딜량의 최댓값으로 오해하시는 분들이 계신데, 결코 1분 동안만 딜을 하는 것이 아닙니다. “평균” 딜량입니다. 무한한 시간 동안의 딜량을 평균화시켜 1분으로 압축한 것이고, 굳이 식으로 나타내면 아래와 같습니다.
추가로, 일반적인 DPM은 '허수아비 사이즈의 보스 몬스터에게 최대로 가할 수 있는 평균 데미지'가 됩니다. 만드는 사람에 따라 조건을 바꿀 수는 있지만, 일반적으로는 딜량을 최대화시키는 조건 하에서 계산된다는 것입니다. 그러므로 실제 보스에서 안 쓰는 딜사이클이라고 DPM에서도 쓰면 안 된다는 규칙이 없다는 겁니다. 이런 문구를 왜 적었는지는 DPM 관련 다른 분들의 게시글들을 보셨다면 분명히 이해할 수 있으시라 믿습니다.
2. DPM을 계산하는 방법 일반적으로 크게 2가지로 나뉩니다.
2.1 Excel 등을 이용한 산술적 계산: DPM 자체가 분당 평균 딜량이므로, 각 요소별로 분당 평균 시전 횟수를 계산해 평균 딜량을 유추해 내는 방법입니다. 프로그래밍 없이 산술적으로 접근이 가능하다는 것이 가장 큰 장점이며, 대신 확률에 따라 복잡하게 변하는 요소는 계산하기 꽤 힘들고, 이 경우 근사를 많이 적용하여야 해서 정확도가 떨어질 수도 있는 것이 단점입니다(제가 이 방법을 채택하여 데슬 DPM 자료를 제작하고 있습니다).
2.2 프로그래밍을 이용한 시뮬레이션: 프로그래밍을 통해 직접 허수아비를 타격하는 것처럼 상황을 만들어 계산하는 방법입니다. 장점으로는 확률을 직접적으로 적용할 수 있기에 충분히 긴 시간 동안 시뮬레이션을 수행하면 훨씬 정확한 결과를 이끌어낼 수 있으며, 시간에 따른 flow 등을 나타내기에 매우 유리하나, 단점으로는 코드를 짜는 것이 상상 이상으로 복잡하다는 것과, 충분히 긴 시간을 주지 않으면 매우 부정확한 결과가 나온다는 것입니다(극단적으로 고작 1분간 시뮬레이션을 수행하면 1분 극딜의 결과만 나오게 됩니다). 기본적으로 Excel에서 단순 함수를 사용하는 것보다 코딩의 난이도가 훨씬 높기도 하구요.
3. 영향을 미치는 요소들 딜량은 정말 많은 요소들의 영향을 받습니다. 당장 제 DPM 시트에 각 스킬의 딜량을 계산할 때 들어가는 요소들만 해도 대충 25개 정도가 되고, 사용되는 셀의 개수는 2,200개가 넘습니다.
3.1 스탯공격력, 상수들 우선 딜량의 가장 기초가 되는 스탯공격력입니다. 스탯공이 전부는 아니지만, 이것으로 스펙을 판별하던 시절이 있었을 정도로 중요한 지표입니다. 대부분의 직업의 스탯공격력은 다음과 같이 구할 수 있습니다: 스탯공격력 = (p: 주스탯, s: 부스탯, a: 총 공격력or마력, k: 기타 상수) 그러면 이제 총 주스탯, 부스탯, 공격력/마력, 상수들이 어떻게 최종적으로 결정되는지 봅시다.
3.1.1 주/부스탯 요즘 스펙의 척도로 아주 많이 사용되지요. 우선 스탯이 최종적으로 어떻게 계산되는지를 봅시다. 최종 스탯 = (순수 스탯 + 메이플 용사에 의한 증가량 + 스탯 증가효과)*(주스탯%/100) + (스탯%가 미적용되는 증가효과) 순수 스탯은 아시다시피 AP 투자로만 올린 스탯입니다. 200레벨 이상의 일반 직업의 경우 (레벨*5 + 18)입니다. 여기서 메이플 용사 계열 스킬은 “순수 스탯”을 증가시켜 준다고 보시면 됩니다. 예를 들어 250레벨인 일반적인 직업 유저의 순수 주스탯은 1268이고, 쓸오더로 31레벨을 만든 메이플 용사는 해당 값의 16%인 203 가량을 증가시켜 줍니다. 최종 주스탯을 % 단위로 증가시키는 것이 아니므로 참고하시기 바랍니다. 그리고 메이플 용사로 인해 증가한 주스탯에도 주스탯 % 증가가 적용됩니다. 식을 보시면 알 수 있지만, 일반적인 스탯 증가효과와 합적용되어 있지요. 이를 통해 메이플 용사 ON/OFF 스탯을 비교하여 주스탯%를 알아낼 수도 있습니다. 이 방법은 추후에 활용 편에서 설명하도록 하겠습니다.
3.1.1.1 예외적인 경우 대부분 주스탯, 부스탯을 각각 하나씩 가지지만, 예외적으로 섀도어/듀블/카데나는 부스탯이 STR/DEX 2개로, 각각 값이 환산되어 부스탯 총합으로 들어가며, 제논은 부스탯이 없고 주스탯이 STR/DEX/LUK 3개로 각각 값이 더해진 총 값이 주스탯으로 들어갑니다. 이를 보정하기 위해 별도의 상수가 존재하는데 이는 후술할 무기/직업 상수로 다루겠습니다. 특히 데몬어벤져는 주스탯이 MaxHP로, (레벨업이나 AP 투자로 획득한 HP)/14 + (그 외 모든 방법으로 획득한 HP)/17.5를 주스탯으로, STR을 부스탯으로 적용받으며, 장비로 획득한 HP는 모두 절반만 적용되는 페널티가 있습니다. 다만 그 외 다른 요소로 획득하는 HP에는 해당 페널티가 적용되지 않습니다. 2021.01.02 수정: 1/2 페널티는 장비에만 적용된다고 합니다. '초코모찌'님 감사합니다
3.1.2 공격력/마력 공/마는 보시다시피 스탯 환산값에 바로 곱해지므로, 딜량에 정비례하는 매우 중요한 값입니다. 나머지 조건이 모두 동일하다면, 총 공격력이 2000인 유저는 1000인 유저에 비해 정확히 2배의 딜량을 뽑아낼 수 있죠. 다만, 공/마는 정직하게도 농장 쁘띠루미(이퀄)같은 극히 드문 경우가 아니면 공/마%가 미적용되는 공/마는 사실상 없습니다. 그래서 공/마는 그냥 (획득한 모든 공마)*(1 + 공마%/100)으로 계산해버리면 됩니다(일반적으로 모든 공/마 수치를 더하는 것은 누락 가능성이 높고 매우 개수가 많기에 보통 스탯공격력에서 역연산으로 공/마% 수치가 적용되지 않는 순수한 공/마 수치를 구해 스탯 등과의 효율 비교를 하게 됩니다). 여기서 많이들 오해하시는 부분이 있는데, 공/마%가 높다고 공/마(퍼센트 아님)의 상대적인 효율이 변동되지 않는다는 점입니다. 예를 들어 보죠. 순공이 1000이고 공%가 100%, 200%인 두 유저가 있습니다. 이 때 두 유저의 총 공격력은 각각 2000, 3000입니다. 여기서 공격력 500 옵션을 추가로 받으면, 두 유저의 총 공격력은 각각 3000, 4500이 됩니다. 둘 다 최종 데미지 50% 증가로 동일한 상대적 효율을 지닙니다(절대적인 증가량을 보는 것이 아닙니다). 나머지가 동일할 때 공1 = 스탯 n 환산 시 n값이 동일하게 찍힌다는 겁니다. 그렇기에 그래서 공마%를 일종의 데미지% 같은 개념이나, 합연산되는 최종데미지% 같은 개념으로 취급하는 것도 좋은 아이디어입니다.
3.1.3 무기/직업 상수 본래 무기 종류간 공/마 차이를 메우기 위해 무기상수가 사용되었는데, 아무튼 현재의 역할은 단순 최종데미지%처럼 스탯환산값과 공/마를 곱한 값에 또 곱해지는 값입니다. 무기상수는 다 적기에는 너무 많기에, 이곳 팁게나 X무위키 같은 곳을 찾아보시면 바로 찾으실 수 있으므로 생략합니다. 직업상수는 특정 직업들에게 무기상수와 별도로 추가로 곱해지는 상수입니다. 따로 직업상수가 없는 직업들은 직업상수를 1.0으로 취급하면 되고, 모험가/플위 1.2(다른 완드나 스태프 쓰는 에반 배메는 최종 데미지 개념인 직업상수 대신 마력%를 패시브로 줘버리는 바람에 욕을 대차게 먹었습니다), 제논 0.875, 히어로 두손 144/134(그냥 무기상수가 1.34 대신 1.44로 적용된다고 생각해도 무방), 한손 13/12(역시 무기상수 1.2 대신 1.3 적용으로 취급 가능).
3.1.4 데미지% 상수 k의 일부입니다. 말 그대로 데미지를 뻥튀기시켜 줍니다. 스탯공격력을 증가시키며, 각 요소간 합연산으로 결정되어 데미지% 최종값을 결정하여 스탯공격력에 (1 + 데미지%/100)이 곱해지게 됩니다. 다만 나중에 후술하겠지만, 스탯창 데미지%는 진짜 데미지%가 아닙니다. 그래서 진짜 딜량을 연산할 때는 데미지%가 포함된 스탯공격력을 사용하지 않습니다. 스탯창에 보공이 1%라도 있거나, 스킬에 추가 데미지%/보공이 붙어 있다면, 데미지%가 포함되지 않은 스탯공격력에 딜량 연산 시 마지막에 데미지% 계수를 곱해 연산해야만 합니다.
3.1.5 최종 데미지% 데미지%와 달리, 각 요소 간 곱연산으로 결정됩니다. 데미지%의 경우에는 10%, 20% 2개가 있으면 더해서 30% 증가로 1.3배가 됩니다만(보공, 추가뎀% 등 다른 요소 일체 미고려), 최종 데미지 10%, 20%가 각각 있다면 1.1*1.2 = 1.32가 되어, 최종 데미지 32% 증가 효과가 됩니다. 따라서 많을수록 상대적 효율이 떨어지는 데미지%와 달리, 최종 데미지%는 계속 추가되더라도 상대적 효율의 변동이 전혀 없습니다. 그러므로 최종 데미지%가 fd1 %, fd2 %, fd3 %..가 있다면 스탯공 계산식에는 (1 + fd1/100)*(1 + fd2/100)*(1 + fd3/100)*.... 이런 식으로 모든 요소가 곱해진다고 보시면 되겠습니다.
솔직히 아직 한참 적을 것이 더 많은 것 같은데, 일단 양이 너무 많아진 듯해서 1부는 여기서 마칩니다. 다음에는 데미지% 계열 옵션, 방무, 크리, 공속 같은 다른 요소들로 시작하겠습니다.
EXP
405,508
(26%)
/ 432,001
이니수집가
데슬조아
Lv. 287 DEMONSLAYER
Lv. 278 DEMONAVENGER Lv. 266 NIGHTLORD(MaplestoryM)
|


사냥원리