

Unreal Engine 멀티플레이어 게임 개발 3-1,2,3,4
1. WHAT
- 레플리케이션(Replication)
👉 생성된 액터의 정보를 네트워크 내 다른 클라이언트에게 복제하는 작업
서버-클라이언트 모델에서는 서버에서 클라이언트로 복제되는 것이 기본 규칙이다.
레플리케이션 방법 : RPC(Remote Procedure Call), Property Replication

- Property Replication
액터의 모든 속성의 변경된 값을 모든 클라이언트에게 복제하는 것은 비효율적
👉 우리가 원하는 속성만을 다른 클라이언트에게 복제하는 것
- 프로퍼티 레플리케이션 설정 방법
1️⃣ 액터의 bReplicates 속성을 true로 설정
2️⃣ 네트워크로 복제할 액터의 속성을 키워드로 지정
- UPROPERTY()에 Replicated 키워드 추가
3️⃣ GetLifetimeReplicatedProps() 함수에 네트워크로 복제할 속성을 추가
- #include “Net/UnrealNetwork.h” 헤더파일 추가
- DOREPLIFETIME 매크로를 사용해 복제할 속성을 명시
2. HOW
#pragma once
#include "CoreMinimal.h"
#include "GameFramework/PlayerState.h"
#include "CXPlayerState.generated.h"
UCLASS()
class CHATX_API ACXPlayerState : public APlayerState
{
GENERATED_BODY()
public:
ACXPlayerState();
virtual void GetLifetimeReplicatedProps(TArray<FLifetimeProperty>& OutLifetimeProps) const override;
public:
UPROPERTY(Replicated) // 2. 네트워크로 복제할 액터의 속성을 키워드로 지정
FString PlayerNameString;
};
#include "CXPlayerState.h"
#include "Net/UnrealNetwork.h" // 헤더 추가
ACXPlayerState::ACXPlayerState()
{
// 1. 액터의 bReplicates 속성을 true로 설정
bReplicates = true;
}
void ACXPlayerState::GetLifetimeReplicatedProps(TArray<FLifetimeProperty>& OutLifetimeProps) const
{
// 3. GetLifetimeReplicatedProps() 함수에 네트워크로 복제할 속성을 추가
Super::GetLifetimeReplicatedProps(OutLifetimeProps);
DOREPLIFETIME(ThisClass, PlayerNameString);
}
플레이어 상태 관리 > Player State
FString PlayerNameString, int32 CurrentGuessCount, int32 MaxGuessCount
플레이어 상태 변경, 승패 판정 > Game Mode (서버에서 관리)
3. NEXT
CurrentGuessCount 업데이트 시점 수정하기 (출력 전으로)
MaxGuessCount 이상이면 추측 막기
'내배캠Unreal_TIL > UE' 카테고리의 다른 글
| [TIL] 2026-03-16 | 멀티플레이 디버그 로깅과 이벤트 함수 (0) | 2026.03.16 |
|---|---|
| [TIL] 2026-03-13 | 게임 플레이 프레임워크 (2) | 2026.03.13 |
| [TIL] 2026-03-11 | 반투명 머티리얼 만들기 (0) | 2026.03.11 |
| [TIL] 2026-03-11 | 멀티플레이 채팅 구현 (0) | 2026.03.11 |
| [TIL] 2026-03-10 | Remote Procedure Call 기초 (2) | 2026.03.10 |