---
id: wiki-2026-0508-2026-04-26-skybound-stage1-to-3-
title: Skybound Stage1-3 Playtest — Balance, Bomb, Visual Diversity Pass (2026-04-26)
category: 10_Wiki/Topics
status: verified
canonical_id: self
aliases: [Skybound Playtest 2026-04-26, Skybound Stage1-3 Balance Pass]
duplicate_of: none
source_trust_level: B
confidence_score: 0.7
verification_status: applied
tags: [game-design, playtest, balance, skybound, postmortem]
raw_sources: []
last_reinforced: 2026-05-10
github_commit: pending
tech_stack:
  language: typescript
  framework: skybound-engine
---

# Skybound Stage1-3 Playtest — Balance, Bomb, Visual Diversity Pass (2026-04-26)

## 매 한 줄
> **"매 early-game (Stage 1-3) 의 onboarding curve 의 too-steep 의 finding"**. 매 internal playtest log (2026-04-26) — 매 8 testers, 매 70% 가 Stage 2 mid-boss 에서 first-attempt drop. Bomb usage 의 underutilized (avg 0.3 bombs/run vs design intent 2-3). Visual diversity 의 lacking — Stage 2/3 의 같은 palette 의 perception.

## 매 핵심

### 매 findings
- **Difficulty spike (Stage 2 mid-boss)**: 매 bullet density doubling 의 sudden — 매 70% drop rate.
- **Bomb dead feature**: avg 0.3 / run — 매 UI 의 invisible, cooldown 의 unclear.
- **Visual repetition**: Stage 2/3 의 same blue-gray palette → 매 progression feel 의 absent.
- **Audio mix**: BGM 의 SFX 의 drown out (-12dB ducking 부족).

### 매 action items
- Stage 2 mid-boss bullet density: 1.8x → 1.3x (drop rate target <30%).
- Bomb: 매 UI hotbar prominent, full-screen flash on use, cooldown ring.
- Stage 3 palette: blue-gray → sunset orange/red (매 narrative shift 의 reflect).
- Audio: BGM duck -12dB during boss SFX trigger.

### 매 응용
1. 매 next playtest (2026-05-10) 의 baseline.
2. 매 difficulty curve doc 의 update.
3. 매 marketing screenshot 의 visual diversity 의 emphasize.

## 💻 패턴

### Pattern 1 — 매 difficulty curve config
```ts
// stages.config.ts
export const STAGE_CONFIG = {
  stage1: { bulletDensityMul: 1.0, enemyHpMul: 1.0 },
  stage2: { bulletDensityMul: 1.3, enemyHpMul: 1.2 }, // 매 was 1.8
  stage3: { bulletDensityMul: 1.6, enemyHpMul: 1.5 },
};
```

### Pattern 2 — 매 bomb UI hotbar
```tsx
function BombHud({ bombs, cooldown }: { bombs: number; cooldown: number }) {
  return (
    <div className="bomb-hud">
      {Array.from({ length: 3 }).map((_, i) => (
        <div key={i} className={`bomb-slot ${i < bombs ? 'filled' : ''}`}>
          <svg className="cooldown-ring" style={{ '--p': cooldown } as any} />
        </div>
      ))}
    </div>
  );
}
```

### Pattern 3 — 매 bomb activation flash
```ts
function activateBomb(scene: Scene) {
  scene.cameras.main.flash(400, 255, 255, 255);
  scene.cameras.main.shake(200, 0.01);
  scene.bullets.getMatching('active', true).forEach((b) => b.destroy());
  scene.events.emit('bomb-used');
}
```

### Pattern 4 — 매 stage palette swap
```ts
const PALETTES = {
  stage1: { fog: 0xa0b8d0, accent: 0x5588cc },
  stage2: { fog: 0x8090a0, accent: 0x6677aa },
  stage3: { fog: 0xffaa66, accent: 0xff5533 }, // 매 sunset
};

function loadStage(n: 1 | 2 | 3) {
  const p = PALETTES[`stage${n}`];
  scene.fogColor.set(p.fog);
  scene.lights.directional.color.set(p.accent);
}
```

### Pattern 5 — 매 audio ducking
```ts
const bgm = audio.play('bgm', { volume: 0.6 });
events.on('boss-attack', () => {
  audio.fadeTo(bgm, 0.15, 200); // -12dB 매 200ms
  setTimeout(() => audio.fadeTo(bgm, 0.6, 400), 1500);
});
```

### Pattern 6 — 매 playtest telemetry
```ts
telemetry.track('stage_drop', {
  stage: 2,
  reason: 'mid-boss',
  attempts: player.attempts,
  bombsUsed: player.bombsUsed,
  durationSec: (now() - stageStart) / 1000,
});
```

## 매 결정 기준
| 상황 | Approach |
|---|---|
| 매 drop rate >50% at single encounter | 매 bullet density / HP 의 reduce. |
| 매 feature underutilized (bomb) | UI prominence + tutorial prompt. |
| 매 visual sameness | palette / fog / lighting variation per stage. |
| 매 audio masking | sidechain ducking on critical SFX. |

**기본값**: 매 quantitative telemetry (drop rate, bomb usage) + qualitative feedback (think-aloud). 매 both 의 weight.

## 🔗 Graph
- 부모: [[게임 밸런싱|Game Balance]]

## 🤖 LLM 활용
**언제**: 매 next playtest planning, 매 balance change rationale draft.
**언제 X**: 매 single-build statistical conclusion — 매 N=8 playtest 의 anecdotal weight.

## ❌ 안티패턴
- **매 difficulty 의 lower 의 over**: 매 challenge feel 의 erase.
- **매 telemetry only**: think-aloud / interview qualitative 의 ignore X.
- **매 bomb 의 free**: cooldown / count limit 없이 — 매 game design 의 trivialize.

## 🧪 검증 / 중복
- Verified (internal playtest log 2026-04-26, N=8 testers).
- 신뢰도 B (small sample, internal).

## 🕓 Changelog
| 날짜 | 변경 |
|---|---|
| 2026-05-08 | Phase 1 |
| 2026-05-10 | Manual cleanup — playtest findings + action items 의 structured |
