디렉터 조율 - kyhsa93/karda GitHub Wiki

디렉터 조율

작성: 게임 디렉터(GD), 2026-10-03. 게임 디렉터(GD)·크리에이티브 디렉터(CD)·아트 디렉터(AD)·테크니컬 디렉터(TD)가 비전과 방향을 만들면서 주고받은 안건의 장부다. 안건 원문(items·responses·final)은 작업용 조율 폴더에 있었고, 결과는 각 디렉터 페이지의 "조율 상태" 절에 옮겼다. 관련 이슈: #189.

1. 진행 방식

라운드 누가 무엇을 산출
0 GD 저장소·이슈·위키·헤드리스 측정으로 디렉팅 브리프를 썼다. 현재 상태 측정, 비전 가설, 이름 후보, 가장 큰 문제 3개, 디렉터별 질문, 소유자 결정 초안이 들어 있다 브리프
1 CD·AD·TD (동시) 각자 브리프 질문에 답하는 페이지 초안을 쓰고, 다른 디렉터에게 줄 안건을 냈다. 안건마다 필요한 것·이유·기한·받아들일 수 있는 대안을 적었다 각 페이지 초안, 안건 CD-17·AD-110·TD-1~8
2 CD·AD·TD (동시) 자기에게 온 안건에 수락·조건부 수락·반론으로 답하고, 상대 초안 중 자기 영역과 닿는 곳을 짚었다 응답, 페이지 정정
3 CD → AD → TD (차례로) 최종 입장. 앞 사람이 "받아들인다"고 쓴 안건은 뒤 사람이 그 사람에게 다시 양보하지 않는다. GD 회부할 것만 남긴다 최종 입장, 페이지 최종본
4 GD 회부 확인(0건), 세 페이지 대조, 모순 판정, 비전과 방향·이 장부·Home 개편 이 페이지, 비전과 방향

라운드 3을 차례로 돌린 이유. 라운드 2는 동시에 썼다. 그래서 둘 다 양보하거나, 상대가 이미 철회한 문구에 조건을 다는 엇갈림이 생겼다. 예를 들어 AD는 CD 부제 "혼자 하는 대규모 점령전"에 조건을 달았는데, CD는 같은 라운드에 그 문구를 철회했다. 또 CD-4·CD-3에는 라운드 2 안에 TD 답이 늦게 도착했다. 최종 라운드를 한 명씩 돌리면 뒤 사람이 앞 사람의 최종 문장을 보고 쓰게 된다. 그 결과 디렉터 사이에 남은 이견은 0건이었다.

남은 위험. 회부가 0건이어도 페이지끼리 어긋난 문장이 남을 수 있다. 합의가 한쪽 페이지에만 반영되는 경우다. 그래서 GD가 세 페이지를 직접 대조했다(4장).

2. 안건 장부

결정 방식: 수락(그대로 받음) · 조건부 수락(조건을 붙여 받음, 조건도 상대가 받음) · 양보안(요청한 쪽이 낮춘 안을 상대가 받음) · 정정(사실이 틀려 고침) · 소유자 결정 요청(디렉터 권한 밖) · GD 판정.

2.1 CD가 낸 안건

ID 제기 → 대상 안건 결론 결정 방식
CD-1 CD → TD 보병 대리가 D 둘레 230~300m에서 막히는 원인과 도착 지표 원인은 #187 단 + 경사 기준 불일치(흐름장 32°·조향 30°·이동 35°). 공통 footStep(35°, 0.5m), 하니스에 원 안 비율·최근접 거리·전진 중 정지 시간, --tele는 "이동을 지운 상한"으로 공식 옵션화. CD의 "경사로 설명 안 됨"은 철회 수락 + 정정(TD 측정 범위 1.6r이 오해를 만듦)
CD-2 CD → TD 역할 영향력 표의 "도착 조건"을 같게 역할별 "레버 도달" 열. 아파치 행은 실제 경로 대리 전까지 상한값이고 95% 판정에서 뺀다 수락
CD-3 CD → TD "내가 있는 거점이 집중 거점" 자동 규칙의 비용 1Hz 위치 판정은 무시할 만함. 집중 전환의 재계획(도로 A*)을 작업량 계수로 재고, 90초 쿨다운은 sim 규칙. 켬 − 끔은 같은 대리 두 벌로 비교 조건부 수락
CD-4 CD → TD 첫 출격 → 가장 가까운 비소유 거점 ≤ 600m 맵에 진영별 rally, schema.test.ts 거리·도달 검사(낙제 시험 포함), firstEntrySec. 집결지는 거점이 아니다(점령·티켓·출혈·지휘관 효용 밖). 열림 조건은 분대 옆과 같다. 첫 배치 기본값은 집결지 조건부 수락(고정 스폰이어야 정적 검사 가능)
CD-5 CD → AD 거점이 "내가 민다"로 읽히게 지면 링 대신 경계 말뚝(1.2m, 약 15m 간격, 상대색 띠, 깃발 기둥 인스턴스 재사용, 드로우콜 +1). 링은 40m 안 보조. 점령 바 내 몫 칸 + 플레이어 표식, 원 안 아군 분대 ▼ + 숫자, 자동 집중 때 미니맵 화살표 1.5초 깜박임 조건부 수락(AD 계산: 150m에서 링 0.03px, 말뚝 3.4px)
CD-6 CD → AD 첫 화면 톤 기준 타이틀·로딩 배경은 실시간 렌더 "능선 너머 거점 깃발"(PNG 없음, 지연 청크). 아이콘은 능선 + 깃발, 글자·헬기·실존 표식 없음 조건부 수락
CD-7 CD → AD·TD 사람 검증 항목 소유자 기기 녹화 또는 스크린샷 3장. 지표 이름 firstContactSec·firstEntrySec·reentrySec·endFlips로 통일 수락

