1. [Unreal Engine] Multiplayer Replication & Actor Lifecycle
핵심 요약: 멀티플레이어 환경에서 액터의 생성 및 동기화 메커니즘 이해.
- Network Role 이해:
- Role == ROLE_Authority (서버)와 Role == ROLE_SimulatedProxy (클라이언트)의 차이를 명확히 하고, 중요한 로직(데미지 판정, 아이템 획득)은 반드시 서버에서 처리해야 함을 복습.
- Property Replication:
- UPROPERTY(Replicated)와 GetLifetimeReplicatedProps를 사용하여 변수 값을 동기화할 때, 네트워크 대역폭 최적화를 위해 꼭 필요한 데이터만 복제하는 습관을 기르는 중.
- Validation & Safety:
- 언리얼 코딩 표준에 따라 if(IsValid(Ptr))와 Cast<T> 사용 시 방어적 코딩을 적용. 특히 멀티플레이어에서는 포인터가 유효하지 않은 시점이 존재할 수 있으므로 check()보다는 ensure()나 if문을 활용한 예외 처리가 중요함을 학습.
2. [C++] 언리얼 스타일 코딩 표준 (Naming Convention)
핵심 요약: 넷마블 등 대형 개발사가 요구하는 유지보수 가능한 코드 작성법 숙달.
- Prefix 규칙 준수:
- A (Actor), U (Object), F (Struct), E (Enum), b (Boolean) 접두사 사용 생활화.
- PascalCase를 사용한 멤버 변수 선언으로 코드 가독성 확보.
- Performance Optimization:
- Tick() 함수 대신 GetWorldTimerManager().SetTimer()를 사용하여 불필요한 연산 낭비 줄이기.
- TArray와 std::vector의 차이점을 이해하고, 언리얼의 가비지 컬렉션(GC) 시스템과 호환되는 TArray를 우선적으로 사용.
💡 오늘의 인사이트
"멀티플레이어 게임(Cop and Robber) 개발에서 가장 중요한 것은 **'서버는 절대 클라이언트를 믿지 않는다'**는 원칙이다. 모든 클라이언트 요청은 서버에서 검증되어야 하며, 이를 위해 UFUNCTION(Server, Reliable, WithValidation)의 활용법을 더 깊게 파고들 필요가 있다."
'언리얼엔진5 공부' 카테고리의 다른 글
| TIL: 언리얼 엔진 5 C++ 기반 막기 & 패링 시스템 구현 (0) | 2026.01.21 |
|---|---|
| FORCEINLINE (0) | 2026.01.08 |
| [TIL] Unreal Engine 5: TMap과 TimerManager를 이용한 확장형 쿨타임 시스템 (0) | 2025.12.30 |
| TIL: Unreal Engine 5 멀티플레이어 UI 데이터 동기화 및 C++ 위젯 바인딩 (0) | 2025.12.29 |
| [TIL] 언리얼 엔진 5 UI 설계 - 상속 vs 인터페이스 (0) | 2025.12.26 |