ASC 복제 모드와 네트워크 성능 설계
37강. ASC 복제 모드와 네트워크 성능 설계
1. 이번 강의에서 해결할 문제
ASC가 가진 모든 활성 Effect 세부를 모든 클라이언트에 보내면 플레이어와 효과 수가 늘 때 대역폭과 처리 비용이 커집니다. 반대로 너무 적게 보내면 소유자의 Cooldown UI나 다른 플레이어의 상태 표현이 사라집니다. 복제 모드는 게임의 관찰 요구와 소유 관계를 함께 보고 골라야 합니다.
2. 학습 목표
3. 핵심 개념
Full은 활성 Gameplay Effect 정보를 넓게 복제하고, Mixed는 소유 클라이언트에는 Effect를 보내되 다른 관찰자에는 주로 Tag와 Cue를 전달하는 선택이며, Minimal은 AI처럼 Effect 상세가 불필요한 클라이언트 복제를 줄이는 데 사용됩니다. 정확한 동작은 현재 UE5 버전의 EGameplayEffectReplicationMode 문서를 확인합니다. 모드는 Attribute 자체의 복제 설정이나 Ability Spec 복제와 같은 의미가 아닙니다.
4. 구현
AGASPlayerState::AGASPlayerState()
{
AbilitySystemComponent = CreateDefaultSubobject<UGASAbilitySystemComponent>(
TEXT("AbilitySystemComponent"));
AbilitySystemComponent->SetIsReplicated(true);
AbilitySystemComponent->SetReplicationMode(
EGameplayEffectReplicationMode::Mixed);
NetUpdateFrequency = 30.0f;
}
Mixed 모드에서 PlayerState가 OwnerActor라면 PlayerController와의 소유 연결이 올바른지 확인합니다. 다른 플레이어의 체력 바가 필요하면 체력 Attribute를 명시적으로 복제하고, 모든 버프의 내부 Spec을 보내는 대신 필요한 상태 Tag나 집계된 UI 모델을 제공합니다. 네트워크 빈도는 측정 없이 무조건 올리지 않습니다.
5. 코드가 동작하는 이유
소유자는 자신의 Cost·Cooldown 등 상세를 받아 UI와 예측을 조정하고, 다른 관찰자는 판정에 필요한 최소 상태와 표현을 받습니다. 데이터 소비 목적을 나누면 플레이어 수와 Effect 수가 늘어날 때 불필요한 상세 복제를 줄일 수 있습니다.
6. 실패 사례와 해결
7. 직접 실습
8. 이해 점검 질문 3개
9. 핵심 요약
ASC 복제 모드와 네트워크 성능 설계 미니 퀴즈
선택 즉시 정답과 해설을 확인할 수 있습니다. 결과는 이 브라우저에만 저장됩니다.
학습을 마쳤나요?
직접 실습과 점검 질문까지 확인한 뒤 완료로 표시하세요.