2.2 AD가 낸 안건

ID 제기 → 대상 안건 결론 결정 방식
AD-1 AD → TD(·CD) 피아 외형: 명도 분리·중거리 머리·표식 부품 명도 차 L* ≥ 15(연합 어둡게, VPA 밝게). 지면 대비를 같게 맞추는 것은 AD 목표로 둔다. 사람 관문에 "진영을 바꿔 한 판씩, 적이 더 잘 보인 쪽" 항목을 넣는다. 부품은 유형별 인스턴스 메시 1, 드로우콜 +3~4. 하니스로는 볼 수 없다(봇 탐지는 색을 보지 않음) CD 양보안 + TD 조건부 수락
AD-2 AD → TD 지형 점선·도로 띠·#182가 실기기에서도 생기나 도로 띠는 기하 문제다(도로 삼각형 23.2%가 묻힘). TD가 렌더 쪽 수정을 골랐다: 리본 정점을 지형 모서리마다 넣고 높이는 heightAt + 0.25m. sim 불변, 완료는 "100m 앞 도로가 한 줄". 경사면 점선과 #182는 로그 깊이 끄는 디버그 플래그 + 소유자 기기 스크린샷으로 판정 조건부 수락(판정 둘로 나뉨)
AD-3 AD → TD 라이선스 고지 L1 MIT·L2 OFL·L3 CC-BY URI public/licenses.txt(크레딧 열 때만), 글꼴 name ID 13·14 유지 또는 OFL.txt, 크레딧 deed 링크. ID 13에 예약 이름이 있으면 전문 파일로 옮기고, fonts.test.ts에 검사 추가 조건부 수락(첫 로드 비용 0)
AD-4 AD → TD TD-6 수용 + 쓰지 않는 모델 101 KB 제외 soldier·civ_car·fuel_truck을 전장 그룹에서 빼고, "전장 그룹 모델은 로스터 유닛이 가리킨다" 검사를 둔다. 파일·크레딧은 유지 조건부 수락(재유입 방지 검사)
AD-5 AD → TD 탈것 스타일 규칙 + 측면 실루엣 도구 재질 ≤ 2, 진영 색은 인스턴스 색, 코드 모델 ≤ 3 KB gzip·탈것별 지연 청크, 첫 출격 경로 금지. 실루엣 도구는 게이트 밖이고 PNG는 저장소에 커밋하지 않는다 조건부 수락
AD-6 AD → CD 거점 시각 언어 + 깃발 상대색 CD-5와 합쳐짐. 3D 깃발은 상대색(시안/주황), 모양은 절대(■/▲) 수락
AD-7 AD → CD 이름·타이틀·아이콘, 역할 이름 "아파치" 카르다 전선, 부제 "봇과 함께 싸우는 점령전". "아파치"는 탈것 이름으로만("공격 헬기 · 아파치"), 입구에서는 금지. 실명 비대칭·상표 위험은 소유자에게 수락 + 소유자 결정 요청(O8)
AD-8 AD → CD·TD 보병 1인칭은 "최저선"까지만 최저선 일곱 가지: ①뷰모델 축소·밝게 ②1.5m 안 아군 숨김(렌더만) ③발사 버튼 위협색 제거 ④코치 "■ 아군" 아군색 ⑤경계 말뚝 ⑥점령 바 내 몫 ⑦배치 화면 스폰 지도. ⑤~⑦은 전선 장치라 탈것 폭과 맞바꾸지 않는다. 미루면 말뚝 > 스폰 지도 > 내 몫 순서로 남긴다. 스폰 지도는 기존 미니맵 코드를 재사용한다 CD 양보안 + TD 조건부 수락
AD-9 AD → CD 모바일 HUD 구역, 코치·무전 한 줄 28자 가운데 원에 UI 금지, 28자 이내, 거점 이름을 문장 앞에 수락
AD-10 AD → CD·TD 사람 관문 AD 항목 표식 없는 50·100m 피아 3초, 지형 점선·#182, 모바일 가운데 원, 거점 원 진입을 화면으로 알았나(CD-7과 같은 스크린샷), 진영 비교(AD-1) 수락

