
소울라이크 패링 판정 프레임 설계: 리스크-리턴 밸런싱 가이드
소울라이크 게임의 패링 판정 프레임을 설계하는 방법을 다룹니다. 입력 지연과 공격 타이밍을 분리하고 성공 보상·실패 위험·적 적응성을 수치로 균형 있게 조정합니다.
소울라이크의 패링은 단순히 짧은 성공 판정을 두는 기능이 아니다. 플레이어가 공격을 관찰하고 위험한 선택을 한 뒤 명확한 보상과 실패 비용을 받아들이게 만드는 전투 경제 시스템이다. 안정적인 설계는 입력 반응, 유효 판정 프레임, 피격 대상의 공격 단계, 성공 후 보상을 분리해 조정하는 데서 시작한다.
패링 판정 프레임은 무엇이며 왜 중요한가?
패링 판정 프레임은 패링 입력 이후 공격을 튕겨 낼 수 있는 시간 구간이다. 60 FPS 기준 1프레임은 약 16.67ms이므로 8프레임의 유효 판정은 약 133ms다. 하지만 플레이어가 체감하는 난도는 유효 판정 길이만으로 결정되지 않는다.
실제 체감 난도에는 다음 시간이 함께 작용한다.
| 구성 요소 | 의미 | 설계 영향 |
|---|---|---|
| 입력 지연 | 버튼 입력부터 패링 상태가 시작되기까지의 시간 | 길수록 예측형 반응을 요구한다 |
| 시작 프레임 | 패링 애니메이션 초반의 비유효 구간 | 시각적 동작과 판정의 일치를 좌우한다 |
| 활성 프레임 | 공격을 막을 수 있는 구간 | 직접적인 성공 난도를 결정한다 |
| 회복 프레임 | 실패 또는 성공 후 다음 행동까지의 구간 | 실패 비용과 반복 시도의 위험을 결정한다 |
| 적 공격의 접촉 시점 | 무기의 실제 타격 판정이 플레이어에게 닿는 시점 | 텔레그래프의 신뢰성과 함께 읽어야 한다 |
패링 시작 시점을 , 활성 구간을 , 적 공격의 접촉 시점을 라고 하면 성공 조건은 다음처럼 표현할 수 있다.
여기서 중요한 점은 a와 b가 독립된 숫자가 아니라는 사실이다. 시작 프레임이 길면 플레이어는 더 일찍 입력해야 하고 활성 프레임이 길어도 회복 프레임이 지나치게 길면 패링은 매력적인 선택지가 되기 어렵다.

