데이터마이닝으로 뽑아낸 보스 AI 스크립트가 실제 구동 메커니즘과 정확히 일치하면, 그건 '버려진' 콘텐츠가 아니라 '의도적으로 제거된' 콘텐츠라는 뜻 아닐까?
나 2019년에 합정역 근처 작업실에서 인디 타이틀 하나 만드느라 밤 새우던 놈이다. 지금은 흘러간 세월이고, 요즘 애들은 모를 수도 있지만. 그때 즐겨 찾던 마포 쪽 소셜 라운지들이 지금은 다 사라졌거나 분위기가 바뀌었을 거다. 그 라운지 뒷자리에서 커피 쳐마시면서 모델링 파일 뒤지던 감각이 아직도 손끝에 남아있거든.
컷된 보스 세 종의 AI 구조부터 파악해라
데이터마이닝 커뮤니티에서 2022년 말부터 본격적으로 올라온 파일 디렉토리 목록을 보면, boss_unused_01, boss_unused_02, boss_unused_03 세 개의 디렉토리가 _cut 태그와 함께 묶여 있었다. 문제는 이 디렉토리 안에 들어있는 AI 스테이트머신이 단순한 '미완성'이 아니었다는 거다.
첫 번째 미사용 보스의 스크립트를 보면, 패턴 전환 조건이 `HP < 40%일 때 phase_2_rage_mode`로 넘어가는데, 여기서 발동하는 콤보 패턴의 프레임 데이터가 일반 보스들보다 1.8배 길다. 공격 전摇동(wind-up)이 45프레임 이상이면 플레이어 측에서 회피 타이밍 자체가 불가능하다. 이건 난이도 문제가 아니라 기본적인 UX 설계 위반이다.
왜 잘라냈는지는 코드 말고 맥락을 봐야 한다
두 번째 보스의 경우는 좀 더 흥미롭다. boss_unused_02 디렉토리의 behavior_tree.asset 파일에서 summon_phase라는 노드가 존재한다. 이 노드가 발동되면 3초 간격으로 미니언 4마리를 소환하는 구조인데, 문제는 소환된 미니언들의 AI가 보스와 공유하는 threat_table에 등록되지 않았다. 결과적으로 보스가 자기 소환수한테 피격당하는 버그가 재현됐다.
세 번째는 더 đơn하다. boss_unused_03의 리그 모델을 열어보면 메쉬 단계에서 이미 LOD_0 이상의 디테일이 적용돼 있었다. 텍스처도 4K_diffuse까지 완성돼 있었고. 그러니까 퀄리티 문제로 자른 게 아니라, 기획 의도 자체가 흔들렸다는 뜻이다.
나 합정에 있던 소셜 라운지에서 이런 이야기로 밤새爭論하던 사람들 기억나는데, 그때 한 동료가 그랬다. "잘라낸 콘텐츠는 실패가 아니라 선택이다." 맞는 말이다. 하지만 그 선택의 근거를 제대로 기록 안 남긴 건 개발자로서의 태만이지.
데이터마이닝 결과를 맹신하면 안 되는 이유
boss_unused_01의 AI 패턴이 플레이 불가능한 구조라는 건 분석상 맞다. 그런데 이게 실제 게임 내에서 플레이어가 마주쳤을 때도 같은 결과를 낼지는 모르는 일이다. 왜냐면 데이터마이닝으로 추출한 건 BehaviorAsset이고, 실제 인스턴스화될 때 Override 블렌딩이 걸릴 수 있다. 합정 뒷골목 작업실에서 모델 프리뷰 돌리면서 "이거 완성이네" 했다가 빌드 돌려보면 날아가는 거 부지기수였다. 코드랑 실행은 항상 한 단계 괴리가 있다.
프라이빗 소인원 파티나 이런 거 하려면 뒷골목 라운지보단 데이터를 읽는 눈이 먼저다
이 글 읽는 놈들이 혹시 합정이나 마포 쪽에서 인디 게임 관련 소규모 모임이나 프라이빗 파티 자리를 찾는 경우가 있을 수 있다. 그건 좋다. 그런데 그런 자리에서 "데이터마이닝으로 뭔가 대단한 걸 발견했다"는 식으로 떠들기 전에, 추출된 파일의 timestamp랑 build_version 확인부터 해라. 파일명만 보고 날짜 추측하면 틀리고, 틀리면 신뢰도 바닥이다.
아마 지금 합정에 남아있는 소셜 라운지 몇 곳은 아직도 작업실 겸용으로 쓰이는 데가 있을 거다. 거기서 이런 이야기 꺼내면 2~3명은 수긍할 거다.
---
가장 피해야 할 건 "데이터마이닝 파일이 있으니까 원래 넣으려던 콘텐츠다"라는 식의 섣부른 단정이다. 파일 존재와 의도 사이에는 항상 거짓말 같은 간극이 있다. 그 간극을 무시하고 글 쓰면, 결과물은 날조가 된다.