Files
ProjectSS/docs/decisions/2026-09-05_core-graybox-ux-feedback.md
T
kyoung5seo 83060f3e5b 구현 우선 순위 1차 진행 완료
- 1차 — 코어 검증 (여기까지만 되어도 재미 판정 가능)
  1. **기호 체계 + 책상 상태 상시 노출 UI** (§3)
  2. **책상 적재 + 누진 패시브 페널티 A·B** (§4)
  3. **표준 족보 판정 및 합본 실행** (§5)
  4. **합본 기반 토큰 산출** (§8.2)

 게임 플레이 후 피드백 해결
 - 내용은 아래 문서 참고
 - docs/decisions/2026-09-05_core-graybox-ux-feedback.md
2026-09-05 01:06:41 +09:00

6.3 KiB

type, status, created, updated, tags, impact
type status created updated tags impact
decision decided 2026-09-05 2026-09-05
core-system
graybox
ux
balance
desk
hands
client/src/core/engine/desk.js
client/src/core/engine/pollutionPool.js (신규)
client/src/core/components/DeskBar.jsx
client/src/core/components/DeskDetailPopup.jsx (신규)
client/src/core/components/HandGuidePopup.jsx (신규)
client/src/core/components/CoreSwipeCard.jsx
client/src/core/components/CombinePanel.jsx
client/src/data/cards.csv

배경

구현 우선순위 1차(§17: 기호 체계·책상 적재/누진 페널티 A·B·표준 족보 판정/합본·토큰 산출) 그레이박스를 실제로 플레이해 본 뒤 5가지 문제가 보고됐다.

  1. 합본 결재 버튼을 누르기 전에는 현재 책상에 어떤 오염 카드를 보유했는지 알 수 없었다.
  2. 좌/우 스와이프 시 카드 위에 겹쳐 그리던 오염 예고 정보가 결재 카드 본문 글자를 가렸다.
  3. 트럼프 족보 구조를 그대로 썼지만(§5.1 설계 원칙), 기호 자체가 다르면 "같은 등급 3장" 같은 조건이 바로 안 와닿아 판정 기준을 확인할 방법이 없었다.
  4. 4대 게임오버 게이지가 §4.2-A 표(장수 기준, 1~3장 +0.5%)대로 상승해서 초반 위기감이 거의 없었다.
  5. 좌/우 선택 시 "인사/대외/위협/공보" 같은 분류 라벨만 보여서, 결재 카드 본문을 읽을 필요도 없어지고 그 선택이 왜 해당 게이지를 올리는지 인과가 안 읽혔다.

추가로, 4번을 고치는 과정에서 cards.csv의 딜레마 카드가 전부 등급 12만 생성한다는 사실이 드러났다 — 등급 34 오염은 pollution_pool.csv에 데이터가 있어도 게임에 전혀 등장하지 않는 구조였다.

결정

  1. 책상 상시 노출 강화 — DeskBar를 축별 등급 그룹 칩(●●○○×2)까지 보여주도록 확장하고, 축 행 클릭 시 DeskDetailPopup으로 개별 카드 이름·사연을 볼 수 있게 한다.
  2. 좌/우 예고를 카드 위 오버레이에서 상단 고정 슬롯(core-choice-row)으로 이동 — 드래그 여부와 무관하게 항상 노출하고, 카드 본문과 겹치지 않는 별도 영역으로 분리한다.
  3. 족보표 팝업 추가 — DeskBar에 [족보표] 버튼을 두고, 트럼프 용어가 아니라 이 게임의 축 인장·등급 점 표기로 7종 족보 조건과 예시를 보여주는 HandGuidePopup을 연다.
  4. 게이지 상승 기준을 "장수"에서 "등급 가중 오염 압력(P)"으로 변경 — 등급별 가중치 (1=1, 2=2, 3=3, 4=5)를 합산한 P로 상승률을 재산정한다. 구간도 초반 체감이 되도록 올렸다 (P 12: +1.0%, 36: +2.0%, 712: +3.5%, 1320: +6.0%, 21~30: +9.0%, 31+: +13.0% / 결재). 현재 축별 상승률은 DeskBar에 ▲+X.X%/결재로 상시 표시한다.
  5. 오염 카드에 실제 이름·사연 부여 — 그동안 어디서도 쓰이지 않던 pollution_pool.csv를 pollutionPool.js로 연결해, 책상에 쌓이는 카드가 축 라벨이 아니라 구체적인 서류 이름 (예: 『항명 성명』)을 갖게 한다. 결재 로그도 『선택 문구』 결재됨 → 오염 서류 『이름』 접수 형태로 바꿔 선택-결과 인과를 드러낸다. (2번 레이아웃 수정과 합쳐 선택 문구 자체도 상시 노출됨.)
  6. 등급 34 미출현 문제는 카드 데이터에 등급 34 선택지를 직접 추가하는 방식(안 ①)으로 해결 — cards.csv의 서사적으로 심각한 선택지 6곳의 등급을 올렸다: id=31 좌측("신화적 존재 강림" → 현실 조작기 가동)을 1급 기밀(4)로, id=5·12·17·20·26을 2급 기밀(3)로.

