10 로드맵 - kyhsa93/karda GitHub Wiki
10. 단계별 로드맵
10.1 원칙
- **첫 마일스톤 B1은 "플레이 가능한 게임이 다시 생기는 최소 단계"**다. 기존 콘텐츠 제거(D13) 직후 게임에는 타이틀·설정·크레딧만 남는다. 가장 빨리 한 판을 할 수 있게 하는 길은 이미 완성된 아파치를 탈것으로 쓰는 빠른 점령전이다(보병·새 탈것은 그 뒤).
- 마일스톤은 순서대로. 각 마일스톤 끝은 배포 가능한 상태: 그때까지 만든 것만으로 한 판이 처음부터 끝까지 돌아가고, 아직 없는 선택지는 전장 설정·배치 화면에서 "준비 중"으로 보인다.
- 작업 ID 하나 = 커밋(또는 PR) 하나. 크면
B2-7a,B2-7b로 쪼갠다. 이슈마다 이 표의 목표·완료 조건·선행을 옮긴다. - 모든 작업:
npm run check통과 + 회귀 기준(남은 아파치 계통 테스트,sw.test.ts, 전장 결정론 테스트) 통과. 렌더·UI 작업은 헤드리스 스크린샷으로 직접 확인. 수치 작업은 하니스·벤치 결과표를 이슈에 첨부. - 작업 ID는
B1~B10. 풀 배틀필드(D1)라 작업이 많다(92개). 수를 줄이려 뭉치지 않고, 대신 마일스톤마다 게임이 한 겹씩 넓어지게 순서를 잡았다. - 외부 에셋 후보 조사 작업(B2-15·B6-5·B7-10 등)은 비차단이다 — 모든 기능은 코드 폴백으로 완결된다.
- 사람 관문(O5): 마일스톤마다 소유자가 기기에서 한 판 해 보고 메모(녹화 또는 스크린샷 3장)를 남기기 전에는 다음 마일스톤을 시작하지 않는다. 첫 적용은 B1-16(#101).
- P0 띠는 완료 조건이다(O4): B3 병과·B4 이후 탈것 작업은 그 역할의 영향력이 비전 1.3의 P0 띠를 통과해야 끝난다.
- 역할 수치 동결(O11): 역할 공정 비교 하니스(#193)가 나오기 전에는 어느 역할의 수치도 조정하지 않는다.
10.2 의존 관계
(제거 작업 D13 완료)
└→ B1 다시 플레이 가능: 아파치 빠른 점령전
└→ B2 보병: 돌격병
└→ B3 병과 4종
└→ B4 지상 탈것
└→ B5 대규모 점령전
├→ B6 헬기 확장(수송·VPA 헬기)
├→ B7 전투기
└→ B8 진행(기록·평점·숙련·오늘의 전장)
└────────┬───────┘
└→ B9 콘텐츠(맵 2·3, 돌파, 작전)
└→ B10 완성도
- B6·B7·B8은 B5 뒤라면 서로 순서가 무관하다. 권장 순서는 B6 → B7 → B8(조종 가능한 탈것을 먼저 채워 D1·D8 대칭을 빨리 완성).
10.3 마일스톤 요약
| 마일스톤 | 목표 | 배포 조건 (마일스톤 완료 조건) | 선행 | 작업 수 |
|---|---|---|---|---|
| B1 다시 플레이 가능 | 하레크 계곡 빠른 점령전(거점 3)을 아파치로 처음부터 끝까지. 봇은 양 진영 지상군, 게임식 HUD, 전장 안 첫 경기 안내 | Pages 배포본에서 타이틀 → 3탭 → 한 판 완주(소유자 확인) / 하니스 idle 30 |
제거 작업 | 16 |
| B2 보병 | 플레이어가 돌격병(1인칭)으로 싸우고 점령한다. 코드 인형, 진영 선택(VPA 보병) | 보병만으로 한 판 완주 / 엄폐 생존 ≥ 노출의 2배 / 양 진영 결정론 | B1 | 16 |
| B3 병과 4종 | 돌격·공병·지원·정찰 + 장비, 봇 분대 병과 | 병과 4종 모두 배치 화면에서 선택·사용 / 병과 대리 승률 차 ≤ 10%p | B2 | 8 |
| B4 지상 탈것 | 전차·장갑차·경차량·트럭·방공 차량 조종, 봇 자동 탑승 | 탈것 5종 손맛 목록 전부 / 탈것 풀·재생성 동작 | B3 | 11 |
| B5 대규모 점령전 | 7거점 대규모(D4 기본), 봇 헬기·공중 강습, 지원 요청·집중 거점(D5) | 한 판 18~28분 / 데스크톱 성능 예산 / 모바일 low 측정 결과표(A9 자료) | B4 | 8 |
| B6 헬기 확장 | 수송 헬기 조종, VPA 공격 헬기 조종(D8 대칭 헬기 완성) | 양 진영 헬기 슬롯 전부 조종 가능 / 아파치 동작 불변 | B5 | 5 |
| B7 전투기 | 외곽 공역, 전투기 조종·무장, 봇 전투기, 대공 위협(D7) | 저공 헬기 잠금 0회 / 전투기 손맛 목록 / 한 판 길이 유지 | B5 | 11 |
| B8 진행 | 저장, 점수·평점, 계급·숙련(기록·도색), 리본, 오늘의 전장 | 경기 결과가 저장되고 복무 기록에 쌓임 | B5 | 6 |
| B9 콘텐츠 | 맵 2·3, 돌파, 작전 | 맵 3개 × 경기 방식 하니스 기준 통과 | B7, B8 | 5 |
| B10 완성도 | 모바일 실기기, 밸런스, 번들 검사, 접근성, 문서, 에셋 교체 | 소유자 기기 30fps / 번들 예산 테스트 / docs/design 개정 | B9 | 6 |
| 합계 | 92 |
B1. 다시 플레이 가능 — 아파치 빠른 점령전
목표: 제거 직후의 빈 게임에 플레이할 수 있는 전장 한 판을 돌려놓는다. 탈것은 아파치 하나(연합), 봇은 양 진영 지상군(보병·차량·방공), 적 헬기·수송 헬기·탑승은 아직 없다.
| ID | 작업 | 목표 | 완료 조건 | 선행 |
|---|---|---|---|---|
| B1-1 | 제거 결과 확인·기준선 | 기술 설계 9.0의 가정을 실제 코드로 확정하고 번들·테스트 기준선을 잡는다 | 9.0 표 갱신 / vite build 크기 기록(제거로 줄어든 KB) / 회귀 기준 테스트 목록 문서화 |
제거 작업 |
| B1-2 | 전장 훅·아키텍처 규칙 | World.battleHooks(10Hz·1Hz 주입점), 전장 코드 지연 청크 |
arch.test.ts "world.ts는 ./battle import 금지" / 훅 없는 월드 스텝 결과 해시가 변경 전과 동일 |
B1-1 |
| B1-3 | 무기 대상 구분·유닛 표 대칭 | 무기 vs·penetration, 대칭 신규 유닛 정의, 분대 인원 5 |
잘못된 vs 검증 오류 테스트 / 연합·VPA 같은 분류 수치 동일 테스트 |
B1-1 |
| B1-4 | 봇 표적 일반화 | TargetRef, stepBattleBrains, targeting.ts(후보 ≤ 4·상성·id % 10), LosCache 쌍 키 |
봇 AI 5.9 테스트 1·2·7 | B1-2, B1-3 |
| B1-5 | 봇 대 봇 사격 | combat.ts 통계 판정·관통·인원 비례·fire 이벤트 반경 |
진영·병과·탈것 4.3 교전 5개가 20시드 평균으로 기대 시간 ±40% | B1-4 |
| B1-6 | 전장 맵 스키마 + 하레크(빠른) | schema.ts, battleTerrain, harek.json(quick), 생성 도구, 전투 구역 |
스키마 오류 경로 테스트 / 전장 맵 6.2 원칙 1 |
B1-2 |
| B1-7 | 아바타 v1 + BattleRuntime + 리스폰 | PlayerBody(AI가 world.player 직접 참조 제거), 아바타 heli/dead, deploy 모드, spawnAvatar, 전투 구역 경계 규칙(A3) |
사망 → deploy → 출격 테스트 / deploy 중 월드 시간 흐름 테스트 / 아파치 계통 테스트 통과 / 경계 이탈 10초 사망 테스트 | B1-6 |
| B1-8 | 거점·티켓·승패 | conquest.ts, modes.json |
5.9 테스트 3 / 출혈(1개 열세 분당 6) / 손실 티켓 / 시간 제한·무승부 테스트 | B1-7 |
| B1-9 | 편제·파도 스폰(지상) | roster.ts·spawner.ts·rosters.json(빠른, 지상만) |
30초 파도 / 티켓 없으면 스폰 안 함 / 활성 유닛 ≤ 150 테스트 | B1-5, B1-8 |
| B1-10 | 소대·지휘관 v1 | platoon.ts(하차 없음), commander.ts(효용·예비·흔들림 방지·안개), setGroupRoute |
5.9 테스트 4·5 / 대기 지점에서 멈췄다가 슬롯으로 들어가는 테스트 | B1-9 |
| B1-11 | 전장 HUD v1 + 깃발 | 티켓 바·거점 줄·미니맵(음영)·거점/아군/발견된 적 표식·처치 알림·무전 한 줄, 깃발 기둥 | 스크린샷(1280×720·844×390) / 발견 전 적 표식 없음·가시선 없으면 숨김 테스트 / IHADSS와 겹치지 않음 스크린샷 | B1-8 |
| B1-12 | 최소 메뉴 | 타이틀 전장, 전장 설정(하레크 빠른·연합·난이도), 배치(본진 FARP·공중 투입·아파치 프리셋 3·10초 대기), 결과(승패·티켓·처치), 해시 라우팅 |
화면별 스크린샷 3뷰포트 / 타이틀 → 출격 3탭 / 경기 중 새로고침 → 전장 설정 | B1-7 |
| B1-13 | 첫 경기 안내 v1 | 첫 실행 기본값, 조작 카드(아파치), 코치(전장 규칙·아파치), 조종 보조 기본 켬, 사망 팁 | 코치가 한 번만 나오는 테스트(저장 tips) / 스크린샷 |
B1-11, B1-12 |
| B1-14 | 잔해 은퇴 + 규모 측정 v1 | world.retire(90초), battle-bench.ts |
유닛 500 생성·사망 후 units.length ≤ 150 / sim 평균 ≤ 1ms/프레임·AI 틱 최악 ≤ 2ms — 결과표 |
B1-9 |
| B1-15 | 하니스 v1 + 1차 밸런스 | battle-harness.ts(idle·proxy — 대리는 air.ts), 수치 JSON 반영 |
20시드: 한 판 중앙값 8 |
B1-10, B1-14 |
| B1-16 | 첫 배포 점검 | 경로별 번들 크기 기록(경고), docs/design 01·09장을 전장 기준으로 1차 개정, 로드맵 체크 | npm run check / 배포본 한 판 완주(소유자) |
B1-13, B1-15 |
B2. 보병 — 돌격병으로 싸운다
목표: 플레이어가 1인칭 돌격병으로 스폰해 걷고, 쏘고, 거점을 점령한다. 봇 보병은 코드 인형으로 보인다. 진영 선택이 열린다.
| ID | 작업 | 목표 | 완료 조건 | 선행 |
|---|---|---|---|---|
| B2-1 | 아바타 v2 + 역할별 입력 | soldier 아바타, input/roles.ts, 포인터 잠금 |
보병 스폰·사망·헬기 ↔ 보병 전환 테스트 / 입력 세트 전환 테스트 | B1-16 |
| B2-2 | 보병 이동·충돌 | soldier.ts: 속도·지구력·경사·물·낙하·충돌·탈것에 치임 |
보병 12.3 수치 테스트 / 나무·민가·교량 충돌 테스트 | B2-1 |
| B2-3 | 엄폐 소품 + 가시선 | 거점 소품 배치(채택 CC0), 충돌, LosCache 소품 검사 |
원칙 5 콘텐츠 테스트 / 소품 뒤 가시선 차단 테스트 / 스크린샷 | B2-2 |
| B2-4 | 1인칭 카메라·뷰모델·조준경 | 시야각·조준경 전환, 뷰모델 별도 장면 | 스크린샷(지향·조준경) / 벽 앞에서 뷰모델이 뚫지 않음 스크린샷 | B2-1 |
| B2-5 | 돌격소총·유탄 | 실제 발사체, 반동·퍼짐(world.rng), 재장전 |
발사율·탄창·재장전 테스트 / 퍼짐 결정론 테스트 | B2-4 |
| B2-6 | 분대원 개별화 | squad.ts 슬롯·체력, 캡슐·머리 판정, 300m 판정 LOD |
5.9 테스트 10 / 헤드샷 ×2 테스트 / 300m 밖은 분대 단위 판정 테스트 | B2-5 |
| B2-7 | 코드 인형 v1 | puppets.ts 부위 7·절차 애니메이션·진영 모양·LOD 4단계·협각 예외 |
드로우콜 +11 이하 / 상태·LOD별 스크린샷 / 조준경 협각에서 1.5km 인형 보임 테스트 | B2-6 |
| B2-8 | 봇 ↔ 플레이어 보병 교전 | soldierAwareness, 분대원 사격, 난이도 배율 |
5.9 테스트 8 / 12.5 교전 표 20시드 ±40% | B2-6 |
| B2-9 | 보병 점령·스폰 | 세력 0.6, 거점·분대 스폰, 사망 티켓 1, 대기 10초 | 혼자 점령 42초 테스트 / 스폰 조건 테스트 | B2-8 |
| B2-10 | 보병 HUD | 체력·탄약·장비·자세, 조준선·명중·피격 방향, 스폿 키, 미니맵 150m | 스크린샷 / 스폿 10초·봇 표적 공유 테스트 | B2-9 |
| B2-11 | 보병 조작(패드·터치) + 조준 보조 | 보병 12.8 | 터치 대상 ≥ 48px 테스트 / 844×390 스크린샷 / 조준 보조 끄기 | B2-10 |
| B2-12 | 진영 선택 v1 | 전장 설정 진영, VPA 보병 외형·문자열, VPA의 공격 헬기 슬롯 "준비 중"(A8) | 양 진영 결정론 테스트 / 5.9 테스트 12 / 스크린샷 | B2-9 |
| B2-13 | 첫 사용 안내: 보병 공통 | 조작 카드·코치, 첫 경기 기본 병과 = 돌격 | tips 한 번 / 스크린샷 |
B2-11 |
| B2-14 | 보병 소리 | 폴백(기존 클립 가공) 구현 + 후보 조사 | 오디오 목 테스트 / 조사표 이슈 첨부 | B2-5 |
| B2-15 | 보병 애니메이션 에셋 후보 조사 | 외부 에셋 16.4 표 | 조사표 이슈 첨부, A4 결정 요청 (비차단) | B2-7 |
| B2-16 | 하니스 v2(보병) | --player soldier 대리 |
20시드: soldier 대리 승률 ≥ 55%(추정) / 엄폐 대 노출 생존 ≥ 2배 / 한 판 8~12분 유지 | B2-8, B2-9 |
B2.5 선행 묶음 (2026-10-03 디렉션 결정 O7)
B3를 시작하기 전에 한다. 없이 B3를 하면 새 병과도 거점에 못 닿고 측정은 다시 0을 잰다(비전과 방향 5장).
| 이슈 | 작업 | 결정 |
|---|---|---|
| #196 | 디렉션 결정 문서 반영 | O3·O4·O5·O7·O11·O13 |
| #190 | 이름 "카르다 전선" — 입구 전부 + 이름 일치 테스트 | O1·O8 |
| #195 | 라이선스 고지 3건 | O7 |
| #194 | 첫 로드 정리(아파치 소리·안 쓰는 모델) + 재유입 검사 | O7 |
| #187 | 경사 45° + 공통 경사 함수, 못 오르는 곳 바위색 | O6 |
| #192 | 전방 집결지 + 맵 도달 검사 | O9 |
| #193 | 역할 공정 비교 하니스(P0 판정) | O3 |
| #191 | 저장소·주소 karda로 이전 |
O2 |
| #101 | 사람 관문 첫 적용 | O5 |
B3. 병과 4종
목표: 돌격·공병·지원·정찰을 배치 화면에서 골라 서로 다른 역할을 한다. 봇 분대에도 병과가 생긴다.
| ID | 작업 | 목표 | 완료 조건 | 선행 |
|---|---|---|---|---|
| B3-1 | 병과 틀 | classes.json, 장비 슬롯, 배치 화면 병과 선택 |
병과 전환 테스트 / 스크린샷 | B2-16, B2.5 선행 묶음 |
| B3-2 | 돌격 장비 | 구급 상자(회복·분대원 복귀), 연막(봇 가시선 차단) | 회복량·복귀 주기 테스트 / 연막 뒤 봇 사격 불가 테스트 | B3-1 |
| B3-3 | 공병 장비 | 카빈, 대전차 로켓, 수리 도구, 대전차 지뢰, 측·후면 배율 | 로켓 탄도·배율 테스트 / 수리 +20/s·과열 / 지뢰가 아군에 안 터짐 | B3-1 |
| B3-4 | 지원 장비 | 경기관총, 탄약 상자, 휴대용 대공(stinger 재사용) |
엎드림 퍼짐 절반 / 탄약 부족 해제 / 잠금 1.5초·플레어 회피 테스트 | B3-1 |
| B3-5 | 정찰 장비 | 저격소총, 쌍안경, 레이저 지시(remoteLasers), 스폰 비콘 |
숨 참기·흔들림 / 스폿 20초 / 레이저 지시 20초 안 봇 공격 헬기 1순위 테스트(B5 전에는 봇 헬기 없음 → 테스트 월드에 직접 배치) / 비콘 스폰 | B3-1 |
| B3-6 | 봇 분대 병과 | 대전차·기관총·대공·저격 봇 분대, 탄약 부족 상태, 봇 저격조 레이저 | 5.3 상성 테스트 / 4.3 교전 표 | B3-2~B3-5 |
| B3-7 | 첫 사용 안내: 병과 4 | 병과별 조작 카드·코치 | tips / 스크린샷 |
B3-5 |
| B3-8 | 병과 밸런스 표 | 12.4·12.5 수치 측정·조정 | 역할 공정 비교 하니스(#193): 병과마다 P0 띠 통과, 병과별 대리 승률 차 ≤ 10%p(추정) — 결과표. 뷰모델은 코드(O13) | B3-6 |
| 구현해서 100시드씩 켬/끔 비교: 연합 51→50%, VPA 58→53% — 효과 없음, O10대로 제거(2026-10-03) | — | — |
B4. 지상 탈것
목표: 전차·장갑차·경차량·수송 트럭·방공 차량을 조종하고, 봇 분대를 태워 나른다.
| ID | 작업 | 목표 | 완료 조건 | 선행 |
|---|---|---|---|---|
| B4-1 | 탈것 공통 | 아바타 v3, 탑승·하차·좌석, 탈것 풀·재생성 타이머, 배치 화면 탈것 슬롯, 빈 탈것 60초 회수, 3인칭 추적·조준경 카메라 | 탑승·하차·좌석 테스트 / 풀 타이머 테스트 / 회수 테스트 | B3-8 |
| B4-2 | 지상 차량 조종 모델 | ground.ts 궤도·바퀴·경사·도하·충돌 |
지상 탈것 13.2 항목별 테스트 / 결정론 | B4-1 |
| B4-3 | 전차 | 포탑 분리(모델 가공 조사 포함), 주포 2탄종·동축·연막, 측·후면, 조준경 2단·거리계 | 2.4 전차 손맛 목록 / 13.8 교전 표 / 스크린샷 | B4-2 |
| B4-4 | 장갑차 | 30mm, 유선 대전차 미사일(조준선 유도), 탑승석 | 조준선이 벗어나면 빗나가는 테스트 / 교전 표 | B4-3 |
| B4-5 | 경차량·수송 트럭 | 좌석 전환·사수석, 트럭 탑승석 | 운전자 없으면 정지 / 좌석 전환 / 교전 표 | B4-2 |
| B4-6 | 봇 자동 탑승·하차 | cargo.ts(봇 탈것 + 플레이어 탈것), 봇 AI 5.4 규칙 |
5.9 테스트 9 / 봇 트럭 하차 테스트 | B4-5 |
| B4-7 | 방공 차량 | 레이더 잠금·선도 조준점 | 선도 조준점 정확도 테스트 / 교전 표 | B4-3 |
| B4-8 | 탈것 HUD·조작 | 13.7 표, 차체·포탑·재장전 HUD | 터치 ≥ 48px / 스크린샷 3뷰포트 | B4-3 |
| B4-9 | 기동 불능·수리·재보급 | 20% 불, 본진·FARP 수리 | 불·수리·재보급 테스트 | B4-2 |
| B4-10 | 탈것 소리 | 폴백 + 후보 조사 | 오디오 목 테스트 / 조사표 | B4-3 |
| B4-11 | 첫 사용 안내 + VPA 외형 | 지상 탈것 코치, VPA 색·코드 부품 | tips / 양 진영 스크린샷 |
B4-8 |
B5. 대규모 점령전
목표: D4 대규모 기본 — 7거점 점령전, 인형 180, 봇 헬기와 공중 강습, 지원 요청·집중 거점.
| ID | 작업 | 목표 | 완료 조건 | 선행 |
|---|---|---|---|---|
| B5-1 | 하레크 7거점 + 거점 효과 | conquest 모드, farp·radar |
6.2 원칙 전부 / radar 테스트 / 거점 FARP 스폰 조건 테스트 |
B4-11 |
| B5-2 | 대규모 편제 | 대규모·표준 편제(대칭), 플레이어 진영 보정, 난이도 편제 배율 | 편제 대칭 테스트 / sim 유닛 최대 ≤ 134 검증 | B5-1 |
| B5-3 | 인형 LOD 완성 | 인스턴스 상한·단계 낮춤(기술 설계 9.5) | 인형 190에서 드로우콜·삼각형 기록 / LOD 스크린샷 | B5-2 |
| B5-4 | 봇 항공 | air.ts 표적 일반화, 수송 헬기 공중 강습, 대공 대 헬기 통계 |
5.9 테스트 6 / 4.3 대공 교전 ±40% | B5-2 |
| B5-5 | 지원 요청 + 집중 거점(D5) | requests.ts, 무전 메뉴. 자동 집중(플레이어 위치 기본값)은 B3-9로 당겨짐(O10), 여기서는 수동 지정 |
요청 조건·쿨다운 / +300 / 효용 +0.8·90초 쿨다운 테스트 / 스크린샷 | B5-1 |
| B5-6 | 먼 전장 소리 | 1.5km 밖 이벤트 믹서 | 오디오 목(상한 6·감쇠) | B5-2 |
| B5-7 | 성능 측정 v2 + 모바일 조정 단계 | 대규모 벤치, 헤드리스 모바일 뷰포트 low 측정, 렌더 단계적 축소 구현 | 데스크톱 sim ≤ 4ms·드로우콜 ≤ 200 / low 드로우콜 ≤ 120·삼각형 ≤ 350k — 결과표(A9 자료) | B5-3, B5-4 |
| B5-8 | 하니스 v3(대규모) | popup·hover, 양 진영 |
18 |
B5-4, B5-5 |
B6. 헬기 확장
목표: 수송 헬기 조종, VPA 공격 헬기 조종 — 양 진영 헬기 슬롯을 모두 연다(D8 대칭 헬기 완성).
| ID | 작업 | 목표 | 완료 조건 | 선행 |
|---|---|---|---|---|
| B6-1 | 기체 정의 주입 + 수송 헬기 | AirframeDef(아바타 v4), transport.json, 조종석·HUD, 헬기 봇 자동 탑승 |
아파치 스텝 해시 불변 / 탑재 무게 추력 테스트 / 착지 하차 테스트 / 스크린샷 | B5-8 |
| B6-2 | VPA 공격 헬기 조종 | 계단식 조종석·조준 유리 HUD·이름표·소리 피치 | 무장·센서 수치가 아파치와 같은 테스트 / 스크린샷 / "준비 중" 해제(A8) | B6-1 |
| B6-3 | VPA 수송 헬기 외형·헬기 슬롯 | 양 진영 헬기 슬롯 전부 | 슬롯 테스트 / 스크린샷 | B6-1 |
| B6-4 | 첫 사용 안내: 헬기 2종 | 수송 헬기·VPA 헬기 코치 | tips |
B6-2 |
| B6-5 | 수송 헬기 모델 후보 조사 | 16.4 표 | 조사표 (비차단) | B6-1 |
B7. 전투기
목표: 처음부터 조종 가능한 전투기(D7) — 외곽 공역, 무장, 봇 전투기, 대공 위협과 P2.
| ID | 작업 | 목표 | 완료 조건 | 선행 |
|---|---|---|---|---|
| B7-1 | 외곽 공역 + 경계 | 원경 지형 링(A2), 경계 10초, 원거리 평면 12km·안개 | 생성 ≤ 0.2초 / 경계 테스트 / 드로우콜 +4 이하 / 스크린샷 | B5-8 |
| B7-2 | 비행 모델 + 조종 보조 | jet/flight.ts, 아바타 v5 |
실속·G·최고 속도·선회율 테스트 / 보조 수평 복귀 / 결정론 | B7-1 |
| B7-3 | 조종석·HUD 2종 | 코드 조종석, 캔버스 HUD | 스크린샷(두 진영) | B7-2 |
| B7-4 | 기관포·공대공 | 선도 조준점, stinger 시커, 지면 클러터 |
지면 30m 이하 헬기 잠금 0회 테스트 / 선도 조준점 정확도 | B7-2 |
| B7-5 | 공대지·로드아웃 | 폭탄 CCIP, 공대지 미사일(조준 포드 = TADS 뷰), 레이저 유도 폭탄 | CCIP 탄착 오차 테스트 / 공격 주기 테스트 | B7-4 |
| B7-6 | 출격·재보급 회랑·손실 | 공중 스폰, 회랑 재보급 | 회랑 재보급 테스트 / 원칙 14 콘텐츠 테스트 | B7-2 |
| B7-7 | 봇 전투기 | jetAi.ts 제공·대지 |
대지 120초 주기 / 저공 헬기 무시 / 비용 < 0.01ms | B7-4 |
| B7-8 | 대공 위협 + P2 하니스 | 방공 → 플레이어 전투기 실제 미사일, 100m 이하 발견 규칙 | 하니스: 전투기 대리 vs 저공 헬기 잠금 0 / 방공 회피 테스트 | B7-7 |
| B7-9 | 전투기 조작 | 전투기 15.9, 마우스 조종 모드 | 터치 ≥ 48px / 스크린샷 | B7-3 |
| B7-10 | 전투기 모델·제트 소리 | 폴백 소리 + 후보 조사 | 오디오 테스트 / 조사표 (비차단) | B7-3 |
| B7-11 | 첫 사용 안내: 전투기 | 코치 4단계 | tips |
B7-9 |
B8. 진행
목표: 캠페인 없이 "한 판 더"의 이유 — 기록·평점·계급·숙련·리본·오늘의 전장(진행과 보상).
| ID | 작업 | 목표 | 완료 조건 | 선행 |
|---|---|---|---|---|
| B8-1 | BattleSave v1 + 복무 기록 |
새 키 heli-battle-v1 |
저장·로드·손상 필드 복구 테스트 | B5-8 |
| B8-2 | 점수·기여도 + 경기 후 보고 | score.ts, 티켓 추이 그래프, 오사 감점(D9) |
7.2 항목별 테스트 / 스크린샷 | B8-1 |
| B8-3 | 평점 문턱 확정 | 하니스 분포 → 중앙값 B·상위 20% A·상위 5% S | 결과표 | B8-2 |
| B8-4 | 계급·숙련 | 7.4·7.5 — A6 결정으로 장비는 모두 처음부터 열림, 숙련은 기록·도색만 | 레벨 경계 테스트 / 모든 장비가 첫 경기부터 선택 가능한 테스트 / 숙련 레벨별 도색 보상 테스트 | B8-2 |
| B8-5 | 리본 20종 | 조건별 테스트 | B8-2 | |
| B8-6 | 오늘의 전장 | 날짜 → 시드(UI 층) | 같은 날짜 → 같은 설정 / 연속 일수 테스트 | B8-1 |
B9. 콘텐츠
| ID | 작업 | 목표 | 완료 조건 | 선행 |
|---|---|---|---|---|
| B9-1 | 맵 2 베로스 저수지 | 주간·야간·안개 | 원칙 테스트 / 하니스 18~28분 | B7-8 |
| B9-2 | 돌파 규칙 | 구역·잠금·본진 전진·수비 파도, 공격/수비 선택 | 구역 붕괴·잠금·+200 / 수비 파도 3회 테스트 | B5-8 |
| B9-3 | 맵 3 카르다 고개 | 돌파 전용 | 원칙 테스트 / 하니스 공격 proxy 50~70%·idle ≤ 30% | B9-2 |
| B9-4 | 작전 | 새 작전 지도 UI, 진영 선택 | 진행·재시도 저장 테스트 / 스크린샷 | B8-1, B9-1, B9-3 |
| B9-5 | (선택) artillery 거점 효과 |
효과 테스트 | B9-1 |
B10. 완성도
| ID | 작업 | 목표 | 완료 조건 | 선행 |
|---|---|---|---|---|
| B10-1 | 모바일 실기기 + 조정 확정 | A9 결정 반영 | 소유자 기기 30fps 확인 | B9-4 |
| B10-2 | 밸런스 패스 | 난이도 3 × 맵 3 × 진영 2 | 결과표 | B10-1 |
| B10-3 | 경로별 번들 검사 | A1 수치를 테스트로 | 빌드 산출 크기 테스트 | B9-4 |
| B10-4 | 접근성 점검 | 모양 구분·글자·터치 대상 | a11y.test.ts 통과 / 점검 목록 이슈 |
B10-1 |
| B10-5 | 기획 문서 최종 반영 | docs/design 전면 개정(비전·기둥·예산·채택 에셋·로드맵) | 문서 리뷰 | B10-2 |
| B10-6 | 채택 에셋 교체 | A4 결과 반영(인형 근거리 LOD·전투기·수송 헬기 모델·소리) | 교체 후 예산·스크린샷 / 채택 없으면 닫음 | B10-1 |