본문으로 건너뛰기
Unreal Engine GAS(Gameplay Ability System) 심화LESSON 34

GAS 네트워크 예측과 Prediction Key 이해하기

난이도심화
예상 시간210분
선수지식33강의 상태와 표현 경계

34강. GAS 네트워크 예측과 Prediction Key 이해하기

1. 이번 강의에서 해결할 문제​

왕복 지연을 기다린 뒤 공격 애니메이션을 시작하면 조작이 둔합니다. 반대로 클라이언트 결과를 확정하면 치팅과 불일치가 생깁니다. GAS 예측은 같은 활성화 시도를 클라이언트와 서버에서 연결해 임시 변화를 승인하거나 되돌리는 절충입니다.

2. 학습 목표​

3. 핵심 개념​

Local Predicted Ability는 소유 클라이언트가 즉시 시작하고 활성화 요청을 서버로 보냅니다. Prediction Key는 이 시도에 딸린 예측 Effect·Tag·Cue를 서버 승인 또는 거절과 연관 짓습니다. 키는 보안 토큰이 아니며, 서버는 Cost·Cooldown·Tag·Target을 다시 검사합니다. 모든 엔진 동작이 자동 예측되는 것도 아닙니다.

4. 구현​

GA_PredictedDash.cpp
void UGA_PredictedDash::ActivateAbility(
const FGameplayAbilitySpecHandle Handle,
const FGameplayAbilityActorInfo* ActorInfo,
const FGameplayAbilityActivationInfo ActivationInfo,
const FGameplayEventData* TriggerEventData)
{
if (!CommitAbility(Handle, ActorInfo, ActivationInfo))
{
EndAbility(Handle, ActorInfo, ActivationInfo, true, true);
return;
}

UE_LOG(LogGASCourse, Log,
TEXT("Dash Spec=%s PredKey=%s Local=%d Authority=%d"),
*Handle.ToString(),
*ActivationInfo.GetActivationPredictionKey().ToString(),
ActorInfo->IsLocallyControlled(), ActorInfo->IsNetAuthority());

StartPredictedDashPresentation();
}

클라이언트가 예측할 수 있는 것은 자신의 입력 피드백, 예측 허용 Effect, Cue 같은 제한된 결과입니다. 실제 충돌 데미지, 점수, 아이템 지급은 서버 확정 뒤 상태로 전파합니다. GAS가 내부적으로 여는 예측 범위를 임의 RPC로 우회하지 말고 Ability 활성화 흐름 안에 둡니다.

5. 코드가 동작하는 이유​

소유 클라이언트와 서버가 동일한 활성화 시도를 식별하므로 서버 승인은 중복 적용을 조정하고 거절은 예측 변화를 제거할 수 있습니다. 다른 클라이언트는 소유자의 예측을 실행하지 않고 서버가 확정한 복제 결과를 봅니다. Ownership과 Server RPC 기반은 멀티플레이 Ownership 강의에서 복습할 수 있습니다.

6. 실패 사례와 해결​

7. 직접 실습​

8. 이해 점검 질문 3개​

9. 핵심 요약​

MINI QUIZ

GAS 네트워크 예측과 Prediction Key 이해하기 미니 퀴즈

선택 즉시 정답과 해설을 확인할 수 있습니다. 결과는 이 브라우저에만 저장됩니다.

0 / 2
  1. 문제 1“GAS 네트워크 예측과 Prediction Key 이해하기” 실습 결과를 해석하는 올바른 기준은 무엇인가요?
  2. 문제 2“GAS 네트워크 예측과 Prediction Key 이해하기”의 작업 기준으로 ‘점수와 보상을 로컬 예측으로 확정’을 진단하거나 바로잡은 선택은 무엇인가요?
LESSON STATUS

학습을 마쳤나요?

직접 실습과 점검 질문까지 확인한 뒤 완료로 표시하세요.

34강. GAS 네트워크 예측과 Prediction Key 이해하기 미완료 상태