밸런싱과 난이도 설계
Balancing and Difficulty Design
예상 시간: ~60분
🎯 목표
게임이 적당히 어렵고 공정하게 느껴지도록 난이도 커브와 점수 밸런스를 조정합니다. 이 튜토리얼을 끝내면 뱃지 시스템까지 설정한 완성도 높은 게임이 됩니다.
📋 준비물
- Level 0~2에서 완성한 게임
- 스프레드시트 또는 메모장 (점수 기록용)
- 가능하면 테스터 2~3명 (가족, 친구)
단계별 가이드
Step 1. 현재 난이도 측정하기
먼저 현재 게임이 얼마나 어려운지 숫자로 파악합니다:
- 직접 10번 플레이하면서 점수를 기록합니다
- 아래 표를 채우세요:
| 회차 | 점수 | 사망 원인 | |------|------|-----------| | 1 | | | | 2 | | | | ... | | | | 10 | | |
- 계산합니다:
- 평균 점수: 전체 합 / 10
- 최고 점수: 개발자인 내가 달성한 최고
- 최저 점수: 가장 나쁜 결과
- 편차 비율: (최고 - 최저) / 평균
💡 편차 비율이 2.0 이상이면 난이도 편차가 큽니다. 1.0 이하면 너무 균일합니다.
Step 2. 이상적인 난이도 커브
좋은 3초 게임의 난이도 패턴:
난이도
▲
│ ╱──── 고수만 가능
│ ╱
│ ╱───── 진입 장벽 (여기서 대부분 게임오버)
│ ╱
│ ╱
│╱────────── 누구나 할 수 있는 구간
└──────────────────────► 시간
0s 3s 10s 30s
핵심 원칙:
- 처음 3초: 누구나 살아남아야 합니다 (아무것도 안 해도 생존)
- 10초 부근: 뉴비가 Game Over 되는 첫 벽
- 30초 이후: 고수만 도달하는 영역
AI에게 이렇게 요청하세요:
게임 난이도를 시간 기반으로 조정해줘:
- 0~3초: 장애물 없음 또는 매우 느림 (웜업)
- 3~10초: 장애물 속도 1x, 간격 넓음
- 10~20초: 속도 1.3x, 간격 점진 감소
- 20~30초: 속도 1.6x, 새로운 장애물 패턴 추가
- 30초+: 속도 2x, 가장 어려운 패턴 혼합
속도와 간격은 lerp(선형 보간)으로 부드럽게 전환.
갑자기 난이도가 점프하면 안 됨.
Step 3. 점수 분포 설계
리더보드 뱃지 시스템을 위해 점수 분포를 설계합니다:
| 티어 | 예상 달성률 | 점수 범위 (예시) | |------|------------|-----------------| | Common (일반) | ~70% 도달 | 0 ~ 5,000 | | Rare (레어) | ~30% 도달 | 5,000 ~ 20,000 | | Epic (에픽) | ~10% 도달 | 20,000 ~ 50,000 | | Legendary (전설) | ~1% 도달 | 50,000+ |
실제 점수 범위는 게임마다 다릅니다. Step 1에서 기록한 데이터를 기준으로:
- Common: 최저 점수 × 1.5
- Rare: 평균 점수
- Epic: 최고 점수 × 0.8
- Legendary: 최고 점수 × 1.5
Step 4. 뱃지 설정
제출 시 뱃지 threshold를 설정합니다. 제출 폼의 "🏆 뱃지 마일스톤" 섹션에서:
{
"badges": {
"common": 5000,
"rare": 20000,
"epic": 50000,
"legendary": 95000
}
}
💡 뱃지 값은 게임 승인 후 개발자 대시보드에서 수정할 수 있습니다.
Step 5. 플레이테스트
가능하면 2~3명에게 테스트를 부탁하세요:
관찰 포인트:
- 첫 플레이에서 3초 이상 생존하는가?
- 10초 이상 생존하려면 몇 번 시도가 필요한가?
- "한 번만 더" 하고 싶다는 느낌이 드는가?
- 어디서 게임오버 됐을 때 가장 짜증나는가? (= 불공정하다고 느끼는 지점)
안 좋은 신호:
- 첫 플레이에서 1초 만에 사망 → 초반 난이도 너무 높음
- 모든 플레이가 비슷한 점수 → 스킬 차이가 반영 안 됨
- "뭘 해야 할지 모르겠어" → 튜토리얼/온보딩 부족
- "그냥 운이야" → 패턴 예측 가능성 부족
좋은 신호:
- "어떻게 그 점수를 냈어?" → 스킬 차이 존재
- "한 번만 더!" → 중독성 있음
- "아 거기서 죽었네" → 사망 원인 이해 가능
Step 6. 최종 조정
플레이테스트 결과를 바탕으로 AI에게 최종 조정을 요청합니다:
플레이테스트 결과를 반영해서 밸런스를 수정해줘:
- 문제 1: [관찰된 문제]
- 문제 2: [관찰된 문제]
- 목표: 첫 플레이에서 평균 15초 생존, 10번 플레이 후 30초+ 가능
✅ 체크포인트
- [ ] 10회 플레이 점수를 기록했다
- [ ] 평균/최고/최저/편차를 계산했다
- [ ] 시간 기반 난이도 커브를 적용했다
- [ ] 첫 3초는 안전 구간이다
- [ ] 뱃지 threshold 4단계를 설정했다
- [ ] (가능하면) 2명 이상 플레이테스트를 했다
- [ ] 피드백 반영하여 최종 조정했다
🐛 잘 안 될 때
"난이도가 갑자기 확 올라가요"
lerp(선형 보간)로 부드럽게 전환했는지 확인- AI에게:
"난이도 증가를 lerp로 부드럽게 만들어줘. 현재 시간에 비례해서 선형 보간."
"점수가 항상 비슷해요"
- 스킬에 따른 점수 차이가 없다면 → 보너스/콤보 시스템 추가
- AI에게:
"연속 장애물 회피 시 콤보 배율(x2, x3...)을 추가해줘"
"어디서 죽었는지 모르겠어요"
- 게임오버 원인을 화면에 표시
- AI에게:
"게임오버 시 '장애물에 충돌!' 같은 사망 원인 텍스트를 추가해줘"
"뱃지 값을 못 정하겠어요"
- 처음에는 대략적으로 설정 후 실제 플레이 데이터가 쌓이면 조정
- 개발자 대시보드에서 언제든 수정 가능
🤖 AI 모델별 접근법
무료로 시작
- Gemini 3.1 Pro — 점수 분포 분석과 수치 조정 요청에 정확한 응답. 무료로 반복 테스트 가능.
- DeepSeek-V3.2 — 밸런스 공식 계산과 난이도 커브 수학적 설계에 강점.
상용 모델
- Claude Opus 4.6 — "플레이테스트 결과 + 수정 요청"을 한 프롬프트에 넣으면 종합적 밸런싱 제안.
- GPT-5.4 — lerp/easing 함수와 점수 시스템 구현에 정확한 코드 생성.
로컬 실행
- Ollama + Qwen2.5-Coder 32B — 수치 미세 조정을 반복할 때 API 비용 없이 무제한 시도.
IDE 통합
- Cursor — 난이도 파라미터만 바꾸며 빠르게 반복. 코드 내 상수값 수정에 최적.
🎉 축하합니다! 시리즈 완료!
4개 레벨을 모두 마쳤습니다! 🎉🏆
여러분은 이제:
- ✅ AI로 게임을 만들 수 있고
- ✅ 게임필(파티클/사운드/셰이크)을 추가할 수 있고
- ✅ SDK를 연동해 리더보드/클립을 활성화할 수 있고
- ✅ 밸런싱과 난이도 설계를 할 수 있습니다
다음 단계
- 게임 제출하기 — 만든 게임을 3secgames.app에 등록
- AI Creation Hub — 다른 프롬프트 템플릿 사용해보기
- 개발자 포털 — 통계, 버전 관리, 뱃지 커스텀