Skip to content

곤충게임: 시뮬 FAIL 2·WARN 2 소진 — 캔디 곡선 12.5% + 가챠 천장·샤이니·골드 보너스 - #2

Merged
kimsungsugit merged 2 commits into
mainfrom
fix/balance-sim-fails
Sep 8, 2026
Merged

kimsungsugit merged 2 commits into
mainfrom
fix/balance-sim-fails

Conversation

@kimsungsugit

Copy link
Copy Markdown
Owner

요약

프로젝트의 자기 검사기(시뮬 3종)를 돌렸더니 progression_sim·gacha_sim이 오래 FAIL을 내고 있었다. 오늘 작업의 회귀가 아니라(이전 커밋에서도 같은 값) 방치된 설계 공백이다. 두 커밋으로 FAIL 2·WARN 2를 전부 닫았다.

바뀐 것

성장

  • 곤충 캔디 곡선 레벨당 14% → 12.5% 복리. Lv50까지 5,759전투(≈48시간) → 3,339전투. 지수 자체는 설계라 기울기만 낮췄다. 기존 세이브엔 "싸졌다"뿐이라 마이그레이션 없음.

가챠

  • 천장 신설: 같은 상자 80연째 Legendary 확정(GachaBoxManager.PityLegendaryPulls). 상자별 계정 스코프 PlayerPrefs + 클라우드 DTO, 기기 간 max 병합. 상점 카드에 "전설 확정까지 N회".
  • 샤이니 2%(필드 1%). 옛은 지정이 없어 필드 롤을 물려받았다. 결과 화면 표시.
  • 골드 보너스 캔디 2050 → 4580(Lv30 레벨업비의 절반 이상).

검사기 자신의 결함

  • 보너스 캔디 추출 정규식이 case 블록을 벗어나 무관한 Random.Range를 조용히 물었다 → 같은 case 블록으로 제한.
  • Lv30 레벨업비가 시뮬에 하드코딩(178) → 코드에서 파생.

검증

항목 결과
progression_sim / gacha_sim / economy_sim 4 PASS / 9 PASS / 5 PASS (FAIL 0 · WARN 0)
PlayMode 테스트 891 / 891 (+2)
ci_check (검사기 11종) 통과
Unity 배치 컴파일 에러 0

손으로 볼 것

상점 가챠 카드의 천장 문구와 결과 화면 샤이니 태그(IMGUI라 캡처 불가).

🤖 Generated with Claude Code

kimsungsugit and others added 2 commits September 9, 2026 02:45
이번엔 코드 리뷰가 아니라 **프로젝트의 자기 검사기**를 돌렸다. `progression_sim`과 `gacha_sim`이
각각 FAIL 1건을 내고 있었고, 둘 다 세션 이전 커밋(57f9cfd)에서도 같은 값이었다 — 오늘 작업의 회귀가
아니라 오래 방치된 설계 공백이다. 의존 방향(Story→NPC 신규 참조)과 로그 경고 스팸도 함께 봤고 둘 다
문제없었다.

## 1. 곤충 Lv50까지 5,759전투 (임계 4,000)

캔디 곡선이 base 4 × 1.14^(L-1)라 Lv50까지 총 17,500캔디, 현실 진행 income(≈3/전투)으로
5,759전투 ≈ 48시간이었다. 지수 자체는 설계다(후반이 비싸야 리전 진행과 맞물린다) — 기울기만
12.5%로 낮췄다. 총 10,200캔디 → 3,339전투. 13%는 4,028로 경계라 피했다. 팀 5마리 87,610 →
51,170. economy_sim의 중반 병목(2.9일)은 그대로다. 기존 세이브엔 "싸졌다"뿐이라 마이그레이션 없음.

## 2. 브론즈 100연에 전설 0개가 60%

천장이 없었다. `GachaBoxManager.PityLegendaryPulls = 80` — 같은 상자를 80연째 열면 roll과 무관하게
Legendary, 그 사이 나오면 리셋. 카운터는 굴린 등급 기준이다(DB 보정이 상위로 올려 줬다고 천장을
닫지 않는다). 상자별 계정 스코프 PlayerPrefs(SaveScope 키 3개 · MigrationVersion 8) + 클라우드
DTO 4점 — 기기 간 병합은 **max**다(단조 증가 후 리셋되는 값이라 작은 쪽을 덮으면 진척이 사라진다).
상점 카드에 "전설 확정까지 N회". gacha_sim이 천장을 코드에서 읽어 모델링한다(0.0%).

## 남긴 것

gacha_sim WARN 2건(골드 캔디보너스 비율 19.7%, 샤이니 미구현)은 기존 그대로 — 별건.

검증: progression_sim 4 PASS · gacha_sim 0 FAIL · economy_sim 5 PASS · ci_check 통과 · error CS 0 ·
PlayMode 891/891(+2) · verify_coverage 0.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
직전 커밋이 남긴 gacha_sim WARN 둘을 닫았다. 그 과정에서 검사기 자신의 결함이 둘 나왔다.

- **추출기가 조용히 틀린 값을 냈다.** 골드 상자 case를 `default:`로 접었더니 `gacha_candy_bonus`의
  정규식(`case "box_gold":.*?Random.Range`)이 파일 뒤쪽 `GetGachaLevel`의 `(1, 6)`을 물어 "골드
  보너스 평균 3"을 찍었다(실제 35). case 세 개를 명시적으로 되돌리고, 정규식을 **같은 case 블록
  안**으로 제한했다 — 다음 `case "`/`default:` 전에 없으면 실패한다.
- **Lv30 레벨업비가 시뮬에 하드코딩돼 있었다**(`int(4 * 1.14 ** 29)`). 곡선이 12.5%로 바뀐 뒤에도
  178을 썼다. `game_facts.insect_candy_curve()`에서 파생한다.
- 골드 보너스 캔디 20~50 → 45~80. Lv30 레벨업비(121)의 절반은 돼야 "보너스"로 읽힌다(51.7%).
- 가챠 샤이니 `ShinyChance = 2%`(필드 1%). 옛은 지정이 없어 필드와 같은 1% 롤을 물려받았고 시뮬은
  "미구현"으로 읽었다. 결과 화면에 "★ 색다른 곤충!". 추출기 `gacha_shiny_pct`가 상수를 읽는다.

검증: gacha_sim 0 FAIL / 0 WARN / 9 PASS · economy_sim 5 PASS · ci_check 통과 · error CS 0 ·
PlayMode 891/891.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@kimsungsugit
kimsungsugit merged commit c724cc6 into main Sep 8, 2026
1 check passed
@kimsungsugit
kimsungsugit deleted the fix/balance-sim-fails branch September 8, 2026 23:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant