정말 공대장에 따라 나오는 장비가 다를까요?

2006-03-28

오래 전 미국 한 GM의 말로 인해 아직도 논란이 많습니다.

GM의 말에 따르면 해당 인스턴스 던전에서 떨어지는 장비(아이템) 테이블은 공대장(인스턴스 던전 소유자) 캐릭터의 고유값과 진입 할 때 시각을 이용해서 만든 특정 시드값(seed)에 따라 결정된다는 것입니다.

위 내용은 지극히 당연한 이야기입니다. 장비 테이블을 만들려면 난수가 필요하고 난수를 만드는데는 시드값이 필요한데 보통은 이 시드값을 시각으로 만듭니다. 블리자드에서는 이 시드값에 좀 더 변화를 주기 위해 캐릭터 고유값까지 함께 이용한 것입니다.

문제는 컴퓨터가 쓰고 있는 난수값이란게 현실세계와는 달리 함수에 의해 만들어지는 일정한 규칙이 있는 놈이라는 점입니다.

예를 들자면, 1을 시드값으로 시작한 가상의 난수함수 f(x)는 10만번을 실행해도 0.1, 0.9, 0.3 식으로 시작합니다. 그러다가 결국 1로 돌아옵니다. 그 다음에는 다시 0.1, 0.9, 0.3 식으로 돌아갑니다.

또한 특정 시드값으로 하는 경우 절대 나오지 않는 숫자도 있습니다.

즉, 1을 시드값으로 시작 할 때는 0.5라는 값이 나오지만 2를 시드값으로 시작할 때는 난수값이 한바퀴 돌동안 0.5라는 값이 나오지 않습니다.

이렇게 컴퓨터에서 쓰는 난수라는 것이 불완전하기 때문에 난수가 제대로 필요한 곳에서는 수학이 아닌 물리적으로 난수를 만들어 주는 장치를 쓰기도 합니다.

자 이제 여기서 우리가 주목할 부분은 바로 시간입니다. 보통 컴퓨터 프로그래밍에서 난수 초기화를 할 때는 초단위의 값을 씁니다. 블리자드가 초단위의 값을 시드로 쓴다면 공대장의 고유값이 아이템 테이블이 미치는 영향은 아무 미미합니다. (초단위로 입장 시각이 같은 공격대는 없을 것입니다.)

하지만, 블리자드가 분 단위 또는 그 이상의 시간 간격을 시드값으로 반영한다면 공대장의 고유값이 아이템 테이블을 결정한다고 봐도 과언이 아닙니다. 왜냐하면 시드값이 같으면 같은 난수값이 순차적으로 나오기 때문입니다.

거기에 더해 하드웨어 없이 수학에 의존해서 만드는 난수라는 것 자체가 고른 값을 만들어내지 못하기 때문에 특정 값이 나오지 않거나 특정 값이 몰려서 나오는 현상은 어쩔 수 없는 것입니다.

4 Comments
Ged
2006-03-30 @ 12:24 오전

음.. 그래도 양심상 밀리세컨단위를 사용하지는 않을까요? 충분한 범위값 + 캐릭터 코드정도면 그래도 시드값의 다양성은 확보된다고 봅니다.
아니면 로랜츠의 끌개를 이용한 난수 생성기를 별도로 .. ;;;

응답
2006-04-13 @ 6:26 오후

Ged// 블리자드에 이에 대해 이야기를 하지 않으니 더 이상 자세한 이야기는 무리군요.

응답
--
2009-01-23 @ 2:42 오전

초단위가 아니라 밀리세컨드나 CPU 리얼타임을 쓴다면 얘기가 다르겠죠.
블리자드 프로그래머들이 그정도로 허술하지는 않을 듯…

하지만 의외로 그럴지도요…

응답
2009-01-23 @ 11:03 오전

— // 이제는 몰린다고 해도 크게 상관없을 겁니다. 기본적으로 티어는 토큰이니까요. 아지노스 저주 공대 같은 것이 있기는 하지만 그건 어디까지나 운이겠지요. 불성 오면서 랜덤 함수를 좀 개선한 느낌 같은 것이 있기도 하구요.

응답

답글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다.


*