Unreal Engine GAS(Gameplay Ability System) 심화LESSON 46
최종 실습 4: 2인 멀티플레이 전투 데모 검증
난이도심화
예상 시간300분
선수지식45강의 버프와 상태 이상
46강. 최종 실습 4: 2인 멀티플레이 전투 데모 검증
1. 이번 강의에서 해결할 문제
싱글 PIE에서 작동하는 GAS 기능은 멀티플레이 완료 증거가 아닙니다. 최종 실습은 서버 권한, 소유자 예측, 다른 클라이언트 관찰, 지연·손실 보정, 사망·부활을 하나의 테스트 가능한 2인 전투 흐름으로 묶습니다.
2. 학습 목표
3. 핵심 개념
최종 데모의 네트워크 흐름은 입력 → 로컬 예측 Ability → 서버 활성화 검증 → TargetData 검증 → Effect/Execution → Attribute·Tag 복제 → Cue·UI 표현입니다. 어떤 화면에서 보였다는 사실보다 서버 값, Prediction Key, SpecHandle, 대상과 최종 Attribute가 일치한다는 증거가 중요합니다.
4. 구현
최종 클래스·데이터 구조
Source/GASDemo/
├─ AbilitySystem/
│ ├─ GASAbilitySystemComponent
│ ├─ GASAttributeSet
│ ├─ GASAbilitySet (PrimaryDataAsset)
│ ├─ Abilities/
│ │ ├─ GA_BasicAttack
│ │ ├─ GA_Dash
│ │ ├─ GA_FireProjectile
│ │ └─ GA_Heal
│ ├─ Effects/
│ │ ├─ GE_InitializeAttributes
│ │ ├─ GE_Damage / GE_Heal / GE_Cooldown
│ │ ├─ GE_Buff_Attack / GE_Debuff_Slow
│ │ ├─ GE_Debuff_Stun / GE_State_Invulnerable
│ │ └─ ExecCalc_Damage
│ └─ Cues/GC_Hit, GC_Buff, GC_Slow, GC_Stun, GC_Invulnerable
├─ Characters/GASCombatCharacter, GASCombatComponent
├─ Player/GASPlayerState, GASPlayerController
├─ Projectiles/GASProjectile
└─ UI/GASCombatHUD, GASStatusPresenter
Content/GAS/
├─ AbilitySets/DA_DefaultCombatSet
├─ Effects/*
├─ Abilities/*
└─ Cues/*
| 단계 | 서버 | 소유 클라이언트 | 다른 클라이언트 |
|---|---|---|---|
| 공격 입력 | 활성화·Cost·Target 검증 | 입력 즉시 Montage/Cue 예측 | 아직 확정 상태만 대기 |
| 명중 | Trace/투사체와 Damage 확정 | 승인 또는 거절 보정 | 확정 Cue와 Attribute 관찰 |
| 상태 효과 | Stack·Duration·면역 판정 | 자신의 상세 UI 관찰 | 공개 Tag/Cue/Attribute 관찰 |
| 사망·부활 | 취소·제거·새 Pawn 연결 | 입력 잠금과 UI 재결선 | 사망/부활 상태 관찰 |
PIE는 플레이어 2명, Listen Server, 별도 창으로 구성합니다. 각 창 로그에 [Server], [Client1] 같은 실행 구분, Avatar, NetRole, PredictionKey를 남깁니다. Character 이동 복제의 기반은 멀티플레이 이동 복제 강의에서 확인합니다.
5. 코드가 동작하는 이유
클래스와 데이터 구조가 권한 판정, 상태 저장, 표현, UI를 분리하므로 각 테스트 실패를 한 계층으로 좁힐 수 있습니다. Listen Server 호스트도 플레이어와 서버 역할을 함께 수행하므로 IsLocallyControlled만으로 Authority를 추론하지 않습니다.
6. 실패 사례와 해결
7. 직접 실습
8. 이해 점검 질문 3개
9. 핵심 요약
MINI QUIZ
0 / 2최종 실습 4: 2인 멀티플레이 전투 데모 검증 미니 퀴즈
선택 즉시 정답과 해설을 확인할 수 있습니다. 결과는 이 브라우저에만 저장됩니다.
LESSON STATUS
46강. 최종 실습 4: 2인 멀티플레이 전투 데모 검증 미완료 상태학습을 마쳤나요?
직접 실습과 점검 질문까지 확인한 뒤 완료로 표시하세요.