크리에이티브 디렉션 - kyhsa93/karda GitHub Wiki
작성: 크리에이티브 디렉터(CD), 2026-10-03, 최종본(라운드 3, AD·TD 조율 반영 — 조율 상태는 10장). 게임 디렉터 브리프의 CD 질문 네 개(보병이 전선을 미는 장치·죽음의 무게·첫 3분·세계의 두께)와 게임 이름에 답한다. 기준 코드:
4dc02f4(측정 체크아웃4e4fd93, 같은 코드). 모든 측정은 하레크 계곡 빠른 점령전 · 연합 · 20시드(달리 적은 곳 제외)이고, 방법은 부록에 있다. 저장소 코드는 고치지 않았다. "(추정)"은 측정 근거가 없는 것. 기존 소유자 결정(D1D13, A1A13)은 되돌리지 않는다. 바꾸자는 것은 모두 "제안"이다.
- 보병은 약한 게 아니라 도착하지 못한다. 보병 대리는 20시드 중 한 번도 적 거점 원 안에 들어가지 못했다(생존 시간 중 원 안 0%). 같은 대리를 거점 한가운데 내려놓으면 연합 승률이 30% → 80%(+50pp)로 뛴다. #186의 "+0pp"는 보병의 무게가 아니라 도착 실패를 잰 숫자다. 막힌 곳은 D 북쪽 270~290m의 #187 단이고, 흐름장·조향·실제 이동의 경사 기준이 서로 달라 생긴 정체다(TD 확정).
- 그래서 점령 세력 0.6은 올리지 않는다. 2로 올리면 95%·한 판 5분으로 경기가 무너진다. 고칠 것은 도착(첫 출격 거리, 거점 둘레 통행)이고, 주인공 배율은 "내가 있는 거점으로 아군이 모인다"(D5 집중 거점의 자동 기본값)로 준다.
- 한 판의 절반이 걷기다. 대리는 출격 후 D 앞 300m까지 약 5~6분 걷고, 10시드 중 3시드는 경기 내내 한 번도 맞지도 쏘지도 않았다. 첫 3분의 목표는 "90초 안에 첫 교전, 3분 안에 거점 원 진입".
- 역할 격차(보병 +0 대 아파치 +70)에 대한 입장: 도구가 공정해질 때까지 어느 역할도 수치를 깎거나 올리지 않는다. 보병의 진짜 상한은 이미 +40~+50pp(탐침)라, 고치면 격차의 대부분은 사라질 것으로 본다(추정). 목표 띠는 GD 제안(idle + 20pp 이상, 95% 미만, 역할 간 ≤ 25pp)에 동의.
- 이름은 "카르다 전선"에 동의. 톤은 건조한 군사 리얼리즘, 양 진영 모두 플레이어의 편이 될 수 있으므로 선악 없음.
브리프 1.3의 측정(보병 대리 30% = idle 30%)을 다시 돌리고, "보병이 어디에서 시간을 쓰는지"를 함께 쟀다.
| 측정 | 값 | 출처 |
|---|---|---|
| 보병 대리 승률 | 30% (6/20), 처치/사망 0.3/3.1 |
exp.ts 기본(브리프 1.3과 같은 시드·같은 결과) |
| 생존 시간 중 적·중립 거점 원 안에 있던 비율 | 0% (20시드) | exp.ts |
| 목표 거점 D 경계까지 거리 분포(생존 시간) | 100m 안 0% · 100 |
diag.ts 4시드 |
| 시드별 최근접 거리(D 경계) | 228 · 228 · 300 · 271m |
diag.ts 4시드 |
| 시드 1 추적 | 0 |
trace.ts |
| 첫 발견·첫 피격(10시드) | 3시드는 경기 내내 발견·사격·피격 0. 나머지 첫 피격 3.8~8.3분(중앙 약 6분) | first.ts |
--tele R: 매 생애가 시작될 때 대리를 목표 거점 중심에서 본진 쪽으로 R m 떨어진 곳에 내려놓는 탐침(이동 비용을 지운 상한). pstr는 플레이어 점령 세력(현재 0.6).
| 조건 | 연합 승률 | 중앙값 | 원 안 비율 | 처치/사망 | idle(30%) 대비 |
|---|---|---|---|---|---|
| 기본 대리 | 30% | 11.8분 | 0% | 0.3 / 3.1 | +0 |
| 기본 대리 · 세력 2 / 5 / 100 | 25% / 25% / 25% | 11.5분 | 0% | 0.3 / 3.0 | −5 (잡음) |
| 기본 대리 · 대리 목표를 집중 거점으로 | 25% | 11.4분 | 0% | 0.4 / 3.2 | −5 (잡음) |
| 거점 한가운데 · 세력 0.6 | 80% | 8.0분 | 60% | 0.7 / 3.5 | +50 |
| 거점 한가운데 · 세력 0 | 45% | 12.3분 | 85% | 6.3 / 14.8 | +15 |
| 거점 한가운데 · 세력 2 | 90% | 5.2분 | 38% | 1.8 / 2.5 | +60 |
| 거점 한가운데 · 세력 2 · 집중 거점 | 95% | 5.2분 | 36% | 1.1 / 2.2 | +65 |
| 거점 150m 앞 · 세력 0.6 | 70% | 9.2분 | 20% | 2.8 / 11.1 | +40 |
| 거점 150m 앞 · 세력 2 · 집중 거점 | 95% | 7.8분 | 6% | 1.4 / 5.8 | +65 |
| 거점 300m 앞 | 30% | 12.0분 | 0% | 0.0 / 0.0 | +0 |
| 거점 500m 앞 | 35% | 11.2분 | 0% | 0.1 / 1.5 | +5 |
VPA 쪽(같은 탐침): 기본 대리 50% → 거점 한가운데 95%, 세력 2 + 집중 거점 100%(5.9분). VPA 쪽 기본값이 더 높은 것(50% 대 30%)은 맵 비대칭이라고 말할 근거가 없다. TD가 idle 60시드로 잰 값이 연합 37%·VPA 50%이고 p ≈ 0.14다. 하니스 v3에서 양 진영 100시드씩 다시 잰다.
읽는 법:
- 세력 숫자는 도착 전에는 아무 의미가 없다(세력 100도 25%). 도착 후에는 0.6만으로 +50pp. 세력 0으로도 +15pp — 원 안에 서서 적 점령을 막고(교전 중 판정) 총알을 받아내는 것만으로도 영향이 있다.
-
300m·500m 앞에서 내려도 0%, 150m 앞에서는 20%. D 둘레 약 230
300m 띠에 대리가 넘지 못하는 무언가가 있다(300m 탐침은 20시드 처치 0·사망 0 — 싸우다 막힌 게 아니라 길에서 갇힘). 원인(TD 확정, 테크니컬-디렉션 7장): 정체 지점은 D 북쪽 270290m의 #187 단(경사 37~46°, 3m 단)이다. 경사 기준이 셋으로 갈린다. 흐름장은 32°로 4m 칸 중심만 보고, 조향 탐침은 4m 앞을 30°로 보고, 실제 이동은 35°로 본다. 그래서 흐름장이 내준 길이 실제 이동에서 막힌다. 대리는 340초부터 전진 입력 중 스텝의 54%에서 한 걸음도 못 움직였다. 사람도 같은 벽(풀색인데 못 오르는 37° 띠)을 만난다. - 20시드의 표준오차는 약 ±10pp라, ±5pp 차이는 잡음이다. 이 표는 방향 확인용이다. 판정은 TD 하니스 v3 형식(100시드, Wilson 95% 구간)으로 다시 한다(4.4). 다만 기본 대리 30%(95% 구간 15
52)와 거점 한가운데 80%(약 5892)는 구간이 겹치지 않는다. - TD 측정(테크니컬-디렉션 4.2)의 "거점 영역 안 19.9초(2.8%)"는 아군 시작 거점을 포함한 모든 거점이고, 위 0%는 비소유 거점만이다. 둘 다 "적 거점에는 사실상 가지 않는다"는 같은 결론이다.
- 탐침은 이동을 지운 상한이다. 실제 설계 목표는 이보다 낮은 띠(4.4)다.
결론: #186의 질문("보병 한 명에게 무게가 있나")에 대한 답은 "있다, 크다". 진짜 질문은 "보병 한 명이 거점까지 가는가"이고, 지금은 대리도 못 가고, 사람이 가는지는 아무도 확인하지 않았다(#101 미확인).
| 시각 | 보병 플레이어가 하는 일 | 전장 |
|---|---|---|
| 0:00 | 배치 화면(첫 배치만 시계 멈춤), 가장 가까운 아군 스폰(시작 거점 A 또는 분대 옆)에서 출격 | 봇 분대·차량이 중앙 D로 출발 |
| 0:00~5:40 | 걷는다(아군 스폰 → D 북쪽 300m, 약 1.5km) | 차량이 먼저 D에 도착, 소유 바뀜 |
| 5:40~ | 거점 원 밖 280~310m에서 맴돈다 / 다른 시드는 6분 전후 첫 피격·첫 사망 | 출혈·분대 교전으로 티켓이 줄어듦 |
| 11:48 | 경기 끝(중앙값). 처치 0.3, 거점 점령 참여 0 |
한 판의 절반을 걷고, 나머지 절반은 결과에 닿지 않는다. 10시드 중 3시드는 첫 총성도 없다.
| 시각 | 경험 | 그 순간의 결정 |
|---|---|---|
| 0:00~0:20 | 배치: 진영 그림 위에 거점 3개, 전방 집결지(rally) 스폰이 기본 선택(본진 아님, 4.1 합의. GD 판정) |
어디로 갈지(가장 가까운 비소유 거점이 강조) |
| 0:20~1:30 | 집결지에서 거점으로 접근. 능선 너머 깃발이 보인다. 첫 교전 ≤ 90초 | 길(능선·숲·도로) 고르기 — P2 |
| 1:30~3:00 | 거점 원 진입, 점령 바에 내 몫이 보인다. 근처 아군 분대가 합류(자동 집중, 4.3) | 원 안에 버틸지, 엄폐로 빠질지 |
| 3:00~5:00 | 첫 거점 넘김 또는 첫 사망 | 죽으면: 같은 거점 근처 분대 옆 vs 본진의 탈것 |
| 5:00~9:00 | 전선 이동. 두 번째 거점(상대 시작 거점)을 노리거나 뒤집힌 거점을 되찾는다. 이 구간에 탈것으로 갈아탈 이유가 생긴다(3.2) | 보병으로 계속 / 전차·아파치로 |
| 9:00~12:00 | 티켓 경고 무전, 막판 거점 다툼 | 지는 쪽이면 출혈을 막을 거점 하나 |
| 경기 끝 | 보고: 승패, 내가 넘긴 거점, 내 처치, "내가 없었을 때" 비교(4.4 지표의 게임 내 표현은 B8) | 다음 판: 다른 진영·다른 역할 |
다음 판을 하고 싶은 이유(B8 진행 전에도): 이번 판에 "내가 D를 넘겼다"는 기억이 남는 것. 다른 역할로 같은 거점을 넘겨 보는 것. 진행·보상(07장)은 이 기억 위에 얹는 기록이지, 기억을 대신하지 않는다.
같은 리듬을 7거점에서 세 번 반복한다고 본다: 개전 접근(04분) → 첫 전선 형성(412분) → 측면 거점 교환과 탈것 전환(1222분) → 막판(22분). 점령전은 보병 접근 거리가 더 길어지므로 2.2의 "첫 교전 ≤ 90초"를 지키려면 전방 집결지·수송(B4)이 필수다(추정, B5 측정 대상).
bc457d1(첫 출격 보병)을 유지한다. 근거:
- 보병은 조작이 가장 적고(이동·조준·사격), 사망 비용이 가장 낮다(티켓 1). D6 항상 열림 + 훈련 없음(D13)에서 처음 하는 사람에게 가장 안전한 역할.
- 1.2 탐침이 보여 주듯 보병은 도착만 하면 아파치에 준하는 영향을 낸다. 보병을 첫 역할로 두는 것이 문제가 아니라, 첫 역할이 걷기만 하는 것이 문제.
- 경기 안 첫 사망 뒤 배치 화면에서, 탈것 슬롯이 비어 있으면 그 슬롯에 한 줄 안내("공격 헬기 출격 가능 — 조종 보조 켬")를 띄운다. 자동 전환은 없다(P5 싸움을 고른다).
- 첫 경기에서 넘어가는 시점을 앞당기지 않는다. 이유: 아파치 첫 비행은 조작 학습 비용이 크고(조종 보조 기본 켬으로도), 아파치가 현재 혼자 이기는 역할이라(대리 100%) 첫 경기를 "아파치를 타면 이긴다"로 가르칠 위험.
- 측정: 첫 경기 플레이테스트(사람)에서 "탈것으로 갈아탔나, 언제"를 기록(CD-7). 하니스로는 못 잰다.
| 기준 | 목표 | 측정 | 버리는 조건 |
|---|---|---|---|
| 첫 교전 | 첫 출격 후 ≤ 90초(시드 중앙값), 경기 내내 교전 0인 시드 0개 | 하니스 firstContactSec(첫 발견·첫 사격·첫 피격) |
지금처럼 중앙 6분, 교전 0 시드 3/10 |
| 첫 거점 진입 | 출격 후 ≤ 3분(중앙값), 진입 0인 시드 0개 | 하니스 firstEntrySec, 원 안 비율 |
원 안 0% |
| 사람 확인 | 처음 하는 사람이 첫 빠른 점령전에서 적 1명 처치 + 거점 1회 점령 참여(01-비전 1.3 기존 기준) | 소유자·지인 플레이테스트 | 미수행이면 마일스톤을 닫지 않는다(브리프 O5 지지). 소유자 기기 녹화, 어려우면 스크린샷 3장(출격 직후·첫 교전·거점 원 진입)과 각 시각 메모(AD와 합의) |
브리프의 선택지(점령 세력, 따라오는 분대, 스폿 → 아군 화력, 분대 스폰) 중 무엇을 키울지에 대한 답. 원칙: "한 사람이 봇 몇 명 몫이냐"는 숫자를 키우지 않고, 그 한 사람이 있는 곳에 전장이 모이게 한다.
- 첫 출격 지점에서 가장 가까운 비소유 거점까지 ≤ 600m(빠른 점령전). 방법(합의): 맵 데이터에 진영별 전방 집결지
rally좌표를 두고 보병 첫 배치 기본값으로 한다. 지금 연합의 고정 스폰 중 가장 가까운 A → D는 1,640m라 정적으로는 이 상한을 못 지킨다. 집결지의 규칙: 거점이 아니다(점령 불가, 티켓·출혈·지휘관 효용과 무관). 스폰은 기존 "분대 옆"과 같은 조건(적 100m 안 없음, 최근 10초 교전 없음)일 때만 열리고, 아니면 배치 화면에서 닫힌다. 검사:schema.test.ts에 "보병 고정 스폰 → 가장 가까운 비소유 거점 원 ≤ 600m,footStep으로 도달 가능"을 둔다. - 거점 둘레 통행: 플레이어 보병이 거점 원 경계까지 걸어서 들어갈 수 있어야 한다. P2(지형이 무기다)는 "같은 지형이 양쪽에 같은 무기"일 때만 성립한다. 1.2의 정체는 #187 단 + 경사 기준 불일치다(TD 확정). 고칠 것(합의): ① 보병 이동·흐름장·조향이 같은 함수
footStep(35°, 0.5m 표본)를 쓴다. ② 보병 경사 한계는 45°(#187 (a))로 올리고, 남는 통행 불가 구간은 맵 쪽에서 막는다. ③ 맵 검사는 "보병 고정 스폰(본진·아군 거점·집결지)에서 각 거점 원까지footStep으로 닿는 경로가 있는가"이고, 낙제 시험을 함께 둔다. ④ 못 가는 곳은 바위·절벽 색으로 보이게 한다. 경사 한계와 셰이더의 바위 혼합은 sim 상수 하나를 공유한다(AD 지적: 지금은 35°에서 정점 색 기준 바위 약 25%라 "풀처럼 보이는 벽"이다). ⑤ 봇에도 같은 경사 규칙을 거는 것은 B4 차량 이동과 묶는다. 그때까지 봇과 플레이어의 규칙이 다른 것은 P2 공정성 부채로 남긴다. - 600m라는 숫자의 근거: 5m/s 질주 기준 약 2분, 엄폐 접근 포함 3분 안에 원 진입(3.3). 탐침에서 150m는 +40pp(목표 띠보다 강함), 300m 이상은 통행 문제로 측정 불가 — 600m는 추정이며 통행이 고쳐진 뒤 150/300/600m 곡선으로 다시 정한다.
- 근거: 1.2. 도착하면 0.6으로 +50pp(이동을 지운 상한), 2로 올리면 한 판 5.2분으로 빠른 점령전 목표(8~12분)를 깬다. 주인공 배율을 세력 숫자로 주면 "거점에 서 있으면 이긴다"(결정의 부재)가 된다.
- 03장 3.3의 "플레이어 혼자 중립 42초"는 지금도 적절하다(추정 유지).
- 규칙: 플레이어(어떤 역할이든)가 비소유 거점 원 + 150m 안에 10초 머무르면 그 거점이 자동으로 집중 거점이 된다(지휘관 효용 +0.8, 기존
FOCUS_BONUS). 수동 지정(D5)이 우선하고 90초 쿨다운을 공유한다. 무전 한 줄: "○ 분대, D로 합류한다". - D5 안이다: 직접 명령이 아니라 지휘관 가중치이고, 지정 권한 1개를 "기본값 = 내 위치"로 채우는 것뿐이다. 현재
Commander.focus는 코드에 있으나 아무것도 설정하지 않는다(D5 구현은 B5-5 미착수). 이 규칙만 B3로 당기자는 제안. - 1.2에서 집중 거점 단독 효과는 측정 불가(대리가 도착하지 않음, ±5pp 잡음)였고, 도착 상태에서 세력 2와 함께 +5pp(잡음 범위). 즉 아직 효과가 증명되지 않았다. 도착 문제가 고쳐진 뒤 단독으로 재고, 아래 기준에 못 미치면 버린다.
- 왜 이것인가: 사람은 봇 3명 몫을 원하지 않고 "내가 가니까 아군이 따라왔다"를 원한다(추정). 보이게 만드는 건 AD 몫이다(합의, 아트-디렉션 3.4). 원 경계는 세운 말뚝(높이 1.2m, 둘레 약 15m 간격, 상대색 띠)으로 한다. 150m에서 말뚝은 약 3.4px로 보이지만 지면 링은 0.03px라 CD 조건(원 밖 150m에서 보인다)을 못 지킨다. 지면 링은 40m 안의 보조로만 쓴다. 3D 깃발은 상대색(아군 시안/적 주황)에 모양 절대(■/▲)다. 점령 바에는 내 몫 칸과 플레이어 표식을 둔다. 원 안 아군 분대는 ▼ + 숫자로, 자동 집중이 걸리면 미니맵 아군 화살표가 1.5초 깜박인다.
- 비용(TD 확인): 판정은 1Hz 거리 비교라 무시할 만하다. 비용은 집중 전환이 일으키는 재계획(도로 A*)에서 생기므로 작업량 계수로 재고, 90초 쿨다운을 sim 규칙으로 둔다.
모두 battle:harness v3(테크니컬-디렉션 4.1) 하레크 빠른 점령전 100시드(최소 60) × 양 진영. 판정은 승률 Wilson 95% 구간이 기준 안에 있을 때만 통과이고, 구간이 기준에 걸치면 "미판정"(시드를 추가)이다. "idle"은 같은 진영 무입력 승률. 각 행이 올라가길 기대하는 레버 열(TD 4.2: 거점 안 시간·점령 방향을 바꾼 시간·실제 처치·스폿 기여 처치·사망 티켓)과 sim 비용 등급은 10.3.
| 장치 | 성공 | 버림 | 필요한 도구 |
|---|---|---|---|
| 대리 유효성(전제) | 보병 대리가 모든 시드에서 목표 거점 원에 1회 이상 진입, 생존 시간 중 원 안 ≥ 20%, 전진 입력 중 정지 시간이 0에 가까움 | 하나라도 미달이면 아래 모든 판정 보류 | 원 안 비율·최근접 거리·전진 중 정지 시간 지표(합의) |
| 4.1 도착(첫 출격 ≤ 600m + 통행) | 보병 대리 ≥ idle + 20pp, firstContactSec 중앙 ≤ 90, firstEntrySec 중앙 ≤ 180, 한 판 8~12분 |
idle + 10pp 미만이면 거리 상한을 300m로 낮춰 재측정, 그래도 미달이면 다른 원인 | 스폰 거리 설정 |
| 4.2 세력 0.6 유지 | 도착 후 보병 ≤ 95%이고 한 판 ≥ 8분 | 도착 후 95% 초과 또는 8분 미만이면 0.6을 낮춘다(올리지 않는다) | 기존 strength.player
|
| 4.3 자동 집중 | 같은 대리 두 벌(켬·끔)로 비교해 ≥ +10pp, 양 진영 다 (idle과는 비교하지 않는다. idle은 출격하지 않아 자동 집중이 걸리지 않는다) | +10pp 미만이면 자동 규칙을 빼고 수동(D5 원안)만 | 지휘관 focus 입력 |
| 영향의 모양 | 보병 대리가 있는 시드에서 "가운데 거점 소유 변경" 비율이 idle보다 높음(A11 기준 문구 재사용) | 승률만 오르고 거점 변경이 같으면(처치로만 이김) 장치가 "전선을 민" 게 아니다 | 기존 하니스 출력 |
| 상한 | 어떤 역할·장치 조합도 95% 미만(GD P0 띠) | 95% 이상이면 그 조합은 "이 역할만 고르면 이긴다" | — |
B3 병과(공병 대전차·지원 탄약·정찰 표식)는 이 표를 통과한 뒤 각자 같은 표로 잰다. 병과로 도착 문제를 덮지 않는다(브리프 금지 4).
보병 스폿 키는 이미 있다(170b657). 스폿은 봇 표적 선택에 들어간다(TD 코드 확인: 스폿 키 → Intel.mark → targeting.ts). 다만 보병 대리가 스폿 키를 누르지 않아 하니스가 이 레버를 잰 적은 없다. 하니스 v3 대리 행동에 넣는다. CD 입장: 스폿은 정찰병(B3)의 본업으로 두고, 돌격병의 전선 밀기 장치로는 세지 않는다. 처치 0.3인 대리에게 스폿 경로도 "보이는 적"이 있어야 하므로 도착 문제의 뒤에 있다.
- 지금: 보병 사망 1회 = 티켓 1, 경기당 3.1회 = 티켓 180 중 약 1.7%. 브리프 지적대로 티켓으로서는 비용이 아니다.
- 입장: 티켓 비용은 1로 유지한다. 봇 분대원과 같은 값(03장 3.3, 배틀필드 관례)이고, 첫 경기 무력감(D6)과 부딪히지 않는다.
- 죽음의 진짜 비용은 위치다: 10초 대기 + 다시 걸어오는 시간. 지금은 이 비용이 너무 크고(가장 가까운 아군 스폰에서도 5분 걷기) 동시에 아무 의미가 없다(어차피 거점에 닿지 못함). 4.1이 고쳐지면 "어디서 다시 나가나"가 매 사망의 결정이 된다 — 전방 분대가 살아 있으면 가깝게, 거점을 잃으면 멀게. P4′(한 생애가 한 출격)의 무게는 티켓이 아니라 다시 잃은 거리로 준다.
- 거리가 결정이 되려면 보여야 한다(AD와 합의): 배치 화면에 미니맵 크기의 스폰 지도를 둔다. 거점 기호와 스폰 ◎(집결지 포함)을 보이고, 각 스폰에서 가장 가까운 비소유 거점까지의 거리를 표시한다(B3 UI). 지금은 "분대 1 (A 근처)" 같은 글자 버튼뿐이다.
- 측정: 하니스
reentrySec(사망 → 다음 비소유 거점 원 진입, 중앙값). 목표 60~120초(추정). 30초 미만이면 죽음이 공짜(스폰이 너무 가깝다), 180초 초과면 죽음이 판을 끝낸다. - 탈것은 티켓이 이미 크다(아파치 격추 6). 탈것의 죽음은 "다시 타려면 리스폰 대기 120초"(
rosters.jsonrespawnSec)가 진짜 비용이고, 적절하다고 본다(추정).
-
측정이 아직 공정하지 않다. 보병 대리는 레버에 닿지 못하고(1.1), 아파치 대리는 봇 방공 실제 미사일을 맞지 않는다(
baseline.mdB1-15). 한쪽은 바닥 아래, 한쪽은 천장 위다. - 도구가 고쳐지기 전에는 어느 역할의 수치도 바꾸지 않는다. 특히 "아파치를 약하게"는 지금 판단하지 않는다(P1′ "아파치 그대로 유지"도 있음).
- 보병의 상한은 이미 +40~+50pp(1.2 탐침)라, 보병 쪽을 고치면 격차는 대부분 "아파치 상한값 vs 보병 실제값"으로 줄어들 것으로 본다(추정).
- 그 뒤에도 아파치가 95% 이상이면, 아파치 수치가 아니라 위협으로 맞춘다: 봇 방공(대공조·방공 차량)과 적 공격 헬기·전투기가 실제로 위협이 되게(P2: 저공·능선이 의미 있게). 아파치를 고르는 결정에 대가를 붙이는 것이지, 손맛을 깎는 것이 아니다.
- 목표 띠: GD 제안 P0(역할별 idle + 20pp 이상, 95% 미만, 역할 간 차 ≤ 25pp)에 동의. 단 "역할 간 ≤ 25pp"는 도구 공정성 확보 뒤에만 판정(CD-2).
- 건조한 군사 리얼리즘: 무전은 짧은 보고체, 과장·영웅 서사·정치 선전 없음. 경기 끝 화면은 숫자와 지명.
- 선악 없음: 플레이어가 양 진영을 고를 수 있으므로(D8) 어느 쪽도 악역이 아니다. "적"은 늘 상대 진영을 뜻할 뿐이다.
- 가상 명칭·가상 지명만. 실존 국기·부대 표식 없음(기존 원칙). 유일한 예외는 연합 공격 헬기 "아파치"다. 조종석·TADS·IHADSS가 실기 모양을 따르기 때문이다. 단 입구(타이틀·부제·manifest·아이콘·로딩·경기 설정)에는 "아파치"도 "AH-64"도 쓰지 않고, 배치 화면 슬롯은 분류를 앞에 두어 "공격 헬기 · 아파치"로 쓴다. B6에서 VPA 공격 헬기(가상 이름)가 생길 때 연합 쪽 이름도 다시 본다. 채택 차량은 가상 명칭인데 아파치만 실명이라는 비대칭과 상표 위험(추정)은 소유자 결정 항목이다(9장 C8).
- 피아 외형 명도 분리(AD: 연합 어둡게, VPA 밝게, L* 차 ≥ 15)는 받아들인다. 다만 사람 눈에만 생기는 진영 비대칭이 있을 수 있다. 하니스는 이것을 볼 수 없다(봇 탐지는 색을 보지 않는다). 그래서 사람 관문에 "진영을 바꿔 한 판씩, 적이 더 잘 보인 쪽이 있었나"를 넣는다. 비대칭이 보고되면 명도가 아니라 머리 모양·어깨 표식 쪽으로 무게를 옮긴다.
- 민간 없음(D9) — 세계는 전장과 그 지명으로만 보인다. 그래서 지명이 세계의 거의 전부다.
수치 대칭·외형만 다름(04장 4.1)은 유지한다. 그 위에 최소 4가지:
| 요소 | 연합 신속대응군 | 베로스 인민군(VPA) | 비용 |
|---|---|---|---|
| 표식 모양 | ■ 사각 | ▲ 삼각 | 이미 있음 |
| 무전 말투 | 콜사인·짧은 약어 섞인 보고체("브라보, D 확보. 다음 G.") | 한자어 군대말, 부대 번호("레이더 고지(D) 확보. 3중대 전진.") | 문자열 한 벌씩, 진영당 약 30줄(추정). 새 글자는 fonts.test.ts가 잡아 두 굵기 재서브셋, 예산 안(TD) |
| 무전에서 거점을 부르는 법 | 거점 문자(A·D·G) | 지명 + 문자("레이더 고지(D)", 맵 데이터 harek.json의 거점 이름) |
거점 이름은 이미 맵 데이터에 있음. 화면 표식(HUD 라벨·미니맵·깃발)은 두 진영 모두 거점 문자 + 모양으로 같다(AD와 합의). 지명은 무전·경기 끝 화면에서만 쓴다 |
| 경기 끝 한 줄 | "연합, 하레크 계곡 확보" | "인민군, 하레크 계곡 탈환" | 문자열 4줄 |
무전·코치 문장은 모바일 한 줄 28자 이내(아트-디렉션 8장)이고, 넘치면 잘리므로 거점 이름을 문장 앞쪽에 둔다.
이것으로 충분하다고 본다(추정): 플레이어가 VPA를 골랐을 때 "같은 게임의 다른 색"이 아니라 "다른 군대의 무전"을 듣는 것. 그 이상(배경 이야기·인물)은 작전 모드(B9)에서 다룬다 — 전선이 움직이는 3전장 연속이 이 게임의 유일한 이야기다.
측정: 사람 확인 한 항목 — 진영을 바꿔 한 판씩 한 뒤 "어느 진영이었는지 무전만 듣고 알 수 있었나"(소유자 메모).
"카르다 전선"에 동의한다(브리프 3.3 GD 추천과 같음).
- 이 게임의 동사는 "전선을 민다"이고, 1장 측정이 보여 주듯 지금 가장 깨진 약속도 그것이다. 이름이 약속을 말하면 그 약속을 지킬 압력이 된다.
- 주어가 장소(카르다)라 어느 역할로 시작해도 거짓말이 아니다. "아파치"는 보병으로 시작하는 첫 출격(
bc457d1)과 충돌한다. - 모드 이름 "전장"(D10)과 겹치지 않는다(카르다 전장 → 전장 → 빠른 점령전의 반복 회피).
- CD 덧붙임: 타이틀 화면 작은 글자(부제)는 장르를 말하게 — AD 안 "봇과 함께 싸우는 점령전"을 쓴다(빠른 점령전은 대규모가 아니므로 CD 첫 안 "혼자 하는 대규모 점령전"은 철회). 지금 부제 "봇과 함께 싸우는 빠른 점령전 — 아파치"의 "아파치"는 지운다.
- 대안으로 받아들일 수 있는 것: "하레크 계곡"은 맵이 늘면 낡는다. "티켓 제로"는 세계가 없다. 카르다 전선 이외에는 CD 추천 없음.
- 저장소·URL은 GD 권장(O2 ①,
heli-game유지 + 화면 이름만)에 동의 — 플레이 경험에 영향 없음.
| # | 항목 | CD 권장 | 근거 |
|---|---|---|---|
| C1 | #186 재정의 | "보병 무게 부족"이 아니라 "보병 도착 실패"로 이슈 본문 정정, 판정 전제로 대리 유효성 지표 추가 | 1.1·1.2 |
| C2 | 점령 세력 0.6 | 유지(올리지 않음) | 1.2: 2로 올리면 한 판 5.2분 |
| C3 | 첫 출격 거리 상한 | 빠른 점령전 ≤ 600m(추정, 통행 해결 뒤 곡선으로 확정) | 2.1·4.1 |
| C7 | #187 | (a) 45° + 공통 footStep + "고정 스폰 → 거점 원 도달 경로" 맵 검사, 봇 규칙은 B4(TD 권장과 같음) |
4.1 |
| C4 | 자동 집중 거점 | D5 지정권의 기본값 = 플레이어 위치, B3로 당김, 4.4 기준 미달이면 제거 | 4.3 |
| C5 | 역할 수치 조정 동결 | 대리 공정성(CD-1·CD-2) 전까지 어느 역할도 수치 조정 안 함 | 6장 |
| C6 | 이름 | 카르다 전선(부제 "봇과 함께 싸우는 점령전") | 8장 |
| C8 | 연합 공격 헬기 실명 "아파치" | CD 권장: 탈것 이름으로만 유지, 입구 금지. 실명 비대칭·상표 위험(추정)은 소유자 판단(AD 제기, CD·AD 합의로 상정) | 7.1 |
판정 원문은 디렉터 조율 폴더의 responses-cd.md(라운드 2)와 final-cd.md(라운드 3)에 있다. GD 회부 0건. 양보안 2건은 AD가 라운드 3에서 받아 합의가 됐다.
GD 판정(대조, 2026-10-03): ① 2.2 첫 배치 기본값을 "분대 옆"에서 전방 집결지로 고쳤다 — 4.1·10.1 합의(CD-4)와 어긋난 채 남아 있던 문장이다. ② 1.1·2.1·5장의 "본진에서 출격"을 "가장 가까운 아군 스폰"으로 고쳤다 — 대리는 목표에 가장 가까운 스폰을 고르고(
soldierProxy.ts), 본진은 D에서 4.5km라 340초 걷기와 맞지 않는다. 결론(한 판의 절반이 걷기)은 바뀌지 않는다. ③ 10.2를 합의로 표시했다.
| 안건 | 합의 내용 | 이 문서의 반영 |
|---|---|---|
| CD-1 정체 원인 | #187 단 + 경사 기준 불일치(TD 확정). 공통 footStep, 하니스에 "전진 중 정지 시간", --tele는 "이동을 지운 상한"으로 표기. CD의 "경사로 설명 안 됨"은 철회 |
요약, 1.2, 4.1, 4.4 |
| CD-2 / TD-1 역할 도구 | 역할별 "레버 도달" 열, 아파치 행은 실제 경로 전까지 상한값. 아파치 수치와 봇 대공 vsUnits는 v3 뒤에 판단 |
6장 |
| CD-3 자동 집중 비용 | 재계획 작업량 계수, 90초 쿨다운은 sim 규칙, 같은 대리 두 벌로 비교 | 4.3, 4.4 |
| CD-4 첫 출격 ≤ 600m | 맵 rally 좌표 + schema.test.ts 거리·도달 검사, firstEntrySec. 집결지는 거점 아님 |
4.1 |
| CD-5 / AD-6 거점 표현 | 경계 말뚝(링은 40m 안 보조), 깃발 상대색 + 모양 절대, 내 몫 칸, ▼ + 숫자 | 4.3 |
| CD-6 / AD-7 첫 화면·이름 | 타이틀·로딩은 실시간 렌더 구도, 아이콘은 능선 + 깃발, 부제 "봇과 함께 싸우는 점령전" | 8장 |
| CD-7 / AD-10 사람 검증 | 소유자 기기 녹화 또는 스크린샷 3장. 지표 이름 firstContactSec·firstEntrySec·reentrySec·endFlips
|
3.3, 5장 |
| TD-2 / TD-3 레버 후보·비용 등급 | 10.3 표 | 10.3 |
| TD-4 #187 | (a) 45° + 도달 경로 맵 검사, 못 가는 곳은 바위색, 봇 규칙은 B4(공정성 부채로 기록) | 4.1 |
| TD-8 이름 비용 | 화면 이름만 변경, 이름 일치 테스트 | 8장 |
| AD-9 모바일 한 줄 28자 | 무전·코치 28자 이내, 거점 이름은 문장 앞쪽 | 7.2 |
| AD 지명 규칙 | 화면 표식은 문자 + 모양으로 같게, 지명은 무전·경기 끝만 | 7.2 |
| AD 스폰 지도 | 배치 화면 스폰 지도(B3 UI) | 5장 |
| TD 맵 비대칭 정정 | 판정 불가, v3 양 진영 100시드 | 1.2 |
| TD 스폿 → 표적 | 들어간다, v3 대리에 스폿 추가 | 4.5 |
- AD-1 명도 분리: AD 안(L* 차 ≥ 15)을 받아들인다. 지면 대비를 같게 맞추는 것은 할 수 있는 범위의 목표로 낮춘다. 최소 조건은 사람 관문의 "진영별 가시성" 항목 하나다(7.1).
- AD-8 보병 최저선: AD ①~④에 경계 말뚝 + 점령 바 내 몫 + 배치 화면 스폰 지도를 더한 것을 B3 최저선으로 한다. 이 셋은 탈것 폭과 맞바꾸지 않는다. 일정상 하나를 B4로 미뤄야 하면 우선순위는 말뚝 > 스폰 지도 > 내 몫이다. 그 밖의 근거리 디테일은 만들지 않는다는 AD 배분은 받아들인다.
| 후보 | 규칙 | 올라가야 할 레버 열 | 기대 크기 | sim 비용 등급 |
|---|---|---|---|---|
| P2 통행(전제) | 공통 footStep + 45° + 도달 경로 맵 검사 |
거점 안 시간 0% → ≥ 20%, 전진 중 정지 시간 → 0 | 전제. 이것 없이 아래 판정 불가 | 매 스텝(이동, 지금과 같은 규모) + 맵 검사(게이트 1초 안, TD 추정) |
| P1 도착 | 첫 출격 ≤ 600m(집결지 rally) |
firstEntrySec ↓, firstContactSec ↓, 거점 안 시간 ↑ |
idle + 20~40pp(탐침 150m +40) | 이벤트(경기 시작·배치) |
| P3 자동 집중 | 비소유 거점 원 + 150m 안 10초 → 지휘관 focus | 점령 방향 시간 ↑, 원 안 아군 분대 수 ↑ | 모름. 켬 − 끔 ≥ +10pp가 통과 기준 | 1Hz 위치 판정 + 기존 5초 decide의 효용 항 1개, 재계획은 작업량 계수로 |
| P4 세력 0.6 | 바꾸지 않음 | — | — | — |
| P5 스폿 → 화력(정찰병) | 스폿 → Intel.mark → 표적(이미 있음), 대리에 스폿 추가 |
스폿 기여 처치 | B3 정찰병 표에서 | 이벤트 |
| 진영 무전·경계 말뚝·내 몫·스폰 지도 | 표현 | (사람 관문) | — | 이벤트 / 렌더 / UI |
9장 C1~C8. 이 중 디렉터 사이 이견에서 나온 것은 없다. C8("아파치" 실명)은 AD가 제기했고 CD·AD가 같은 의견으로 상정한다.
- 위치: 디렉터 조율 폴더의
cd/스크래치(저장소 밖). 저장소 코드는 바꾸지 않고src/sim/battle의createBattleSession·SoldierProxy를 그대로 불러 썼다. 실행:~/workspace/hg-directors에서node --experimental-transform-types --no-warnings --import ./scripts/lib/ts.mjs <스크립트>. -
exp.ts:battle:harness의 보병 대리 루프와 같고, 다음을 더했다 — 생존 시간 1초 표본 중 비소유 거점 원 안 비율, 플레이어가 원 안에 있을 때 아군 소유로 바뀐 거점 수,--pstr(rules.strength.player, 하니스--set은 중첩 키를 못 바꿈),--focus(매초Commander.focus= 대리의 목표 거점),--tele R(생애마다 1회, 목표 거점 중심에서 본진 방향 R m 지점 지표면으로 옮김). -
diag.ts: 생존 표본의 목표 거점 경계 거리 분포, 시드별 최근접 거리. -
trace.ts: 20초 간격 위치·자세·목표·교전 상태(시드 1). -
first.ts: 첫 발견(대리의enemy설정)·첫 사격·첫playerHit·첫 사망 시각(10시드). - 한계: 대리는 사람보다 약한 조종사이고 발견 거리 300m·"완전히 트인 분대만" 쏜다.
--tele는 이동을 지운 상한이다. 측정 중 다른 디렉터의 측정과 CPU를 나눠 썼으나 sim은 결정론이라 결과에 영향 없음(시간만). - 이 지표들은 하니스 v3 공식 출력과 옵션(
--tele는 "이동을 지운 상한" 표기,--set중첩 키)으로 들어간다(TD와 합의).