블리자드
저희는
얼음 회오리 같이 이동 불가 효과에 묶인 적이 풀려나기까지 얼마나 많은 피해량이 요구되는지에 대한 많은 피드백을 받았습니다. 베타 테스터 분들은 너무 많은 피해량이 요구된다는 피드백을 남겨 주셨으며, 이가 사실임을 확인했습니다. 이 문제를 찾아내기까지는 시간이 조금 걸렸습니다만, 베타의 문제점을 설명하는 버그를 발견했으며 첫 투기장 시즌이 시작되기 전에 이를 수정할 수 있으리라 생각합니다.
이야기가장 먼저, 이 문제를 발견하기 가장 어려웠던 이유 중 하나는 바로 이가 무작위로 의도되었기 때문입니다. 이동 방해 효과를 푸는데 고정된 피해량은 존재하지 않으며, 플레이어들이 이를 계산할 수 있게끔 피해 범위만이 제공됩니다. 그렇기 때문에 문제를 재현하는 것이 쉽지 않았으며, 테스팅 자체가 그저 운에 따른 결과처럼 보이는 것 역시 가능했습니다.
처음 이 보고를 받은 이후 저희는 주문의 스크립트를 살펴본 후 이가 원 데이터와 일치하는지를 확인했으며, 결국은 그저 운에 불과하다는 결론을 내렸었습니다. 하지만 이런 문제에는 더 깊은 문제가 도사리고 있는 경우가 있다는 것을 경험을 통해 알고 있었으므로, 이런 피드백이 계속 들어오기 시작하자 추가 조사가 필요하다는 결론을 내렸습니다.
저희는 데이터 내 스크립트를 보고 있었으므로, 이가 100% 일치한다는 확신을 내릴 수 있었습니다-- 다만, 동시에 2007년과 동일한 코드를 이용하고 있지 않으므로 저희는 원 데이터가 현 코드와 호환되도록 하기 위해 했던 작업들이 문제를 일으키는 경우가 있다는 점을 인지하고 있었습니다. 이에 따라 저희의 다음 단계는 주문 스크립트의 인풋을 확인하고, 이가 동일한 정보를 모두 전송하는지를 확인하는 것이었습니다. 이런 검사를 마친 후 저희는 이런 문제가 운에 따른 결과라는 결론을 다시 한 번 내렸습니다-- 코드가 스크립트에게 전송하는 데이터 값이 일치하고, 결과를 가지고 도출한 내용이 일치했으며, 스크립트 그 자체도 일치했으니까요.
모든 것들이 옳은 것처럼 보였기에, 두 번째 조사 이후에는 다시금 무작위 계산이 저희의 의도와 정확히 일치한다는 결론을 내렸습니다.
그래도, 무언가 계속 틀렸다는 느낌이 들었습니다.
여기서부터는 버그를 발견하는 것이 무척이나 어려워지며, 가끔은 운이 좋기를 바랄 때도 있습니다. 계속해서 버그를 주시하고 디버거를 사용하던 도중, 저희는
얼음 회오리에 걸린 적에게
물화살이 적중했을 때, 이가 근접 공격으로 취급되는 것을 발견했습니다. 이는 저희를 진실로 이끈 힌트가 되었죠-- 효과를 푸는 데 필요한 계산에 문제가 있었던게 아닌, 버그 자체가 무작위였던 것입니다.
버그는 공식에 가끔 잘못된 피해 출처를 보냈고, 이가 늘 틀린 것이 아니었기 때문에 코드를 계산할 때 놓쳤던 것이었습니다. 알고 보니 근접 공격은 원거리 공격에 비해 이동 방해 효과를 풀 수 있는 확률이 훨씬 낮았고, 버그는 일부 원거리 공격이 무작위로 근접 공격으로 취급되는 문제였습니다.
결론이를 발견하는 것이 이렇게 어려웠던 이유는 이가 시스템이 가끔 무작위로 행동하여 출력되는 무작위 버그였기 때문이었습니다. 이 버그를 찾을 수 있게 도와주신 여러분께 감사드립니다!
긴급 수정 사항 예정 중흥미로운 점 중 하나는, 이 수정 사항이 적용되면 결국 이동 방해 효과를 풀 확률이 2007년의 원 불타는 성전 첫 시즌에 비해 조금 더 높아질 것이라는 점입니다. 이는 저희가 60 레벨 이상의 적의 이동 방해 효과를 풀 확률이 조금 높아진 2.4.3 패치 데이터를 이용하고 있기 때문입니다.
그렇다고 해서 마법사 부캐를 버리진 마세요!
얼음 방패도 있으니까요.