언리얼 데디케이티드 서버 가이드 요약¶
https://wiki.unrealengine.com/Dedicated_Server_Guide_(Windows_%26_Linux)
준비¶
언리얼 데디케이티드 서버를 만들기 위해서는 GitHub 버전 빌드가 필요합니다.
프로젝트 생성 CreateProject¶
언리얼 에디터를 실행해 C++ & 삼인칭(Third Person) 템플릿 프로젝트를 생성합니다.
C:\GitHub\UE4NetworkExample
프로젝트 서버 타겟 생성 CreateProjectServerTarget¶
프로젝트 서버 타겟을 생성 후 프로젝트 파일을 재생성합니다.
C:\GitHub\UE4NetworkExample\Source\UE4NetworkExampleServer.Target.cs
// Fill out your copyright notice in the Description page of Project Settings.
using UnrealBuildTool;
using System.Collections.Generic;
[SupportedPlatforms(UnrealPlatformClass.Server)]
public class UE4NetworkExampleServerTarget : TargetRules
{
public UE4NetworkExampleServerTarget(TargetInfo Target) : base(Target)
{
Type = TargetType.Server;
ExtraModuleNames.AddRange( new string[] { "UE4NetworkExample" } );
}
}
프로젝트 구성 SetupProject¶
애셋 생성 CreateAssets¶
- Content\Example 폴더 생성
- Content\Example\Widgets 폴더 생성
- Content\Example\Widgets\Loading 위젯 블루프린트 생성
- Content\Example\Maps 폴더 생성
- Content\Example\Maps\ClientEntryMap 레벨 생성
- Content\ThirdPersonCPP\Maps\ThirdPersonExample 을 복제
- 클라용: Content\Example\Maps\ClientTestMap
- 서버용: Content\Example\Maps\ServerTestMap
애셋 셋업 SetupAssets¶
Loading 위젯¶
- Text 컨트롤 추가
- Content\Text:
LOADING
- Appearance\Font\Size:
40
- Content\Text:
ClientEntryMap¶
- 툴바: Blueprints > Open Level Blueprint 메뉴 클릭
- 레벨 블루프린트 다이얼로그: 이벤트 그래프
- Event BeginPlay 생성
- Function Open Level 생성
- LevelName:
127.0.0.1
- LevelName:
ClientTestMap¶
- 툴바: Blueprints > Open Level Blueprint 메뉴 클릭
- 레벨 블루프린트 다이얼로그: 이벤트 그래프
- Event BeginPlay 생성
- Function Create Widget 생성
- Class:
Loading
위젯 블루프린트 선택 - Owning Player:
Get Player Controller
함수 연결
- Class:
- Function Add To Viewport 생성
- 월드 아웃라이너:
ThirdPersonCharacter
삭제
프로젝트 설정 SetupProjectSettings¶
- 카테고리: Maps & Modes 선택
- Default Maps
- Game Default Map:
ClientEntryMap
- Transition Map:
ClientTestMap
- ServerDefaultMap:
ServerTestMap
- Game Default Map:
프로젝트 패키지 PackageProject¶
- 언리얼 에디터 메인 메뉴 File > Package Project > Packaging Settings 메뉴 선택
- List of maps to include in a package build
/Game/Example/Maps/ClientEntryMap
/Game/Example/Maps/ClientTestMap
/Game/Example/Maps/ServerTestMap
- List of maps to include in a package build
- 언리얼 에디터 메인 메뉴 File > Package Project > Windows > Windows (64-bits) 메뉴 선택
- Packages 폴더를 생성 후 패키징 시작
- 결과 확인:
C:\GitHub\UE4NetworkExample\Packages\WindowsNoEditor
서버 빌드 BuildServer¶
- 비주얼 스튜디오 Development Server 설정을 선택해 빌드합니다.
- 패키지 폴더에 링크를 생성합니다.
C:\GitHub\UE4NetworkExample\_MakeServerLink.bat
@echo off
for %%i in (%~dp0\*.uproject) do (
echo %~dp0Packages\WindowsNoEditor\%%~ni\Binaries\Win64\%%~niServer-Win64-DebugGame.exe
if not exist %~dp0Packages\WindowsNoEditor\%%~ni\Binaries\Win64\%%~niServer-Win64-DebugGame.exe mklink /H %~dp0Packages\WindowsNoEditor\%%~ni\Binaries\Win64\%%~niServer-Win64-DebugGame.exe %~dp0Binaries\Win64\%%~niServer-Win64-DebugGame.exe
)
pause
서버 디버깅 DebugServer¶
- 비주얼 스튜디오 UE4NetworkExample Properties 다이얼로그 오픈
- Configuration Properties > Debugging > Command 입력
C:\GitHub\UE4NetworkExample\Packages\WindowsNoEditor\UE4NetworkExample\Binaries\Win64\UE4NetworkExampleServer-Win64-DebugGame.exe
클라 실행 RunClient¶
C:\GitHub\UE4NetworkExample\Packages\WindowsNoEditor\UE4NetworkExample\Binaries\Win64\UE4NetworkExample.exe