포션 사용 설계: 쿨타임과 충전식 시스템은 무엇이 다른가
포션과 소모 아이템의 사용 제한을 쿨타임과 충전식 시스템으로 나누어 비교한다. 전투 리듬, 난이도 조절, UI, 구현 방식에 따라 어떤 선택이 적합한지 정리한다.

같은 제한처럼 보여도 플레이 경험은 다르다
포션 사용을 제한하는 목적은 대개 분명하다. 위기에서 회복 수단을 무한히 반복하지 못하게 하고 피해를 피하거나 회복 타이밍을 판단하게 만드는 것이다. 다만 일정 시간 뒤 다시 사용할 수 있는 쿨타임과 여러 번 쓸 수 있지만 충전량을 회복해야 하는 충전식 시스템은 플레이어에게 전혀 다른 판단을 요구한다.
쿨타임은 한 번의 사용 뒤 다음 기회를 기다리게 한다. 반면 충전식 시스템은 남은 횟수를 자원처럼 관리하게 한다. 따라서 둘 중 무엇이 더 좋은지가 아니라 게임이 만들고 싶은 긴장과 전투 리듬에 무엇이 맞는지가 중요하다.
flowchart TD
A[회복 아이템 사용 제한이 필요한가?] --> B{전투 중 반복 타이밍을
중요하게 만드는가?}
B -->|예| C[쿨타임 우선 검토]
B -->|아니오| D{장기 탐험과 자원 관리가
핵심인가?}
D -->|예| E[충전식 시스템 우선 검토]
D -->|아니오| F[혼합형 또는 다른 제한 방식 검토]
C --> G[즉시 회복과 위험 회피의
순환을 설계]
E --> H[휴식·드롭·거점으로
충전 회복 설계]
쿨타임: 전투 리듬을 설계하는 도구
쿨타임 방식에서는 포션을 쓴 뒤 다음 사용 가능 시점이 명확하다. 플레이어는 체력이 낮을 때 즉시 포션을 마시는 것만으로는 살아남기 어렵고 쿨타임 동안 들어오는 피해를 피하거나 방어해야 한다.
잘 맞는 게임
- 액션성이 강하고 회피, 가드, 위치 선정이 생존에 큰 영향을 주는 게임
- 짧은 전투를 여러 번 반복하는 구조
- 전투 중 회복 수단을 계속 제공하되 남용만 막고 싶은 게임
대표적인 장점은 실패 원인을 읽기 쉽다는 점이다. 플레이어는 “회복을 너무 일찍 썼다” 또는 “쿨타임 동안 공격을 피하지 못했다”고 판단할 수 있다. 재도전이 빠른 게임에서는 이 명확성이 특히 유리하다.
다만 쿨타임이 길기만 하면 선택이 생기지 않는다. 포션을 쓰는 순간이 사실상 정답으로 고정되고 이후에는 기다리는 시간만 남을 수 있다. 회복량, 무적 여부, 사용 동작의 빈틈, 적의 공격 압박을 함께 조정해야 한다.