2.3 TD가 낸 안건

ID 제기 → 대상 안건 결론 결정 방식
TD-1 TD → CD 아파치를 약하게 할지 판단을 하니스 v3 뒤로 하니스 v3 전에는 아파치 수치도, 봇 대공 vsUnits도 바꾸지 않는다. 그 뒤에도 아파치가 95% 이상이면 수치가 아니라 위협으로 맞춘다 수락
TD-2 TD → CD 보병 레버 제안은 "거점 안 시간"을 먼저 CD 후보 P1 도착·P2 통행(전제)·P3 자동 집중·P4 세력 0.6 유지·P5 스폿(정찰병). 판정은 100시드 구간 수락
TD-3 TD → CD 메커니즘마다 sim 비용 등급 집결지 = 이벤트, 통행 = 매 스텝 + 맵 검사, 자동 집중 = 1Hz 판정 + 기존 5초 decide, 표현 = 렌더·UI 수락
TD-4 TD → CD #187: 45° + 맵 검사, 봇 규칙은 B4 45°. 맵 검사는 "둘레 N방향"이 아니라 "보병 고정 스폰 → 각 거점 원까지 footStep으로 닿는가". 못 가는 곳은 바위색. 봇·플레이어 규칙 차이는 B4까지 P2 부채 조건부 수락 → 소유자 결정 요청(O6)
TD-5 TD → AD 탈것 외형은 코드면 JS 예산, GLB면 에셋 예산 전차·장갑차·경차량·트럭 = 채택 GLB + VPA 코드 부품. 수송 헬기·VPA 공격 헬기·전투기 = 코드. 조종석·뷰모델은 그 탈것 청크로 수락
TD-6 TD → AD 아파치 소리 169 KB를 boot에서 헬기 그룹으로 boot 578.5 → 약 409 KB. 대안 ground_detail.png WebP는 전후 스크린샷 조건 수락(+AD-4)
TD-7 TD → AD 드로우콜: 유형당 인스턴스 메시 1, 재질 ≤ 2 아트 스타일 규칙에 넣음. 모바일 low에서 원거리 인형 끔 수락 수락 + 정정(그림자 패스 없음, 아래 X-4)
TD-8 TD → CD·AD 이름은 화면 이름만 변경 글꼴 재서브셋 불필요, 번들 0. 이름 일치 테스트에 apple-mobile-web-app-title 포함 수락 → 소유자 결정 요청(O1·O2)

2.4 초안 사이에서 나온 안건

ID 제기 → 대상 안건 결론 결정 방식
X-1 AD → CD 지명은 VPA만, 연합은 거점 문자(CD 7.2) 화면 표식(HUD·미니맵·깃발)은 두 진영 모두 문자 + 모양으로 같게. 지명은 무전·경기 끝에서만, 처음에 문자를 붙인다("레이더 고지(D)") 조건부 수락
X-2 AD → CD 죽음의 비용 = 다시 잃은 거리(CD 5장) 거리가 보여야 결정이 된다. 배치 화면 스폰 지도를 B3 UI에(AD-8 ⑦) 수락
X-3 AD → CD 부제 "혼자 하는 대규모 점령전" CD가 철회하고 "봇과 함께 싸우는 점령전"으로 바꿈 철회
X-4 AD → TD TD 3.6 "모바일에서 터질 곳: 그림자 패스" 렌더러에 그림자 맵 패스가 없다(shadowMap·castShadow 0건). 위험 목록에서 뺐다. 09장 9.9 "모바일 low 그림자 끔"도 줄일 비용이 없는 항목 정정(TD)
X-5 TD → CD "VPA 기본값이 높은 것은 맵 비대칭"(CD 1.2) idle 60시드: 연합 37%·VPA 50%, p ≈ 0.14. 판정 불가, v3에서 양 진영 100시드 정정(CD)
X-6 TD → CD 스폿이 봇 표적에 들어가나(CD 4.5) 들어간다(스폿 키 → Intel.mark → targeting.ts). 하니스는 잰 적 없음 → v3 대리에 스폿 추가. 스폿은 정찰병 본업 수락
X-7 TD → CD 진영 무전 문구의 글꼴 영향 새 글자는 fonts.test.ts가 잡고 두 굵기 재서브셋, 예산(160 KB 중 113) 안 수락
X-8 AD·TD → 전원 보병 한계 35°인데 셰이더는 31°→46°로 바위를 섞는다(풀색인데 못 오르는 땅) 셰이더가 sim 경사 상수 하나를 읽는다. 바위 혼합 끝점을 한계 45°에 맞춘다 수락
X-9 TD → GD GD 브리프의 "idle·보병이 이긴 시드 4개 겹침, 2개 교체 = 잡음" 플레이어 위치가 RNG 소비량을 바꿔(예광탄 산포) 같은 시드도 경기가 갈라진다. 짝지은 비교가 아니다. 표시용 무작위를 별도 스트림으로 분리하는 작업을 v3에 넣음 정정(GD)
X-10 TD → GD GD 브리프의 번들 여유 66 KB 실측 348.8 KB, 여유 51.2 KB(baseline.md 333.9는 낡음) 정정(GD)
X-11 AD·CD → 소유자 "아파치" 실명 비대칭·상표 위험 디렉터 권장: 탈것 이름으로만, 입구 금지. 판단은 소유자 소유자 결정 요청(O8)

