개인 강의/Unreal Engine 멀티플레이어 게임 개발

Unreal Engine 멀티플레이어 게임 개발 1-3

jh009 2026. 7. 28. 20:00

1-3. 실습 환경 설정

비쥬얼 스튜디오 단축키 Ctrl + T > 코드 서치

 

실습 환경 설정

설정 후 PIE

 

PIE 후에 플레이 종료하면 뜨는 에러 메세지

 

기존 로직의 문제점

  • 굳이 내 UI를 다른 사람이 볼 필요는 없음. (GTA 플레이 중, 내가 죽었는데 다른 사람 화면에 wasted가 뜨는 것과 같음)
  • 위젯 객체는 Owning Client에서만 생성되면 됨. 
  • Owning Client를 판별하기 위해서 IsLocalController() 함수를 호출.
  • IsLocalController() 함수에 대해서는 뒤에서 배울 예정.
// CXPlayerController.cpp


...

void ACXPlayerController::BeginPlay()
{
	Super::BeginPlay();

	if (IsLocalController() == false)
	{
		return;
	}

	...
}

...

 

채팅을 쳤는데 다른 클라이언트에서도 보이는 이유

분명 우리는 아직 채팅 메세지의 멀티플레이 설정을 하나도 건들지 않음.
이는 Run Under One Process 속성 때문.
하나의 언리얼 엔진 프로세스 위에서 모든 로직이 돌다 보니, PrintString()도 모든 화면에서 뜸.

 

좀 더 실제적인 멀티플레이 환경을 실습해 보려면, Run Under One Process 속성을 false로 지정.


데디케이티드 서버 환경 설정

Toolbar > Edit > Editor Preferences에서 아래 옵션들을 체크

 

1. Allow Late Joining 체크 하면 Add another cliner 버튼으로 클라이언트 추가 가능

 

체크 전·후


2. Always on top 체크하면 새 클라이언트 화면이 항상 위에 뜸.


3. Multiplayer Options에서 추가적인 설정 가능함.

 

Launch Seperate Server 체크

  • 체크 시 서버 따로 띄워줌.
  • 안 하면 에디터 화면이 클라이언트이자 서버임.

Run Under One Process 체크 해제

  • 체크하면 같은 프로세스 내라서 공유하는 에셋이 생김.
  • 따라서 확실한 멀티플레이 환경이라고 보기엔 무리.
  • 다만 성능상의 이점이 있음.
    체크하지 않으면 서버와 각 클라이언트들이 다른 프로세스로 분기.
  • 추후에 멀티플레이 디버깅 시 체크하고 로깅을 찍어볼 수 있음.

Net ModePlay as Client로 설정

 

플레이 버튼 우측에 점 세개 기호 클릭 > Number of Players2를 설정