크리에이티브 디렉션 - kyhsa93/karda GitHub Wiki

크리에이티브 디렉션

작성: 크리에이티브 디렉터(CD), 2026-10-03, 최종본(라운드 3, AD·TD 조율 반영 — 조율 상태는 10장). 게임 디렉터 브리프의 CD 질문 네 개(보병이 전선을 미는 장치·죽음의 무게·첫 3분·세계의 두께)와 게임 이름에 답한다. 기준 코드: 4dc02f4(측정 체크아웃 4e4fd93, 같은 코드). 모든 측정은 하레크 계곡 빠른 점령전 · 연합 · 20시드(달리 적은 곳 제외)이고, 방법은 부록에 있다. 저장소 코드는 고치지 않았다. "(추정)"은 측정 근거가 없는 것. 기존 소유자 결정(D1D13, A1A13)은 되돌리지 않는다. 바꾸자는 것은 모두 "제안"이다.

요약

  1. 보병은 약한 게 아니라 도착하지 못한다. 보병 대리는 20시드 중 한 번도 적 거점 원 안에 들어가지 못했다(생존 시간 중 원 안 0%). 같은 대리를 거점 한가운데 내려놓으면 연합 승률이 30% → 80%(+50pp)로 뛴다. #186의 "+0pp"는 보병의 무게가 아니라 도착 실패를 잰 숫자다. 막힌 곳은 D 북쪽 270~290m의 #187 단이고, 흐름장·조향·실제 이동의 경사 기준이 서로 달라 생긴 정체다(TD 확정).
  2. 그래서 점령 세력 0.6은 올리지 않는다. 2로 올리면 95%·한 판 5분으로 경기가 무너진다. 고칠 것은 도착(첫 출격 거리, 거점 둘레 통행)이고, 주인공 배율은 "내가 있는 거점으로 아군이 모인다"(D5 집중 거점의 자동 기본값)로 준다.
  3. 한 판의 절반이 걷기다. 대리는 출격 후 D 앞 300m까지 약 5~6분 걷고, 10시드 중 3시드는 경기 내내 한 번도 맞지도 쏘지도 않았다. 첫 3분의 목표는 "90초 안에 첫 교전, 3분 안에 거점 원 진입".
  4. 역할 격차(보병 +0 대 아파치 +70)에 대한 입장: 도구가 공정해질 때까지 어느 역할도 수치를 깎거나 올리지 않는다. 보병의 진짜 상한은 이미 +40~+50pp(탐침)라, 고치면 격차의 대부분은 사라질 것으로 본다(추정). 목표 띠는 GD 제안(idle + 20pp 이상, 95% 미만, 역할 간 ≤ 25pp)에 동의.
  5. 이름은 "카르다 전선"에 동의. 톤은 건조한 군사 리얼리즘, 양 진영 모두 플레이어의 편이 될 수 있으므로 선악 없음.

1. 이번 측정이 바꾼 질문

브리프 1.3의 측정(보병 대리 30% = idle 30%)을 다시 돌리고, "보병이 어디에서 시간을 쓰는지"를 함께 쟀다.

1.1 보병 대리는 거점에 닿지 않는다

측정 값 출처
보병 대리 승률 30% (6/20), 처치/사망 0.3/3.1 exp.ts 기본(브리프 1.3과 같은 시드·같은 결과)
생존 시간 중 적·중립 거점 원 안에 있던 비율 0% (20시드) exp.ts
목표 거점 D 경계까지 거리 분포(생존 시간) 100m 안 0% · 100300m 25% · 300600m 19% · 6001,000m 19% · 12km 36% diag.ts 4시드
시드별 최근접 거리(D 경계) 228 · 228 · 300 · 271m diag.ts 4시드
시드 1 추적 0340초 걷기(가장 가까운 아군 스폰 → D 북쪽 278m. 본진이 아니다 — 대리는 목표에 가장 가까운 스폰을 고르고, 본진은 D에서 4.5km다. GD 판정), 340초부터 경기 끝까지 D 북쪽 약 280310m를 피해 0으로 맴돎 trace.ts
첫 발견·첫 피격(10시드) 3시드는 경기 내내 발견·사격·피격 0. 나머지 첫 피격 3.8~8.3분(중앙 약 6분) first.ts

1.2 레버는 이미 강하다 — 도착만 하면

