10%의 드랍률을 가진 아이템이 있다고 가정을 해보자
10% 드랍률을 컴퓨터에게 명령하기 위해서 함수를 만들어야 한다
랜덤한 수를 구하는 함수를 만들고
랜덤함수를 통해 1부터 100까지의 수를 무작위로 생성하게 한다
이렇게 생성된 수가 1~10 사이라면 해당 아이템을 드랍하게 만들면 되겠다
근데 이건 틀렸다
정확하게는 랜덤함수로 만들어진 수는 랜덤하지 않기 때문이다
왜냐면 컴퓨터는 랜덤이란 말을 모르기 때문에 인간이 수식을 만들어줘야 한다
랜덤하게 보이는 숫자를 만드는 식을 통해 랜덤에 가까운 수를 만든다
이런식으로 수식을 만들어주고 이를통해 랜덤(랜덤아님)한 숫자를 만든다
이러한 랜덤 숫자를 생성하는 함수들을 PRNG(Pseudo-random number generator)라고 한다
PRNG는 게임에서 드랍률, 막기확률등 확률에 관한 랜덤한 수를 적용하기 위해 사용되지만
PRNG를 통해 생성된 숫자들을 진짜 랜덤한 수라고 하기 힘들다
시작숫자(시드숫자)의 존재로 인해 패턴을 읽히게 되면 조작이 가능하며
개발자는 의도적으로 확률을 조정할 수도 있다
해서 완전한 랜덤은 아니지만 랜덤에 가까워 보이는 수를 창조한다고 생각해야 한다
우스게 소리로 하는 거지만 레이드 입장한 사람에 따라 혹은 공대장에 따라 시드가 정해진다고 말하는 사람들이 있다
블리자드는 플레이어에 의해서 시드의 영향을 미칠 수 있다고 주장하는 것을 부정한 바 있다
블리자드가 사용하는 PRNG는 "IBAA" 라고 한다
구글에 "Springer ISAAC IBAA"를 검색하면 관련 논문을 찾을 수 있다
간혹
"입장한 시간에 따라 시드가 정해진다" , "cpu의 미세클럭으로 시드를 정한다" 등의 개소리를 봤는데
어떤 게임사도 자사의 PRNG 시드가 어떤식으로 작동 하는지 밝히지 않는다
상식적으로 생각해봐도 시드의 중요성을 안다면 저런 말을 할 수가 없다
ㅈ문가들의 의견은 걸러들을 필요가 있다
'WOW > - 기타' 카테고리의 다른 글
와우에서 인풋렉을 무시해도 될까? 주문예약시간 시스템 이해하기 (0) | 2024.11.22 |
---|---|
렉을 유발하는 요소 (0) | 2024.09.06 |
암사 티어4셋 효과 발동 판정 - 용군단 4시즌 (0) | 2024.05.25 |
블러드 타이밍 때 웅장한 음악 재생하기 (0) | 2024.05.17 |