PallMark 탑 100층 곡선: 한 대에 죽는 1층에서 4층의 벽까지
PallMark 탑의 적 체력·적 공격력·등장 밀도를 1층부터 100층까지 한 장의 곡선으로 묶은 과정과, 자동 플레이 실측으로 4층의 벽을 진단하며 숫자를 고친 기록.

PallMark의 탑은 층을 하나씩 올라가는 구조다. 층에 들어서면 적이 사방에서 몰려오고, 정해진 수를 처치하면 보스가 나온다. 보스를 잡으면 계단이 열린다. 1층의 처치 목표는 60마리, 2층부터는 72마리다. 목표는 100층 너머까지 올라갈 수 있는 탑이다.
층이 100개가 넘으면 숫자를 층마다 손으로 넣을 수 없다. 그래서 난이도를 곡선 몇 개로 묶었다. 이 글은 그 곡선이 어떻게 생겼는지, 그리고 곡선만 믿었다가 4층에서 막힌 이야기다.
곡선 세 개로 탑 전체를 정한다
탑의 난이도는 세 값이 정한다. 일반 적 체력, 적이 나를 쓰러뜨리는 데 걸리는 공격 수(M), 등장 밀도 배율(S)이다. 셋 다 1층에서 100층까지 정의하고, 100층 이후로는 100층 값을 그대로 쓴다.
게임 데이터에서 직접 뽑아 그린 곡선. 왼쪽은 적 체력, 오른쪽은 적의 공격 수 M과 밀도 배율 S.
| 층 | 기대 진입 레벨 | 일반 적 HP | 보스 HP | M(적의 공격 수) | S(밀도 배율) |
|---|---|---|---|---|---|
| 1 | 1 | 4 | 80 | 50 | 1.00 |
| 10 | 11 | 12 | 120 | 50 | 1.045 |
| 20 | 22 | 25 | 160 | 46.7 | 1.095 |
| 40 | 41 | 49 | 280 | 40 | 1.196 |
| 60 | 60 | 68 | 440 | 33.3 | 1.297 |
| 100 | 99 | 116 | 840 | 20 | 1.5 |
기대 진입 레벨은 “1층에서 60마리, 이후 층마다 72마리를 잡고 보스를 한 번 잡은 뒤 올라온 각인병”을 기준으로 계산한 값이다. 이 레벨의 캐릭터가 시작 무기만 들었을 때 몇 대에 적을 잡는지, 적은 몇 대에 나를 잡는지를 곡선이 계산한다.
전 구간 “한 대”였던 체력
처음에는 일반 적 체력이 1층 4에서 40층 5 정도였다. 사실상 탑 전체가 한 대였다. 쓸어버리는 맛은 있었지만, 공격 패시브나 출혈·기절 같은 효과가 의미가 없었다. 한 대에 죽는 적에게는 치명타도 출혈도 필요 없다. 30번 주행을 돌려 보니 확정 치명 패시브는 다섯 번 발동했고, 출혈 3겹은 0.2%였다.
9월 18일에 정한 기준은 “층이 오를수록 몇 대로”였다. 1층은 한 대 그대로 둔다. 장비 없는 기대 레벨 캐릭터의 평타 기준으로 10층 약 2대, 20층 약 3대, 40층 4~5대로 완만하게 올린다. 장비와 광역기, 패시브로 이것을 다시 한두 대로 줄이는 것이 성장의 맛이 되도록 했다. 완만·기준·가파름 세 안을 하네스로 재 보고 기준안을 골랐다. 그날 커밋 메시지는 “일반 적 HP 기준안(1층 4 → 10층 12 → 20층 25 → 40층 49 → 100층 116)“이었다.
같은 커밋에서 보스 체력을 떼어 냈다. 원래 보스는 일반 적 체력에 곱해진 값이었는데, 일반 적을 올리면 보스도 같이 부풀었다. 보스는 기존 층별 값(80→840)을 독립 데이터로 두었다.
적의 공격력도 같은 날 크게 내렸다. 직접 플레이해 보니 너무 아팠다. M 곡선을 “1~10층 50대, 100층 20대”로 정하고, 기대 레벨의 방어까지 역산해 적 피해를 뽑았다. 1층 적의 실제 피해가 14에서 3이 됐다. 자동 플레이 봇으로 20개 빌드를 세 시드씩 키워 보니 41레벨 도달이 0/60에서 57/60이 됐다.
밀도: 한 마리 잡아야 한 마리 나오던 아레나
9월 22일, 홍보 영상을 찍으려다 화면이 한산하다는 것을 알았다. 45초 동안 처치 15마리, 분당 30마리였다. “쉴 새 없이 몰려드는 적”과 정반대였다.
원인은 코드에 두 군데 있었다. 동시 생존 상한에 닿으면 쌓아 둔 스폰 적립을 버렸다. 그러면 상한 이후에는 한 마리를 죽여야 한 마리가 나온다. 또 층마다 스폰 속도 경사가 0부터 다시 시작했다. 지금은 적립을 상한까지 보존하고, 경사는 층 번호만큼 앞당겨 시작한다.
| 항목 | 값 |
|---|---|
| 경사 시간 | 300초 |
| 초당 스폰 | 0.8 → 4 |
| 동시 생존 상한 | 16 → 96 |
| 층별 선행 출발 | 60초 × (층 − 1) |
60초씩 앞당기면 6층부터는 문을 열자마자 최대 밀도다. 여기에 S가 곱해져 100층에서는 초당 6마리, 동시 144마리까지 간다.
4층의 벽을 숫자로 파헤친 사흘
곡선을 정리하고 나니 이번에는 봇이 4층에서 계속 죽었다. 각인병은 10번 방문해 10번 모두 4층에서 쓰러졌다. 9월 26일부터 원인을 하나씩 지워 나갔다.
먼저 4층 성소의 원거리 전령 사거리를 7.0유닛에서 2.8유닛으로 줄였다. 전령이 주는 초당 피해가 각인병 기준 43% 줄었지만 벽은 그대로였다. 다음으로 의심한 것은 밀도였다. 4층에 들어서고 30초 만에 동시 생존 적이 66~73마리가 됐다. 선행 출발을 60초에서 30초, 15초로 줄여 재 봤다. 동시 생존은 72.7에서 48.0, 35.4로 줄었는데 벽은 여전히 4층이었다. 적이 줄면 경험치도 줄어 레벨 12 대신 11로 도착했다. 효과가 상쇄된 것이다. 밀도 가설은 반증됐고 60초를 유지했다.
사망 시 피해를 출처별로 나눠 보니 네 종이 고르게 나눠 가졌고, 79~85%가 평타였다. 특정 몬스터 문제가 아니었다. 그래서 등장 비중을 손봤다. 성소 몬스터 선택에 가중치 필드를 넣어 근접 3, 근접 3, 원거리 1, 원거리 1로 바꿨다. 원거리 몫이 49%에서 24%가 됐다. 이때 각인병이 처음으로 4층 처치 목표를 채우고 보스를 봤다. 버티는 시간 대비 목표 달성에 필요한 시간의 여유가 0.48배에서 0.87배로 올랐다.
근접 기사의 사거리를 2.1에서 1.4로 줄이는 안도 재 봤다. 오히려 여유가 0.87에서 0.67로 떨어져서 적용하지 않았다. 마지막 원인은 적이 아니라 플레이어 쪽에 있었다. 봇이 장비를 줍고도 끼지 않았고, 초반 층에 떨어지는 무기가 클래스와 맞지 않았다. 1~10층 드롭을 클래스 무기와 요구 레벨에 맞추고 1층 보상에 클래스 무기를 확정으로 넣었다. 그 뒤 각인병은 9층까지 올라갔다.
곡선은 출발점, 벽은 실측으로 찾는다
지금 출시 체크리스트의 첫 항목은 “일곱 클래스 모두 봇으로 10층 이상”이다. 9월 27일에는 원소술사 마나 회복을 초당 2%에서 6%로, 역병사제를 1.5%에서 2.5%로 올렸다. 같은 날 자객의 1층 보상 단검이 빠져 있던 결함도 고쳤다.
곡선 세 개는 100층을 한 번에 설계하게 해 줬다. 하지만 4층의 벽은 곡선 밖, 손으로 넣은 사거리와 등장 비중, 그리고 장비 드롭에서 나왔다. 가설을 하나 세우면 실측으로 깨고, 반증된 가설은 되돌렸다. 느리지만 그 편이 숫자를 믿을 수 있었다.
탑에서 받는 보상은 층 보상 상자 글에, 몰려드는 적을 144fps로 돌리는 이야기는 적 무리와 성능 글에 정리했다. 결정론 시뮬레이션 위에서 이런 실측이 가능한 이유는 포팅 글에 있다. PallMark는 개발 중이며 Steam 출시 예정이다. 게임 소개는 PallMark 페이지에서 볼 수 있다.


