ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • UE4 데디케이티드 서버 만들기 샘플
    프로그래밍/의문 2021. 5. 29. 15:58
    반응형

    그냥 이거 따라하면 됨. Setting Up Dedicated Servers | Unreal Engine Documentation

     

    Setting Up Dedicated Servers

    How to set up and package a dedicated server for your project.

    docs.unrealengine.com

     

    1. github에서 UE4 소스를 받는다.
    UE4 소스는 private 저장소에 있으므로 에픽 게임즈 개발자 등록을 해야 접근이 가능.

    저장소 링크: EpicGames/UnrealEngine: Unreal Engine source code (github.com)

    2. 소스 다운로드 후 Windows에선 Setup.bat을 실행 후 완료 대기.

    Setup.bat

    3. Windows이므로, GenerateProjectFiles.bat 실행 후 완료 대기.

    5. 4에서의 과정으로 만들어진 Visual Studio 솔루션 파일, UE4.sln를 실행

    6. UE4 프로젝트를 시작 프로젝트로 설정, 빌드 구성을 Development Editor로 설정 후 빌드

    7. 언리얼 에디터 켜기
    나는 6번 과정에서 만들어진, UnrealEngine/Engine/Binaries/Win64/UE4Editor.exe 를 직접 실행 시켰었다.

    8. 언리얼 에디터로 프로젝트 생성

    에디터를 켜고 게임 - 삼인칭(Third-Person Template) - C++로 프로젝트 생성. 여기서의 프로젝트의 이름은 TestProject로 한다.

    9. 비주얼 스튜디오 솔루션(.sln) 파일 생성.

    프로젝트의 TestProject.uproject 파일에서 마우스 오른쪽 클릭을 하여 Switch Unreal Engine Version을 눌러 6에서 내가 직접 빌드한, 경로의 버전으로 솔루션 파일을 생성함.

    10. 서버 빌드 타겟 정보 생성

    TestProject.Target.cs가 있는 디렉토리로 이동.

    TestProject.Target.cs 파일을 복사하고, 그 복사 파일의 이름을 TestProjectServer.Target.cs로 변경

    TestProjectServer.Target.cs의 내용을 아래와 같이 변경한다.
    변경 내용은
    1. 클래스 이름 변경
    2. 클래스 생성자 이름 변경
    3. 타겟 타입을 서버로 변경

    // 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");
    	}
    }

     

    프로젝트의 .uproject 을 이용하여 다시 프로젝트 솔루션 파일을 생성.

     

    11. 프로젝트 에디터 빌드

    TestProject를 시작 프로젝트로 설정하고, 빌드 구성을 Development Editor로 설정하여 빌드.

    12. 프로젝트 서버 빌드

    빌드 구성을 Development Server로 설정하고 빌드

    13. 3인칭 템플릿 레벨 이동

    3인칭 템플릿으로 프로젝트를 생성하면 기본적으로 있는, Maps 디렉토리를 콘텐츠로 이동.

    14. 게임 켜지자마자 보여질 레벨을 만든다.

    클라이언트를 켜자마자 보이는 레벨로 쓰기 위한 레벨을 하나 만든다. 파일 - 새 레벨 - Default 템플릿을 선택하고, TestProjectEntry라는 이름으로 새 레벨을 만듦.

    15. Entry 레벨에서 서버 접속 설정

    TestProjectEntry 레벨을 열고, 레벨 블루프린를 열어서 Begin Play 이벤트로 Open Level을 설정. Level Name을 연결할 ip 설정. 이 예제에선 local ip.

     

    16. 플레이어 시작 위치 설정

    ThirdPersonExampleMap 레벨을 연다. 기본적으로 있던, third-person character를 삭제한다. 플레이어 스타트 액터를 2개 배치한다.

    17. 맵 정보 설정

    에디터에서 세팅 - 프로젝트 세팅 - 프로젝트 - 맵&모드 - Default Maps에서 아래와 같이 설정.

    에디터에서 세팅 - 프로젝트 세팅 - 패키징 - 패키지 된 빌드에 포함시킬 맵 목록에 사용하는 맵들 경로 지정.

     

    18. 클라이언트 패키징

    파일 - 프로젝트 패키지 - Windows를 누름.  Packaged 디렉토리를 만들고, 거기에 클라이언트 패키징. 

    Packaged/WindowsNoEditor 디렉토리에 TestProject.exe 파일이 생성된 걸 확인

     

    19. 서버 패키징

    파일 - 프로젝트 패키지 - 빌드 타깃 - TestProjectServer로 설정 후 Windows를 누름. Packaged 디렉토리에 서버 패키징.

    Packaged/WindowsServer 디렉토리에 TestProjectServer.exe가 생성된 걸 확인.

    TestProjectServer.exe의 바로가기를 생성하고, 바로가기의 파일 속성을 켜고 대상에 -log를 추가.

    그리고 바로가기의 이름을 TestProjectServer.exe - ThirdPersonExample 로 변경

     

    20. 접속 테스팅

    19에서 만들었던 서버 바로가기, Packaged/WindowsServer/TestProjectServer.exe - ThirdPersonExample 를 켠다.

    18에서 만들었던 클라이언트, Packaged/WindowsNoEditor/TestProject.exe 를 켠다.
    클라이언트, Packaged/WindowsNoEditor/TestProject.exe 하나 더 켠다.

    두 개의 클라이언트에서 서로의 캐릭터가 보이는 것을 확인.

    반응형
Designed by Tistory.