secgames.app
← AI로 만들기
Level 3

밸런싱과 난이도 설계

Balancing and Difficulty Design

예상 시간: ~60

🎯 목표

게임이 적당히 어렵고 공정하게 느껴지도록 난이도 커브와 점수 밸런스를 조정합니다. 이 튜토리얼을 끝내면 뱃지 시스템까지 설정한 완성도 높은 게임이 됩니다.


📋 준비물

  • Level 0~2에서 완성한 게임
  • 스프레드시트 또는 메모장 (점수 기록용)
  • 가능하면 테스터 2~3명 (가족, 친구)

단계별 가이드

Step 1. 현재 난이도 측정하기

먼저 현재 게임이 얼마나 어려운지 숫자로 파악합니다:

  1. 직접 10번 플레이하면서 점수를 기록합니다
  2. 아래 표를 채우세요:

| 회차 | 점수 | 사망 원인 | |------|------|-----------| | 1 | | | | 2 | | | | ... | | | | 10 | | |

  1. 계산합니다:
    • 평균 점수: 전체 합 / 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명에게 테스트를 부탁하세요:

관찰 포인트:

  1. 첫 플레이에서 3초 이상 생존하는가?
  2. 10초 이상 생존하려면 몇 번 시도가 필요한가?
  3. "한 번만 더" 하고 싶다는 느낌이 드는가?
  4. 어디서 게임오버 됐을 때 가장 짜증나는가? (= 불공정하다고 느끼는 지점)

안 좋은 신호:

  • 첫 플레이에서 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를 연동해 리더보드/클립을 활성화할 수 있고
  • ✅ 밸런싱과 난이도 설계를 할 수 있습니다

다음 단계