[UE5] 언리얼 데디케이트 서버 개요

eomcri·2025년 3월 11일

이 글은 언리얼 엔진에서 데디케이트 서버에 대해 정리한 내용을 다루고 있습니다.
언리얼 엔진에서 데디케이트 서버(Dedicated Server) 는 게임의 멀티플레이 환경을 지원하기 위해 별도로 실행되는 서버 애플리케이션입니다. 이는 클라이언트가 아닌 서버 역할만 수행하며, 게임의 로직을 처리하고 클라이언트 간의 동기화를 담당합니다.

언리얼 엔진에서 데디케이트 서버(Dedicated Server) 는 게임의 멀티플레이 환경을 지원하기 위해 별도로 실행되는 서버 애플리케이션입니다. 이는 클라이언트가 아닌 서버 역할만 수행하며, 게임의 로직을 처리하고 클라이언트 간의 동기화를 담당합니다.

1. 데디케이트 서버의 특징

  • 렌더링이 없음 → 그래픽 처리가 필요하지 않으므로 성능 최적화가 가능
  • 서버 권한 우선 처리 → 클라이언트보다 높은 신뢰성을 보장
  • 멀티플레이어 지원 → 여러 클라이언트가 접속하여 게임을 진행할 수 있도록 관리
  • 확장 가능 → 클라우드 서버(AWS, Google Cloud, Azure) 또는 자체 서버에 배포 가능

2. 데디케이트 서버 설정 방법

프로젝트 설정

  1. Project SettingsPackaging에서 Include Server Target 활성화
  2. Maps & ModesServer Default Map 설정

서버 타겟 파일 생성

Source/프로젝트명/ 경로에 프로젝트명Server.Target.cs 추가:

using UnrealBuildTool;
using System.Collections.Generic;

public class MyGameServerTarget : TargetRules
{
    public MyGameServerTarget(TargetInfo Target) : base(Target)
    {
        Type = TargetType.Server;
        DefaultBuildSettings = BuildSettingsVersion.V2;
        ExtraModuleNames.Add("MyGame");
    }
}

서버 빌드

명령어를 사용하여 데디케이트 서버 빌드:

UnrealBuildTool.exe MyGameServer Win64 Development -Project="경로/MyGame.uproject" -WaitMutex -NoHotReloadFromIDE

서버 실행

MyGameServer.exe -log

3. 클라이언트에서 서버 접속

클라이언트에서 명령어를 입력하여 서버에 접속할 수 있음:

open <서버 IP>:<포트>

또는 블루프린트/코드에서 UGameplayStatics::OpenLevel 사용:

UGameplayStatics::OpenLevel(GetWorld(), TEXT("192.168.1.100:7777"));

4. 추가 고려 사항

  • 서버 최적화: 불필요한 애니메이션/오디오 처리 제거
  • 네트워크 보안: 방화벽, DDoS 방어, 인증 시스템 적용
  • 서버 확장성: 여러 개의 서버를 실행하여 로드 밸런싱 적용 가능 (멀티 인스턴스, 컨테이너 사용)
profile
게임 개발자가 꿈인 게이머

0개의 댓글