검토했으나 기각한 대안

  • 책상 표시를 지금처럼 축별 장수 집계만 유지 — 족보는 등급으로 판정되므로 등급이 안 보이면 합본 설계 자체가 불가능하다는 원 기획서 §3.4 취지(예고 없이는 스와이프가 도박이 된다)에 정면으로 어긋나 기각.
  • 등급 3~4 미출현 문제: 안 ② 페이즈 상승 시 같은 선택의 등급을 보정 — 카드 데이터 변경 없이 런타임에서 등급을 올리는 방식. 데이터가 명시적이지 않아 플레이어가 "왜 이 선택이 이번엔 더 위험한지" 추론하기 어렵다고 보고, 데이터에 등급을 직접 박아 넣는 안 ①을 택함. 안 ③(2차로 미루기)도 검토했으나, 1차 그레이박스 검증 자체가 고등급 오염의 압박감을 포함해야 의미가 있다고 보고 기각.
  • 게이지 상승 기준을 유지한 채 구간 상수만 올리는 안 — 장수만 세면 1급 기밀과 일반 문서가 똑같이 취급되는 근본 문제가 남는다고 판단해, 등급 가중 압력(P) 도입으로 대체.

근거

  • "밸런스는 플레이해봐야 아는 것"이라는 방향에 따라, 정확한 수치 확정보다 압박이 실제로 체감되는 구조를 우선했다. 모든 수치는 가안이며 플레이테스트로 계속 조정한다 (ProjectSS_코어시스템_기획서.md의 "Greybox First" 원칙과 동일).
  • §3 기호 체계의 핵심 요건("스와이프 판단은 기호만 보고 0.5초 내에 이루어져야 한다")과, 이번 피드백이 지적한 "서사가 안 읽힌다"는 문제는 상충하지 않는다 — 판단은 기호로, 인과·서사는 텍스트로 담당하도록 역할을 분리해 둘 다 만족시켰다.
  • 등급 3~4를 데이터에 직접 추가하는 쪽이, 카드 밸런스와 스토리 개연성을 디자이너가 직접 검토할 수 있게 하라는 CLAUDE.md의 데이터 원칙에도 더 부합한다.

재검토 조건 (있다면)

  • 공보(axis_pr) 축은 이번 작업 후에도 등급 2 이상 딜레마 선택지가 하나도 없다 — 다음 카드 데이터 배치 작업 때 반드시 재검토.
  • 게이지 상승률 구간(P 1~2: +1.0% ~ 31+: +13.0%)은 가안 — 몇 라운드 플레이 후 "10장=슬슬 위험, 20장=이번 라운드 안에 못 정리하면 끝"(§4.3 기준선)에 맞는지 재확인.
  • 이번에 등급을 올린 6곳(id=5,12,17,20,26,31)이 스토리 개연성상 적절한지 디자이너 검토 필요.
  • 혼합축 합본의 토큰 산출 규칙("소량 전종")은 여전히 미확정 가안 — 상점(2차) 구현 시 재검토.