GD 회부: 0건.

3. 소유자에게 넘긴 것

비전과 방향 7장 O1~O13. 이 중 디렉터 사이 이견에서 나온 것은 없다. 모두 디렉터 권한 밖(이름, 규칙, 로드맵 순서, 실존 장비명)이라 올린 것이다.

4. GD 판정 — 페이지 대조

회부는 0건이었지만 세 페이지를 대조해 다음을 찾았다. 해당 문장만 고쳤고, 각 페이지의 조율 상태 절에 "GD 판정"으로 표시했다.

# 어디 모순 판정 고친 것
G1 크리에이티브 디렉션 2.2 목표 한 판의 첫 배치 기본값이 **"분대 옆"**으로 남아 있었다. 같은 페이지 4.1·10.1과 TD 8.1의 합의(CD-4)는 전방 집결지다 합의 쪽이 맞다. 라운드 2 응답(P1 "첫 배치 기본값 = 분대 옆")이 라운드 3에서 "집결지"로 바뀌었는데 2.2 표만 남았다 2.2를 "전방 집결지(rally) 스폰이 기본 선택"으로
G2 크리에이티브 디렉션 1.1·2.1·5장 보병 대리가 **"본진"**에서 출발해 340초 걸었다고 썼다. 대리는 목표에 가장 가까운 스폰을 고르고(soldierProxy.ts), 연합 본진은 (0, 4500)으로 D에서 4.5 km다. 340초 걷기와 맞지 않는다. 아트 디렉션 그림 1도 "거점 A에서 출격"이다 사실 정정. 결론("한 판의 절반이 걷기", "다시 잃은 거리가 너무 크다")은 그대로다. TD의 "A → D 1,640 m"와도 맞는다 "본진" → "가장 가까운 아군 스폰(시작 거점 A 또는 분대 옆)"
G3 크리에이티브 디렉션 10.2 "양보안 (AD 답 대기)" — AD는 라운드 3에서 둘 다 수락했다(아트 디렉션 12장 "합의") 합의로 읽는다 10.2 제목에 "AD 수락 → 합의"
G4 아트 디렉션 12장 TD 3.6 그림자 패스 정정이 "TD 확인 대기"로 남아 있었다. TD는 라운드 3에서 고쳤다(테크니컬 디렉션 3.6·8.3) 정정 완료로 읽는다 해당 행을 "TD 정정 완료"로
G5 GD 브리프 ↔ 테크니컬 디렉션 번들 여유 66 KB vs 51.2 KB, 시드 겹침 해석(X-9·X-10) TD 측정이 맞다 비전과 방향은 TD 값으로 썼다(브리프는 작업 문서라 위키에 없음)

숫자 대조에서 차이가 났지만 모순이 아닌 것:

  • 보병 대리 처치 0.3(CD, 하니스 표기) vs 0.35(TD) — 같은 20시드의 반올림 차이다.
  • 아파치 대리 처치 13.7(하니스) vs 12.8(TD) — 하니스는 "내 표적이 죽은 횟수"를 세고, TD는 실제 처치자(by)로 셌다. v3에서 by로 통일한다.
  • 거점 안 19.9초·2.8%(TD) vs 0%(CD) — TD 값은 아군 시작 거점을 포함하고, CD 값은 비소유 거점만 센다. 두 페이지가 서로 이 차이를 적어 두었다.