--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 둘레 약 230300m 띠에 대리가 넘지 못하는 무언가가 있다(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% 구간 1552)와 거점 한가운데 80%(약 5892)는 구간이 겹치지 않는다.
  • TD 측정(테크니컬-디렉션 4.2)의 "거점 영역 안 19.9초(2.8%)"는 아군 시작 거점을 포함한 모든 거점이고, 위 0%는 비소유 거점만이다. 둘 다 "적 거점에는 사실상 가지 않는다"는 같은 결론이다.
  • 탐침은 이동을 지운 상한이다. 실제 설계 목표는 이보다 낮은 띠(4.4)다.

결론: #186의 질문("보병 한 명에게 무게가 있나")에 대한 답은 "있다, 크다". 진짜 질문은 "보병 한 명이 거점까지 가는가"이고, 지금은 대리도 못 가고, 사람이 가는지는 아무도 확인하지 않았다(#101 미확인).


2. 한 판의 모양 (빠른 점령전, 분 단위)

2.1 지금 (대리 기준 측정)

시각 보병 플레이어가 하는 일 전장
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시드는 첫 총성도 없다.

2.2 목표 (빠른 점령전 8~12분, 01-비전 1.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장)은 이 기억 위에 얹는 기록이지, 기억을 대신하지 않는다.

2.3 점령전(B5, 18~28분)

같은 리듬을 7거점에서 세 번 반복한다고 본다: 개전 접근(04분) → 첫 전선 형성(412분) → 측면 거점 교환과 탈것 전환(1222분) → 막판(22분). 점령전은 보병 접근 거리가 더 길어지므로 2.2의 "첫 교전 ≤ 90초"를 지키려면 전방 집결지·수송(B4)이 필수다(추정, B5 측정 대상).


3. 첫 3분 (CD 질문 3)

3.1 첫 출격은 보병으로 유지

bc457d1(첫 출격 보병)을 유지한다. 근거:

  • 보병은 조작이 가장 적고(이동·조준·사격), 사망 비용이 가장 낮다(티켓 1). D6 항상 열림 + 훈련 없음(D13)에서 처음 하는 사람에게 가장 안전한 역할.
  • 1.2 탐침이 보여 주듯 보병은 도착만 하면 아파치에 준하는 영향을 낸다. 보병을 첫 역할로 두는 것이 문제가 아니라, 첫 역할이 걷기만 하는 것이 문제.

3.2 아파치로 "넘어가는" 순간 — 강제하지 않고 열어 둔다

  • 경기 안 첫 사망 뒤 배치 화면에서, 탈것 슬롯이 비어 있으면 그 슬롯에 한 줄 안내("공격 헬기 출격 가능 — 조종 보조 켬")를 띄운다. 자동 전환은 없다(P5 싸움을 고른다).
  • 첫 경기에서 넘어가는 시점을 앞당기지 않는다. 이유: 아파치 첫 비행은 조작 학습 비용이 크고(조종 보조 기본 켬으로도), 아파치가 현재 혼자 이기는 역할이라(대리 100%) 첫 경기를 "아파치를 타면 이긴다"로 가르칠 위험.
  • 측정: 첫 경기 플레이테스트(사람)에서 "탈것으로 갈아탔나, 언제"를 기록(CD-7). 하니스로는 못 잰다.

3.3 첫 3분 성공 기준

기준 목표 측정 버리는 조건
첫 교전 첫 출격 후 ≤ 90초(시드 중앙값), 경기 내내 교전 0인 시드 0개 하니스 firstContactSec(첫 발견·첫 사격·첫 피격) 지금처럼 중앙 6분, 교전 0 시드 3/10
첫 거점 진입 출격 후 ≤ 3분(중앙값), 진입 0인 시드 0개 하니스 firstEntrySec, 원 안 비율 원 안 0%
사람 확인 처음 하는 사람이 첫 빠른 점령전에서 적 1명 처치 + 거점 1회 점령 참여(01-비전 1.3 기존 기준) 소유자·지인 플레이테스트 미수행이면 마일스톤을 닫지 않는다(브리프 O5 지지). 소유자 기기 녹화, 어려우면 스크린샷 3장(출격 직후·첫 교전·거점 원 진입)과 각 시각 메모(AD와 합의)

4. 보병 한 명이 전선을 미는 방법 (CD 질문 1)