구현 예시
아래는 엔진과 무관하게 적용할 수 있는 간단한 의사 코드다. 핵심은 아이템 사용 가능 여부와 다음 사용 가능 시각을 한곳에서 관리하는 것이다.
class CooldownPotion {
private nextUseTime = 0;
constructor(
private readonly cooldownSeconds: number,
private readonly healAmount: number,
) {}
use(player: Player, now: number): boolean {
if (now < this.nextUseTime) return false;
if (player.health >= player.maxHealth) return false;
player.heal(this.healAmount);
this.nextUseTime = now + this.cooldownSeconds;
return true;
}
remainingCooldown(now: number): number {
return Math.max(0, this.nextUseTime - now);
}
}
UI에는 남은 시간을 숫자 또는 원형 게이지로 보여 주는 편이 좋다. 사용 불가 상태의 아이콘을 흐리게만 처리하면 이유를 알아채기 어려우므로 남은 시간이나 짧은 피드백을 함께 제공하는 것이 안전하다.
충전식: 탐험과 장기 계획을 설계하는 도구
충전식 시스템은 포션에 최대 사용 횟수를 부여하고 휴식 지점이나 적 처치, 아이템 드롭 등으로 충전량을 회복시킨다. 전투 한 번의 타이밍보다 다음 거점까지 남은 자원을 어떻게 배분할지가 핵심 판단이 된다.
잘 맞는 게임
- 던전 탐험, 로그라이크, 생존처럼 장기적인 자원 관리가 중요한 게임
- 전투와 전투 사이의 선택이 중요한 구조
- 휴식 지점, 상점, 보상 방을 게임 루프의 중요한 요소로 삼는 게임
충전식은 플레이어가 위험을 계산하게 만든다. 체력이 조금 줄었을 때 한 충전을 쓸지, 다음 전투를 위해 아낄지, 안전한 거점으로 돌아갈지를 고민하게 된다. 대신 충전 회복 규칙이 불투명하면 운이 나쁘거나 불공정하다는 인상을 줄 수 있다.
충전량의 변화를 단순화하면 다음처럼 표현할 수 있다.
여기서 (C_{max})는 최대 충전량, (C_{current})는 현재 충전량, (U)는 이번 구간의 사용 횟수, (R)은 휴식이나 보상으로 회복한 충전량이다. 실제 설계에서는 평균값보다도 플레이어가 (R)을 예측할 수 있는지가 더 중요하다.
구현 예시
class ChargePotion {
constructor(
private charges: number,
private readonly maxCharges: number,
private readonly healAmount: number,
) {}
use(player: Player): boolean {
if (this.charges <= 0) return false;
if (player.health >= player.maxHealth) return false;
this.charges -= 1;
player.heal(this.healAmount);
return true;
}
restore(amount: number): void {
this.charges = Math.min(this.maxCharges, this.charges + amount);
}
get currentCharges(): number {
return this.charges;
}
}
충전식 UI는 2/5처럼 현재값과 최대값을 함께 보여 주는 방식이 가장 직관적이다. 충전이 회복되는 장소와 조건은 지도, 아이콘, 짧은 안내 문구를 통해 미리 알리는 편이 좋다.
비교: 무엇을 제한하는가
| 관점 | 쿨타임 | 충전식 |
|---|---|---|
| 주된 판단 | 지금 써도 되는가 | 지금 한 번을 써도 되는가 |
| 긴장의 단위 | 전투 중 수 초 | 여러 전투와 탐험 구간 |
| 실패의 원인 | 타이밍과 회피 실패 | 자원 배분과 경로 선택 실패 |
| UI 핵심 정보 | 남은 시간 | 현재 충전량과 회복 조건 |
| 잘 어울리는 루프 | 빠른 교전과 반복 전투 | 탐험, 휴식, 보상, 위험 관리 |
이 표는 방향을 잡기 위한 기준일 뿐이다. 보스전처럼 전투 자체가 길고 단계가 뚜렷한 게임에서는 충전식 포션도 타이밍 게임이 될 수 있다. 반대로 쿨타임 포션에 전투 밖 회복 제한을 더하면 장기 자원 관리도 만들 수 있다.
혼합형 시스템은 언제 유효한가
두 방식을 결합하면 제어할 수 있는 변수가 늘어난다. 예를 들어 포션을 최대 3회 충전하고 각 사용 사이에 8초의 짧은 쿨타임을 둘 수 있다. 이 방식은 한 번의 전투에서 연속 회복을 막으면서도 전체 탐험 구간에서 회복량을 제한한다.
하지만 혼합형은 규칙을 늘리는 만큼 설명 비용도 높다. 플레이어가 “왜 지금 못 쓰는지”를 즉시 이해하지 못하면 시스템은 깊이가 아니라 불편함이 된다. 다음 두 질문에 모두 답할 수 있을 때만 도입하는 편이 좋다.
- 충전량이 필요한 이유는 무엇인가?
- 쿨타임이 추가로 해결하는 문제는 무엇인가?
둘 중 하나에 답하기 어렵다면 먼저 단일 방식으로 프로토타입을 만드는 편이 낫다.
밸런싱은 평균 회복량보다 위기 구간에서 검증한다
포션 밸런싱은 평균 DPS나 평균 피해량만으로 결정하기 어렵다. 플레이어가 실제로 탈락하는 순간은 보통 적 공격이 겹치거나 회복 동작 중 빈틈이 생기거나 거점 직전에서 자원이 바닥나는 위기 구간이다.
테스트할 때는 다음 장면을 의도적으로 재현해 보자.
- 체력이 20%인 상태에서 강한 적의 연속 공격을 맞는 상황
- 포션 사용 직후 다시 피해를 받는 상황
- 보스전 마지막 구간에서 회복 수단이 모두 소진된 상황
- 충전 회복 직전에 포션을 쓸지 말지 고민하게 되는 상황
관찰할 것은 승률만이 아니다. 플레이어가 실패 뒤에 다음 행동을 이해하는지 회복 아이템을 눌렀을 때 막힌 이유를 알 수 있는지 안전하게 버티는 전략만 반복되지 않는지를 함께 확인해야 한다.
결론: 게임의 시간 단위에 맞춰 고른다
쿨타임은 초 단위의 전투 리듬을 다듬는 데 강하다. 충전식은 방과 방 사이, 전투와 전투 사이의 긴장을 설계하는 데 강하다. 액션의 순간 판단을 중심에 두고 싶다면 쿨타임부터, 탐험의 경로와 자원 배분을 중심에 두고 싶다면 충전식부터 검토하면 된다.
가장 좋은 출발점은 두 시스템을 모두 복잡하게 구현하는 일이 아니다. 같은 회복량을 기준으로 쿨타임 버전과 충전식 버전을 빠르게 만들어 플레이 테스트에서 플레이어가 어떤 순간에 멈춰 고민하는지 비교하는 것이다. 그 순간이 게임이 의도한 재미와 맞아떨어진다면 선택한 제한 방식은 이미 제 역할을 하고 있다.