소울라이크 패링 윈도우는 몇 프레임이 적절한가?
정답이 되는 단일 프레임 수는 없다. 게임의 입력 방식, 카메라 거리, 적 공격 속도, 애니메이션 가독성, 회피의 성능을 기준으로 초기값을 정해야 한다. 다만 프로토타입을 시작할 때는 다음 범위가 유용하다.
| 전투 의도 | 60 FPS 기준 활성 프레임 | 권장 특성 |
|---|---|---|
| 입문자 친화적 액션 | 10~14프레임 | 빠른 피드백, 낮은 실패 비용, 짧은 적 콤보 |
| 표준 소울라이크 | 6~10프레임 | 공격 관찰과 사전 예측을 요구 |
| 고난도 정밀 전투 | 3~6프레임 | 강한 텔레그래프와 큰 성공 보상이 필수 |
| 반사형 저스트 가드 | 1~3프레임 | 일반 가드와 확실히 구분되는 추가 보상 필요 |
60 FPS에서 8프레임은 약 133ms지만 프레임 드롭과 입력 장치 지연, 디스플레이 지연을 고려하면 플레이어가 느끼는 창은 더 짧아질 수 있다. 따라서 프레임 수만 보고 난도를 판단하면 안 된다. 특히 온라인 기능이 없는 싱글 플레이 게임이라도 렌더링 프레임과 전투 판정을 분리한 고정 틱에서 처리하는 편이 테스트 결과를 안정화한다.
활성 프레임보다 시작 프레임이 더 중요한 경우
패링 애니메이션이 방패를 들어 올리는 동작이라면 판정이 동작보다 지나치게 빠르면 성공해도 납득하기 어렵다. 반대로 무기가 이미 막는 위치에 도달한 뒤에만 판정이 시작되면 플레이어는 시각적 신호보다 더 일찍 눌러야 한다.
권장 방식은 다음과 같다.
- 애니메이션에서 방패 또는 무기가 방어 위치에 도달하는 프레임을 표시한다.
- 그 직전 또는 같은 프레임에 활성 판정을 시작한다.
- 성공 이펙트와 경직 시작을 접촉 프레임에 맞춰 재생한다.
이렇게 하면 판정이 엄격해도 실패 원인을 학습할 수 있다. 패링은 어려워도 괜찮지만 이유 없이 어렵게 느껴져서는 안 된다.
패링의 리스크와 리턴은 어떻게 수치화할까?
패링은 회피나 일반 가드보다 위험해야 하지만 평균적으로 더 가치 있는 선택이어야 한다. 이를 단순화하면 기대 가치는 성공 확률과 성공·실패 결과의 곱으로 볼 수 있다.
- : 해당 적과 상황에서 플레이어가 패링에 성공할 확률
- : 성공 보상. 자세 피해, 치명타 기회, 큰 경직, 스태미나 회복 등을 포함한다.
- : 실패 비용. 피해, 가드 브레이크, 긴 회복, 위치 손실 등을 포함한다.
예를 들어 숙련자가 60% 확률로 패링하고 성공 시 80점의 전투 이득을 얻으며 실패 시 50점의 손해를 본다면 다음과 같다.
같은 상황에서 회피의 기대 가치가 15점이라면 패링은 숙련 플레이에 의미 있는 선택지가 된다. 초보자의 성공 확률이 20%라면 패링의 기대 가치는 음수가 될 수 있다. 이것은 반드시 문제는 아니다. 대신 일반 가드, 후방 이동, 회피처럼 덜 위험한 대안을 충분히 제공해야 한다.
성공 보상은 피해량 하나로 끝내지 않는다
패링 보상을 치명타 피해로만 구성하면 특정 무기 빌드가 지나치게 강해지거나 보스전에서 패링을 허용하기 어려워질 수 있다. 보상을 여러 축으로 나누면 조정 폭이 넓어진다.
| 보상 축 | 예시 | 장점 | 주의점 |
|---|---|---|---|
| 즉시 피해 | 반격 피해 배율 1.5배 | 즉각적 쾌감이 크다 | 고공격력 빌드와 곱연산 주의 |
| 자세 피해 | 적 자세 게이지 35% 감소 | 보스에도 적용하기 쉽다 | 반복 패링의 누적 속도 제한 필요 |
| 행동권 | 0.8초 경직, 반격 확정 | 전투 흐름을 바꾼다 | 군중전에서 과도한 안전지대가 될 수 있다 |
| 자원 회복 | 스태미나 20 회복 | 방어적 빌드도 활용 가능 | 무한 방어 루프를 점검해야 한다 |
| 정보 보상 | 적 콤보 중단, 다음 패턴 노출 | 학습을 돕는다 | 시각·사운드 피드백이 명확해야 한다 |
가장 다루기 쉬운 초기 설계는 짧은 경직 + 자세 피해 + 제한된 반격 기회다. 이 조합은 보스에게 즉사급 피해를 강요하지 않으면서도 패링 성공의 손맛을 유지한다.
패링 실패 비용은 왜 회복 프레임으로 조절해야 하는가?
실패 피해만 키우면 패링은 공포스러운 도박이 되고 플레이어는 가장 안전한 회피만 반복한다. 반면 회복 프레임은 위험을 유지하면서도 상황별 대응 여지를 만들 수 있다.
예를 들어 실패 시 다음 세 가지 정책을 비교할 수 있다.
| 정책 | 실패 결과 | 플레이 경험 |
|---|---|---|
| 피해 중심 | 즉시 큰 피해, 짧은 회복 | 운 나쁜 한 번의 실수가 크게 느껴진다 |
| 경직 중심 | 중간 피해, 긴 회복 | 잘못된 타이밍이 후속 공격으로 이어진다 |
| 자원 중심 | 스태미나 손실, 짧은 회복 | 방어 선택을 다시 판단하게 만든다 |
보통 소울라이크 전투에서는 경직 중심 또는 자원 중심이 학습 친화적이다. 플레이어는 “너무 빨리 눌렀다”는 실수를 다음 공격에서 바로 수정할 수 있고 적 콤보에 대한 위치 선정과 스태미나 관리도 함께 배우게 된다.
다만 보스의 다단히트 공격에는 예외가 필요하다. 첫 타격에 패링을 실패한 뒤 회복 프레임 때문에 뒤의 모든 타격을 확정으로 맞는다면 실수 한 번이 지나치게 큰 처벌이 된다. 실패 후 짧은 피격 무적, 강제 넉백, 긴급 회피 취소 중 하나를 제한적으로 부여해 연속 피격을 막는 방안을 검토할 수 있다.
패링 판정을 어떻게 구현하고 검증할까?
패링은 애니메이션 이벤트만으로 처리하지 말고 전투 판정용 상태와 시간 정보를 별도로 가져가는 편이 안전하다. Unity C# 기준으로는 FixedUpdate() 또는 별도의 고정 전투 틱에서 패링 상태를 갱신하고 적 타격 이벤트가 그 상태를 조회하도록 구성할 수 있다.
public sealed class ParryState
{
public int StartTick { get; private set; } = -1;
public int ActiveStartTick { get; init; } = 4;
public int ActiveEndTick { get; init; } = 11;
public int RecoveryEndTick { get; init; } = 22;
public void Begin(int currentTick)
{
StartTick = currentTick;
}
public bool IsActive(int currentTick)
{
int elapsed = currentTick - StartTick;
return elapsed >= ActiveStartTick && elapsed <= ActiveEndTick;
}
public bool IsRecovering(int currentTick)
{
int elapsed = currentTick - StartTick;
return elapsed > ActiveEndTick && elapsed <= RecoveryEndTick;
}
}
구현 후에는 플레이 감각에만 의존하지 말고 로그를 남겨야 한다. 최소한 아래 데이터를 전투 단위로 수집하면 조정 방향을 판단할 수 있다.
parry_attempt_count: 패링 시도 횟수parry_success_count: 패링 성공 횟수parry_fail_damage: 실패 직후 받은 평균 피해parry_followup_damage: 실패 후 1초 내 추가 피해parry_reward_damage: 성공 후 반격으로 얻은 평균 피해fallback_action: 패링 실패 뒤 회피·가드·피격으로 이어진 비율
성공률만 보고 판정을 넓히는 것은 위험하다. 예를 들어 성공률이 낮아도 시도율이 높고 실패 후 재도전이 이어진다면 플레이어는 도전 자체를 재미있게 받아들이고 있을 수 있다. 반대로 성공률이 높지만 시도율이 낮다면 패링은 너무 강력하거나 적 패턴이 패링 가능하다는 사실을 전달하지 못하고 있을 수 있다.
적 공격 패턴에 패링 가능성을 어떻게 배치할까?
모든 공격을 패링할 수 있게 만들 필요는 없다. 오히려 공격군별 규칙을 명확히 나누는 편이 적을 읽는 재미와 무기 판타지를 강화한다.
| 공격 유형 | 패링 권장 여부 | 이유 |
|---|---|---|
| 단발 근접 베기 | 권장 | 타이밍 학습의 기본 단위가 된다 |
| 느린 강공격 | 조건부 권장 | 큰 보상과 위험을 연결하기 좋다 |
| 연속 콤보 | 일부 타격만 권장 | 무조건 패링 반복을 방지한다 |
| 잡기 | 비권장 또는 전용 대응 | 규칙을 명확히 구분해야 한다 |
| 광역 충격파 | 대체로 비권장 | 거리 조절과 회피의 역할을 남긴다 |
| 투사체 | 전용 패링 규칙 적용 | 반사·소멸 등 별도 보상 설계가 필요하다 |
패링 불가 공격은 시각적으로 명확히 구분해야 한다. 무기 색상 변화, 다른 예비 동작, 독특한 사운드 중 하나 이상을 일관되게 사용하자. 단, 같은 적이 패링 가능·불가능 공격을 너무 빠르게 섞으면 플레이어는 규칙을 읽기보다 운에 기대게 된다.
flowchart TD
A[적 공격 텔레그래프] --> B{공격 유형 확인}
B -->|패링 가능| C[입력 후 활성 프레임 검사]
B -->|패링 불가| D[가드·회피·거리 이탈]
C -->|접촉 시점이 활성 구간 안| E[적 경직·자세 피해·반격 기회]
C -->|활성 구간 밖| F[실패 회복·피해 또는 자원 손실]
패링 밸런싱 테스트를 위한 3단계 절차
1. 기준 행동을 먼저 고정한다
패링을 조정하기 전에 일반 가드와 회피의 성능을 정한다. 회피의 무적 프레임, 스태미나 비용, 이동 거리와 일반 가드의 피해 경감률이 변하면 패링의 상대적 가치도 바뀐다. 세 행동을 동시에 조정하면 원인을 찾기 어렵다.
2. 한 번에 하나의 변수만 바꾼다
초기 세트는 시작 4프레임, 활성 8프레임, 회복 12프레임, 성공 경직 48프레임처럼 명시적으로 기록한다. 이후에는 활성 프레임을 2프레임 조정하거나 회복 프레임을 3프레임 조정하는 식으로 한 변수만 변경해 전투 로그를 비교한다.
3. 숙련도별 플레이 테스트를 분리한다
내부 개발자 테스트만으로는 패링이 지나치게 좁은지 알기 어렵다. 처음 보는 플레이어, 기본 전투를 익힌 플레이어, 의도적으로 최적화를 시도하는 숙련 플레이어를 나누어 관찰한다. 각 집단에서 시도율·성공률·실패 후 사망률·패링 이후 반격 전환율을 비교해야 한다.
자주 묻는 질문 (FAQ)
패링 활성 프레임을 늘리면 전투가 쉬워지기만 하나요?
아니다. 활성 프레임을 늘리면 성공률은 오르지만 회복 프레임과 보상을 함께 조정하지 않으면 회피와 일반 가드가 불필요해질 수 있다. 특히 적 콤보의 여러 타격을 한 번의 패링으로 막을 수 있는지 확인해야 한다.
패링 성공 시 반드시 치명타를 제공해야 하나요?
그럴 필요는 없다. 자세 피해, 짧은 경직, 스태미나 회복, 안전한 거리 확보도 충분한 보상이 될 수 있다. 보스전에서는 자세 피해와 반격 기회가 피해량 고정보다 조정하기 쉽다.
30 FPS와 60 FPS에서 패링 판정은 어떻게 맞추나요?
렌더링 프레임 수가 아니라 고정 시간 단위 또는 고정 전투 틱으로 판정하자. 예를 들어 60Hz 전투 틱의 8틱을 유지하면 렌더링 FPS가 변해도 약 133ms라는 의도된 시간 창을 보존할 수 있다.
정리
좋은 패링은 짧은 창 자체가 아니라 읽을 수 있는 텔레그래프와 납득 가능한 실패 비용, 전투 흐름을 바꾸는 성공 보상이 함께 만드는 선택지다.
먼저 일반 가드와 회피의 기준 성능을 고정하고 활성 프레임·회복 프레임·성공 보상을 분리해 측정하자. 그렇게 하면 패링은 반사 신경 시험이 아니라 적의 패턴을 이해한 플레이어에게 유리한 고위험 고보상 시스템이 된다.


