그래픽 요소를 제거한
서버 본연의 일을 더 집중적으로 하는 (본연의 일이란, 클라이언트가 필요로 하는 정보를 리플리케이트 하는 것)
멀티플레이어 게임에서 서버와 클라이언트가 각각 받는 부하의 방식과 정도는 서로 다르다.
리슨서버에서는 위 부하를 서버가 모두 부담했던 반면, 데디케이티드 서버는 서버가 부담하는 부하를 따로 떼 내 독립적으로 운용하는 서버다
pros
독립적으로 서버 로직 처리
리슨 서버에서 서버가 부담하는 부분을 따로 떼어냄
공정한 플레이 환경
cons
비용
생각보다 많은 인원을 수용할 수 없음
언리얼 엔진 소스 코드 → 빌드된 엔진
서버 머신 (로컬, AWS, …)
빌드
빌드 퀵 스타트
Source 폴더 하위에 [프로젝트이름]Server.Target.cs 파일 생성 ([프로젝트이름].Target.cs 파일을 복사)
다음 내용을 [프로젝트이름]Server.Target.cs 파일에 덮어쓰기
// Copyright Epic Games, Inc. All Rights Reserved.
using UnrealBuildTool;
using System.Collections.Generic;
public class TestProjectServerTarget : TargetRules //이 행은 프로젝트 이름에 맞게 변경합니다.
{
public TestProjectServerTarget(TargetInfo Target) : base(Target) //이 행은 프로젝트 이름에 맞게 변경합니다.
{
Type = TargetType.Server;
DefaultBuildSettings = BuildSettingsVersion.V2;
ExtraModuleNames.Add("TestProject"); //이 행은 프로젝트 이름에 맞게 변경합니다.
}
}
비주얼 스튜디오를 종료하고, ‘Generate Visual Studio Project Files’로 프로젝트 파일을 생성하고 실행한다.
다음과 같이 설정하고 ‘솔루션 빌드’
다음과 같이 설정하고 ‘솔루션 다시 빌드’
Automation Tool 관련 빌드 오류 해결 방법 (해당 버그는 글 작성 날짜 기준 발생된 것이며, 추후 오류가 없어질 수도 있다. 다른 오류 발생 시 해당 문제에 알맞는 솔루션을 직접 찾아야 한다.)
패키징
언리얼 엔진에서 전용 서버 구성하기 | 언리얼 엔진 5.0 문서 | Epic Developer Community
<aside> 💡 5.1 버전 이상 문서에서는 Lyra 프로젝트를 사용해 Dedicated Server를 구성한다.
</aside>
언리얼 엔진의 Linux 개발 요구사항 | 언리얼 엔진 5.4 문서 | Epic Developer Community
<aside> 💡 Dedicated Server를 리눅스에 올리기 위해서는 위 문서에서 UE 버전에 맞는 네이티브 툴 체인을 설치해야 한다.
</aside>
구분해야 할 것 (언리얼 엔진 빌드 vs 언리얼 엔진 프로젝트 빌드)
패키징 퀵 스타트
[언리얼 프로젝트 패키징]
[패키징 세팅]
[실제 패키징]