Bookworm’s Archive 잡동사니 속에 숨겨진 보물 찾기

28Mar/06

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

오래 전 미국 한 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라는 값이 나오지 않습니다.

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

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

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

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

Filed under: 게임 4 Comments
28Mar/06

인스턴스 던전 초기화에 대해 알아봅시다

요즘 속칭 '작업'이라는 이름으로 인스턴스 던전을 짧은 시간 내에 여러번 초기화해서 사냥을 하는 일이 많습니다.

많은 분들이 인스턴스 던전을 초기화 하는 방법은 알고 계시지만 그게 정확하게 어떻게 해서 가능한지 그 이유에 대해 알아보기로 하겠습니다.

우선 인스턴스 던전에는 소유자라는 것이 있습니다. 예를 들어 갑 혼자서 인스턴스 던전에 들어가거나 '갑, 을, 병, 정' 네사람이 파티(파티장은 갑)를 해서 들어가는 경우 양쪽 모두 인스턴스 던전의 소유자는 갑이 됩니다.

또한 인스턴스 던전은 소유자 또는 소유자와 파티 중이 아닌 사람을 1분 뒤 귀환지로 내쫓아버립니다. 그럼 보통 혼자 인스턴스 던전에 있을때 초기화하는 방법을 위 내용을 바탕으로 분석해보겠습니다.

1. '갑'이 인스턴스 던전에 들어갑니다. (소유자 갑)
2. '을'을 파티에 초대합니다.
3. 인스턴스 던전 바깥에 있는 '을'에게 파티장을 넘깁니다.
4. '갑'이 파티를 탈퇴합니다. (소유자가 갑에서 을로 넘어갑니다.)
5. '갑'은 소유자인 '을'과 파티 중이 아니기 때문에 1분 뒤에 쫓겨난다는 메시지를 받습니다.
6. 접속 종료를 하고 재접속을 합니다.
7. '갑'이 소유한 인스턴스 던전이 없고 파티 중도 아니기 때문에 새로운 인스턴스 던전을 생성받아 입장시킵니다.

그렇다면 '어둠추적자 장갑 작업'과 같은 여러 사람이 인스턴스 던전에 있을 경우는 어떻게 초기화를 하는게 좋을까요?

위 방법처럼 하면 '갑, 을, 병, 정' 모두에게 새로운 인스턴스 던전이 만들어지기 때문에 1시간 동안 5회 인던 생성(입장) 제한에 걸리기 쉽니다. 그래서 약간 다른 방법이 필요합니다.

1. 파티장을 '갑'으로 가정 하겠습니다.
2. '갑'이 '을'에게 파티장을 넘기고 파티 탈퇴를 한 후에 쫓겨난다는 메시지를 보고 접속 종료 후 재접속을 합니다. (소유자가 '갑'에서 '을'로 변경)
3. 재접속을 하면 '갑'은 새로운 인스턴스 던전에 들어와있습니다.
4. 나머지 사람들은 장비를 벗은 후에 자살합니다.
5. 유령이 되면 파티를 모두 풉니다.
6. '갑'은 나머지 사람들을 모두 초대합니다.
7. 유령인채로 인스턴스 던전에 진입합니다.

인스턴스 던전 입구가 가깝다면 밖으로 나간 후에 파티를 풀고 '갑'이 초대한 후에 진입을 해도 됩니다만 검은바위 첨탑의 경우 나가는 순간 상대 진영에게 죽어 유령으로 뛰어야 하는 경우가 많기 때문에 어차피 유령으로 뛸꺼라면 입구까지 나가는 시간을 아끼는 것이 더 효율적입니다.

28Mar/06

태그 클라우드(Tag Cloud) 아이디어 한가지

이미 널리 쓰이고 있는 아이디어인지 모르겠습니다만 이런 것은 어떨까 싶습니다.

태그 클라우드를 보면 인기있는 태그의 경우 오랬동안 계속 나오고 그렇지 못한 태그는 전혀 나오지 못하는 것 같더군요. 그래서 새로운 태그가 인기를 받기 시작하면 가중치를 두고 일단 인기 태그로 표시하기 시작하면 시간에 따라 역가중치를 주어서 좀 더 많은 태그가 표시될 수 있도록 하는 겁니다.

가중치나 역가중치의 양을 주는 것에는 수많은 방법이 있을테니 그것은 기획자 & 개발자 의도에 따라 식을 만들면 되지 않을까 싶습니다.