지난 11일 게임 디자이너 '채드 너빅(Chadd Nervig) - @Celestalon'은 차기 확장팩 드레노어의 전쟁군주에서 플레이어가 과거 레이드 보스를 혼자서 처치할 수 있는 이유에 대해 소개했다.
그가 제시한 내용을 요약하면 몬스터와 플레이어 레벨 차이에 비례하여 받는 피해량은 9레벨 이상일 때 90%까지 감소한다. 여기에 주는 피해량 역시 최대 10레벨 이상 차이날 경우 무려 16.5배수가 적용된다.
추가적으로 확장팩과 확장팩 사이에서 플레이어가 받는 보정값이 달라질 수도 있다는 사실을 언급했다.
예를 들어 69레벨 플레이어가 리치왕의 분노 초기 지역의 퀘스트 보상 아이템(138, 아이템레벨 115 이상)을 착용했을 때 불타는 성전의 몬스터를 상대하면 받는 피해량과 주는 피해량을 산출하는 공식이 달라질 수도 있다는 뜻이다.
이러한 계산식은 판다리아의 안개 전에 출시된 콘텐츠인 불타는 성전, 리치왕의 분노, 대격변 몬스터에게만 적용되므로 판다리아의 안개에 속한 몬스터와는 관련이 없다.
자세한 내용은 아래에서 확인할 수 있다.
해당 블루포스트 바로가기 : Warlords of Draenor Theorycraft Discussion
과거 레이드 보스를 혼자서 처치할 수 있는 세부사항에 대해 소개할까 합니다.('Mione-솔플로 유명한 죽기 유저'가 되지 않더라도 말이죠!) 여기에는 가상 코드도 포함되어 있습니다. 그러니 상상력을 발휘하시기 바랍니다!
■ 받는 피해 감소
플레이어는 자신보다 낮은 레벨의 몬스터에게 공격받았을 때 감소된 피해를 받으며, 이는 판다리아의 안개 전의 몬스터에게 적용됩니다. 이들 몬스터들의 공격으로 인한 피해량은 받는 피해 배수(DamageTakenFactor)로 곱연산이 적용되며 세부적인 수식은 다음과 같습니다.
- 레벨 차 = 플레이어 레벨 - 몬스터 레벨
- 만약 판다리아의 안개 이전 몬스터라면 최종 받는 피해 배수는 '1.0 - 0.1 * 레벨 차'와 '0.1' 중에서 큰 값을 취한다.
※ 주석 : 레벨 차에 따라 피해가 10%씩 감소. 최저는 10%)
- 그렇지 않다면 받는 피해 배수가 1.0이 된다.
▲ 계산식
LevelDiff = PlayerLevel - CreatureLevel
if (CreatureExpansion < Pandaria) then
// 10% DR per level diff, with a floor of 10%
DamageTakenFactor = max(1.0 - 0.1 * LevelDiff, 0.1)
else
DamageTakenFactor = 1.0
end
■ 주는 피해 증가
플레이어는 자신보다 낮은 레벨의 몬스터를 공격할 때 증가된 피해를 입히며, 이는 판다리아의 안개 전의 몬스터에게 적용됩니다. 이들 몬스터에게 입히는 피해량은 주는 피해 배수(DamageDealt Factor)로 곱연산이 적용되며 세부적인 수식은 다음과 같습니다.
- 레벨 차 = 플레이어 레벨 - 몬스터 레벨
- 만약 판다리아의 안개와 같거나 그 이후의 몬스터라면 주는 피해 배수는 1.0이다.
- 만약 레벨 차가 5 미만일 경우 주는 피해 배수는 '1 + 0.0625 * 레벨 차'가 된다.
※ 주석 : 1-4 레벨 범위에서 1.0625~1.25가 결정된다.
- 만약 레벨 차가 5 이상이고 9 이하일 경우 주는 피해 배수는 '1.5 + 0.5 * 레벨 차'가 된다.
※ 주석 : 5-9 레벨 범위에서 4.0~6.0가 결정된다.
- 위의 각 가정에 해당하지 않는다면 주는 피해 배수는 16.5가 된다.
※ 주석 : 10 레벨 차이 이상에는 16.5가 최대 배수다.
▲ 계산식
LevelDiff = PlayerLevel - CreatureLevel
if (CreatureExpansion >= Pandaria) then
DamageDealtFactor = 1.0
elseif (LevelDiff < 5) then
// Ranges from 1.0625 to 1.25 vs. 1-4 LevelDiffs
DamageDealtFactor = 1 + 0.0625 * LevelDiff
elseif (LevelDiff < 10) then
// Ranges from 4.0 to 6.0 vs. 5-9 LevelDiffs
DamageDealtFactor = 1.5 + 0.5 * LevelDiff
else
// Maximum factor of 16.5 vs. 10+ LevelDiffs
DamageDealtFactor = 16.5
end
■ 확장팩 사이의 피해량 보정
모든 확장팩의 아이템 레벨 곡선을 평준화하는 작업을 하고 있지만, 여전히 확장팩 사이에는 간격을 두고 싶었습니다. 이는 판다리아의 안개 전의 몬스터에게만 적용됩니다.
이를 위해 우리는 다른 방식의 주는/받는 피해 배수를 만들었습니다. 이들 배수를 사용거나 혹은 기존 배수를 이용하거나 어느 방법이라도 플레이어에게 도움이 될 것입니다.
- 해당 확장팩 최대 레벨은 각각 69, 79, 84, 89, 0, 0으로 정의한다.
- 해당 확장팩 장비 레벨은 각각 65, 115, 200, 346, 0, 0으로 정의한다.
- 최대 플레이어 레벨은 대상 몬스터가 속한 해당 확장팩 최대 레벨이다.
- 확장팩 장비 레벨은 대상 몬스터가 속한 해당 확장팩 장비 레벨이다.
- 만약 플레이어 레벨이 최대 플레이어 레벨보다 작거나 같고, 플레이어가 착용한 장비 레벨이 확장팩 장비 레벨보다 높다면 다음과 같이 배수가 정해진다.
① 장비에 의한 받는 피해 배수 = 1 - 0.01 * (플레이어가 착용한 장비 레벨 - 확장팩 장비 레벨)
② 장비에 의한 주는 피해 배수 = 1 + 5/3*0.01 * (플레이어가 착용한 장비 레벨 - 확장팩 장비 레벨)
③ 최종 받는 피해 배수는 '받는 피해 배수'와 '장비에 의한 받는 피해 배수' 중에서 작은 값을 취한다.
④ 최종 주는 피해 배수는 '주는 피해 배수'와 '장비에 의한 주는 피해 배수' 중에서 큰 값을 취한다.
▲ 계산식
MaxPlayerLevelsByExpansion = {69, 79, 84, 89, 0, 0}
IntendedItemLevelByExpansion = {65, 115, 200, 346, 0, 0}
MaxPlayerLevel = MaxPlayerLevelsByExpansion[CreatureExpansion]
IntendedItemLevel = IntendedItemLevelByExpansion[CreatureExpansion]
if (PlayerLevel <= MaxPlayerLevel and
PlayerEquippedItemLevel > IntendedItemLevel) then
AlternateDamageTakenFactor = 1 - 0.01 * (PlayerEquippedItemLevel - IntendedItemLevel)
AlternateDamageDealtFactor = 1 + 5/3*0.01 * (PlayerEquippedItemLevel - IntendedItemLevel)
DamageTakenFactor = min(DamageTakenFactor, AlternateDamageTakenFactor)
DamageDealtFactor = max(DamageDealtFactor, AlternateDamageDealtFactor)
end
※ 참고자료
■ 레벨 80 몬스터가 플레이어를 공격할 때 마법이 빗나갈 확률
플레이어 레벨 | 빗나갈 확률 |
78 | 0% |
79 | 3% |
80 | 6% |
81 | 9% |
82 | 12% |
83 | 15% |
84 | 26% |
85 | 37% |
86 | 48% |
87 | 59% |
88 | 70% |
89 | 81% |
90 | 90% |
91 | 90% |
92 | 90% |