브리프의 선택지(점령 세력, 따라오는 분대, 스폿 → 아군 화력, 분대 스폰) 중 무엇을 키울지에 대한 답. 원칙: "한 사람이 봇 몇 명 몫이냐"는 숫자를 키우지 않고, 그 한 사람이 있는 곳에 전장이 모이게 한다.

4.1 도착 — 첫째이자 거의 전부

  • 첫 출격 지점에서 가장 가까운 비소유 거점까지 ≤ 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 곡선으로 다시 정한다.

4.2 점령 세력 0.6 — 그대로 둔다

  • 근거: 1.2. 도착하면 0.6으로 +50pp(이동을 지운 상한), 2로 올리면 한 판 5.2분으로 빠른 점령전 목표(8~12분)를 깬다. 주인공 배율을 세력 숫자로 주면 "거점에 서 있으면 이긴다"(결정의 부재)가 된다.
  • 03장 3.3의 "플레이어 혼자 중립 42초"는 지금도 적절하다(추정 유지).

4.3 "내가 있는 거점으로 아군이 모인다" — 자동 집중 거점 (제안)

  • 규칙: 플레이어(어떤 역할이든)가 비소유 거점 원 + 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 규칙으로 둔다.

4.4 장치별 측정 기준 — 성공과 버림

모두 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).

4.5 스폿 → 아군 화력은?

보병 스폿 키는 이미 있다(170b657). 스폿은 봇 표적 선택에 들어간다(TD 코드 확인: 스폿 키 → Intel.mark → targeting.ts). 다만 보병 대리가 스폿 키를 누르지 않아 하니스가 이 레버를 잰 적은 없다. 하니스 v3 대리 행동에 넣는다. CD 입장: 스폿은 정찰병(B3)의 본업으로 두고, 돌격병의 전선 밀기 장치로는 세지 않는다. 처치 0.3인 대리에게 스폿 경로도 "보이는 적"이 있어야 하므로 도착 문제의 뒤에 있다.


5. 죽음의 무게 (CD 질문 2)

  • 지금: 보병 사망 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.json respawnSec)가 진짜 비용이고, 적절하다고 본다(추정).

6. 역할 간 영향력 격차에 대한 입장 (보병 +0 대 아파치 +70)

  1. 측정이 아직 공정하지 않다. 보병 대리는 레버에 닿지 못하고(1.1), 아파치 대리는 봇 방공 실제 미사일을 맞지 않는다(baseline.md B1-15). 한쪽은 바닥 아래, 한쪽은 천장 위다.
  2. 도구가 고쳐지기 전에는 어느 역할의 수치도 바꾸지 않는다. 특히 "아파치를 약하게"는 지금 판단하지 않는다(P1′ "아파치 그대로 유지"도 있음).
  3. 보병의 상한은 이미 +40~+50pp(1.2 탐침)라, 보병 쪽을 고치면 격차는 대부분 "아파치 상한값 vs 보병 실제값"으로 줄어들 것으로 본다(추정).
  4. 그 뒤에도 아파치가 95% 이상이면, 아파치 수치가 아니라 위협으로 맞춘다: 봇 방공(대공조·방공 차량)과 적 공격 헬기·전투기가 실제로 위협이 되게(P2: 저공·능선이 의미 있게). 아파치를 고르는 결정에 대가를 붙이는 것이지, 손맛을 깎는 것이 아니다.
  5. 목표 띠: GD 제안 P0(역할별 idle + 20pp 이상, 95% 미만, 역할 간 차 ≤ 25pp)에 동의. 단 "역할 간 ≤ 25pp"는 도구 공정성 확보 뒤에만 판정(CD-2).

7. 진영과 톤 (CD 질문 4)

