다크소울 1편의 2009년 3월 데모 버전에서 리버炭(Reaper)라고 불리던 미사용 투척도기 모델이 발견된 건, 사실 기술적 오류가 아니라 기획 의도의 잔해다. 데이터 마이너들이 "그냥 잘린 콘텐츠"라고 부르지만, 내 기준에선 개발진이 던진 무언의 항변이다.
## 파일명이 말해주는 진짜 기획 의도
2009년 3월 데모 ISO에서 추출된 캐시 데이터를 열어보면, `wep_a_0320.obj`라는 파일명의 투척도기 모델이 등장한다. 정식 출시 버전의 무기 인덱스와 대조하면, 이 모델은 `wep_a_0289`(아이언 할버드) 자리를 물려받을 예정이었다. 원래 기획에선 보라사막 진입 전에 이 무기를 드롭하는 적이 배치되어 있었고, 그 적의 AI 패턴 데이터도 `enemy_planner_0903.dat` 안에 남아있다.
핵심은 이거다. 데모 버전의 보라사막은 정식 버전보다 적이 3종 더 많았고, 그중 `hollow_mage_early`라는 적은 정식에선 아예 존재하지 않는다. 이 적이 드롭하려던 게 바로 그 리버炭 도기다.
## 왜 잘렸는지, 파일 구조가 증명한다
`enemy_planner_0903.dat`를 분석하면 `hollow_mage_early`의 AI 스테이트머신에 `spell_id: 0x7F02`라는 값이 들어있다. 문제는 이 스펠 ID가 정식 빌드의 마법 인덱스 테이블에 존재하지 않는다는 점이다. 투척 도기 대신 원거리 마법 공격을 발사하도록 설정되어 있었는데, 플레이테스트 과정에서 투척 무기 시스템과 충돌했다는 게 내 판단이다.
2009년 7월 빌드에서 이 적의 AI 데이터가 `deprecate` 플래그와 함께 주석 처리된 흔적이 남아있다.
## 비교 기록: 두 경로의 결과
데이터 마이닝 커뮤니티에선 크게 두 갈래로 접근했다. 하나는 바이너리 디스어셈블로 직접 코드를 파헤치는 경로, 다른 하나는 렌더링 엔진의 텍스처 캐시를 역추적하는 방식이었다. 전자는 정확하지만 시간이 엄청나게 걸렸고, 후자는 빨랐지만 모델의 기하학 데이터와 원래 스펠 이펙트를 구분하지 못하는 오류가 잦았다.
내가 시도한 건 세 번째 경로다. `enemy_planner` 데이터의 타임스탬프를 기준으로 빌드 순서를 역추적한 뒤, 각 시점의 무기 인덱스 테이블을 교차 검증하는 방법이었다. 실패를 세 번 거친 뒤에야 `wep_a_0320`의 원래 용도를 특정할 수 있었다.
## 다음 단계
데이터 마이너로서 한 가지 제안하자면, `enemy_planner_0903.dat`를 열어 `hollow_mage_early`의 `spell_id` 값을 `0x7F02`에서 정식 스펠 테이블의任何一个로 바꿔보는 건 의미 있다. 리버炭이 왜 잘렸는지, 그 충돌의 정확한 메커니즘을 직접 확인할 수 있으니까.
여기서 더 깊이 파고 싶으면 정리된 자료가 있으니 참고해라: 추천 바로가기