7.1 톤

  • 건조한 군사 리얼리즘: 무전은 짧은 보고체, 과장·영웅 서사·정치 선전 없음. 경기 끝 화면은 숫자와 지명.
  • 선악 없음: 플레이어가 양 진영을 고를 수 있으므로(D8) 어느 쪽도 악역이 아니다. "적"은 늘 상대 진영을 뜻할 뿐이다.
  • 가상 명칭·가상 지명만. 실존 국기·부대 표식 없음(기존 원칙). 유일한 예외는 연합 공격 헬기 "아파치"다. 조종석·TADS·IHADSS가 실기 모양을 따르기 때문이다. 단 입구(타이틀·부제·manifest·아이콘·로딩·경기 설정)에는 "아파치"도 "AH-64"도 쓰지 않고, 배치 화면 슬롯은 분류를 앞에 두어 "공격 헬기 · 아파치"로 쓴다. B6에서 VPA 공격 헬기(가상 이름)가 생길 때 연합 쪽 이름도 다시 본다. 채택 차량은 가상 명칭인데 아파치만 실명이라는 비대칭과 상표 위험(추정)은 소유자 결정 항목이다(9장 C8).
  • 피아 외형 명도 분리(AD: 연합 어둡게, VPA 밝게, L* 차 ≥ 15)는 받아들인다. 다만 사람 눈에만 생기는 진영 비대칭이 있을 수 있다. 하니스는 이것을 볼 수 없다(봇 탐지는 색을 보지 않는다). 그래서 사람 관문에 "진영을 바꿔 한 판씩, 적이 더 잘 보인 쪽이 있었나"를 넣는다. 비대칭이 보고되면 명도가 아니라 머리 모양·어깨 표식 쪽으로 무게를 옮긴다.
  • 민간 없음(D9) — 세계는 전장과 그 지명으로만 보인다. 그래서 지명이 세계의 거의 전부다.

7.2 세계의 최소 두께 — 무엇이 있어야 정체성이 서나

수치 대칭·외형만 다름(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전장 연속이 이 게임의 유일한 이야기다.

측정: 사람 확인 한 항목 — 진영을 바꿔 한 판씩 한 뒤 "어느 진영이었는지 무전만 듣고 알 수 있었나"(소유자 메모).


8. 게임 이름

"카르다 전선"에 동의한다(브리프 3.3 GD 추천과 같음).

  • 이 게임의 동사는 "전선을 민다"이고, 1장 측정이 보여 주듯 지금 가장 깨진 약속도 그것이다. 이름이 약속을 말하면 그 약속을 지킬 압력이 된다.
  • 주어가 장소(카르다)라 어느 역할로 시작해도 거짓말이 아니다. "아파치"는 보병으로 시작하는 첫 출격(bc457d1)과 충돌한다.
  • 모드 이름 "전장"(D10)과 겹치지 않는다(카르다 전장 → 전장 → 빠른 점령전의 반복 회피).
  • CD 덧붙임: 타이틀 화면 작은 글자(부제)는 장르를 말하게 — AD 안 "봇과 함께 싸우는 점령전"을 쓴다(빠른 점령전은 대규모가 아니므로 CD 첫 안 "혼자 하는 대규모 점령전"은 철회). 지금 부제 "봇과 함께 싸우는 빠른 점령전 — 아파치"의 "아파치"는 지운다.
  • 대안으로 받아들일 수 있는 것: "하레크 계곡"은 맵이 늘면 낡는다. "티켓 제로"는 세계가 없다. 카르다 전선 이외에는 CD 추천 없음.
  • 저장소·URL은 GD 권장(O2 ①, heli-game 유지 + 화면 이름만)에 동의 — 플레이 경험에 영향 없음.

9. 소유자에게 올릴 것 (CD 제안)

# 항목 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

10. 조율 상태 (최종, 라운드 3)

판정 원문은 디렉터 조율 폴더의 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를 합의로 표시했다.

10.1 합의 (CD가 상대 안을 받아들임)

안건 합의 내용 이 문서의 반영
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

10.2 양보안 (AD 수락 → 합의, final-ad.md. GD 판정: 이 절은 합의로 읽는다)

  • AD-1 명도 분리: AD 안(L* 차 ≥ 15)을 받아들인다. 지면 대비를 같게 맞추는 것은 할 수 있는 범위의 목표로 낮춘다. 최소 조건은 사람 관문의 "진영별 가시성" 항목 하나다(7.1).
  • AD-8 보병 최저선: AD ①~④에 경계 말뚝 + 점령 바 내 몫 + 배치 화면 스폰 지도를 더한 것을 B3 최저선으로 한다. 이 셋은 탈것 폭과 맞바꾸지 않는다. 일정상 하나를 B4로 미뤄야 하면 우선순위는 말뚝 > 스폰 지도 > 내 몫이다. 그 밖의 근거리 디테일은 만들지 않는다는 AD 배분은 받아들인다.

10.3 보병 장치 후보 — 레버 열과 비용 등급

후보 규칙 올라가야 할 레버 열 기대 크기 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

10.4 소유자에게 넘기는 것

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와 합의).
⚠️ **GitHub.com Fallback** ⚠️