Skip to main content

프로젝트에 GSDK 추가

이 문서에서는 기존 프로젝트를 PlayFab 멀티플레이어 서버(MPS)에서 호스팅할 수 있도록 업그레이드하는 방법을 설명합니다. 이 프로세스에는 Unreal 프로젝트에 PlayFab GSDK를 추가하고 구성하는 과정이 포함됩니다. 여기의 지침은 Unreal ThirdPersonMP 템플릿 프로젝트를 사용하여 작성되었습니다. 참고: Unreal 프로젝트에는 다음과 같은 기능이 있어야 합니다.
  • 네트워킹
  • 멀티플레이어
  • 전용 게임 서버
그렇지 않은 경우 예제 프로젝트 설정 가이드로 돌아가서 프로젝트를 전용 서버 기능이 있는 네트워크 지원 멀티플레이어 게임으로 구성해야 합니다.

목표

프로젝트에 PlayFab Unreal GSDK를 추가하고 구성하며, 로컬에서 테스트하여 PlayFab Multiplayer Services에서 작동할 것으로 예상되는지 확인합니다.

요구 사항

C++ 구현

프로젝트에 플러그인 추가

다음 단계에 따라 프로젝트에 Unreal GSDK를 추가합니다.
  • Unreal 프로젝트로 이동합니다.
  • File Explorer를 열고 게임의 루트 디렉터리에 Plugins 폴더를 만듭니다. Plugins 폴더 안에 PlayFabGSDK라는 폴더를 만듭니다.
  • {depot}\GSDK\gsdk\UnrealPlugin으로 이동합니다. UnrealPlugin 폴더의 모든 파일을 Plugins/PlayFabGSDK 폴더로 드래그합니다.
  • 마지막으로 원하는 텍스트 편집기에서 {ProjectName}.uproject 파일을 엽니다. plugins 배열에 “PlayFabGSDK” 플러그인을 추가합니다.
아래 예를 참조하세요.

모듈에 플러그인 포함

  • {ProjectName}.Build.cs 파일을 업데이트하여 PublicDependencyModuleNames.AddRange(); 목록에 다음과 같이 “PlayFabGSDK”를 추가합니다.
  • {ProjectName}.uproject 파일을 마우스 오른쪽 버튼으로 클릭하고 Switch Unreal Engine version 옵션을 선택합니다. 이 옵션을 사용하면 현재 사용 중인 Unreal Engine 버전을 빠르게 확인할 수 있습니다. 아래에 표시된 팝업이 나타납니다. Unreal Engine 버전이 이미 소스 빌드로 표시되면 변경할 필요가 없으므로 Cancel을 클릭합니다. Unreal 버전이 현재 소스 빌드가 아닌 경우 드롭다운 목록에서 선택한 다음 OK를 클릭합니다.
image depicting a window that says "Select Unreal Engine Version"
  • {ProjectName}.uproject 파일을 다시 마우스 오른쪽 버튼으로 클릭하고 “Generate Visual Studio Project Files”를 선택합니다.
  • 마지막으로 Visual Studio에서 프로젝트를 빌드하고 Development Editor 구성을 선택하여 Editor를 시작합니다.
image depicting Visual Studio with the option to build in Development Editor Mode

프로젝트 설정

프로젝트에서 서버 모드를 활성화하면 {ProjectName}Server.Target.cs 파일이 있게 됩니다. 결과는 다음과 유사해야 합니다.
Windows 빌드의 경우 다음과 같은 선택적 구성을 추가해야 할 수 있습니다.
참고: 이러한 구성은 Linux 서버 빌드에는 유효하지 않습니다.

GameInstance 클래스 만들기/업데이트

GameInstance 클래스 만들기

프로젝트를 처음부터 만드는 중이고 아직 GameInstance 클래스가 없는 경우 먼저 이 예제 지침을 따라 GameInstance 클래스를 만듭니다. 이미 GameInstance 클래스가 있는 프로젝트(예: Unreal의 샘플 라이브러리의 ShooterGame)를 사용하는 경우 Modify the GameInstance class 섹션으로 이동합니다.
Unreal Editor에서:
  • Files 선택
  • Create a new C++ class 선택
  • Show all classes 선택
  • 검색 필드에 GameInstance 입력
    • 설명된 대로 직접 선택하면 모든 것이 올바르게 생성되고 아래에 자세히 설명된 함수를 추가할 수 있습니다.
  • Unreal을 닫고 소스 빌드 모드에서 다시 __Generate project files__를 실행합니다.
  • Visual Studio를 사용하여 새로 생성된 파일을 열고 지침에 따라 GameInstance 클래스를 수정합니다.

GameInstance 클래스 수정

프로젝트 설정에 따라 C++ 또는 Blueprint를 사용하여 GameInstance 클래스를 수정할 수 있습니다. 두 방법 모두 아래에 제시되어 있으며 요구 사항에 맞는 것을 선택해야 합니다.

C++ 구현

GameInstance 클래스를 찾으세요. 이는 {ProjectName}GameInstance 또는 MyGameInstance와 유사한 이름일 가능성이 큽니다. 이제부터 GameInstance 클래스는 [YourGameInstanceClassName]으로 표시됩니다.
GameInstance 헤더 파일 수정
먼저 include 문을 확인하고 GameInstance 클래스의 헤더 파일([YourGameInstanceClassName].h)에 다음이 포함되어 있는지 확인합니다.
[선택 사항] 다음 코드를 사용하여 GameInstance 전용 로그 채널을 도입할 수 있습니다. 또는 LogTemp을 사용한 로깅으로 충분합니다.
그런 다음 공용 섹션에 다음 선언을 추가합니다. (이미 Init() 함수가 있는 경우 다른 선언을 포함할 필요가 없습니다.)
그런 다음 메서드의 protected 섹션에 다음 선언을 추가합니다.
GameInstance CPP 파일 수정
그런 다음 [YourGameInstanceClassName].cpp 파일을 찾습니다. 다음이 포함되어 있는지 확인합니다.
헤더 파일에 사용자 지정 로그 채널이 도입된 경우 다음 코드가 필요합니다.
그런 다음 Init() 함수를 찾습니다. Init() 함수가 아직 없는 경우 다음과 같이 함수를 추가합니다.
Init() 함수 만들기

이미 Init() 함수를 가지고 있는 경우 [YourGameInstanceClassName].cpp 파일에서 인스턴스가 전용 서버용인지 여부를 나타내는 변수가 있는지 확인합니다. 이 변수를 찾을 수 있으면 Init() 함수의 끝에 다음을 추가합니다.
기존 Init() 함수 수정
MPS의 기본 포트를 설정하는 다음 함수를 호출하여 Init() 함수를 완성합니다.

마지막으로 [YourGameInstanceClassName].cpp 파일의 하단에 이러한 메서드 구현을 추가합니다.

Blueprint 구현

이 부분은 순수 C++ 구현이 아닌 Blueprint 구현으로 진행하기로 결정한 경우에만 필요합니다.
  • Unreal Editor의 Content Browser 창을 확인합니다.
  • 새 Blueprint를 포함할 폴더를 선택하거나 만듭니다.
  • 마우스 오른쪽 버튼을 클릭하고 Blueprint 클래스를 만듭니다.
  • All classes 드롭다운 메뉴에서 GameInstance 클래스를 찾습니다.
    • 이 예제에서는 blueprint의 이름이 “MyGameInstance”입니다.
  • blueprint를 두 번 클릭합니다.
  • 왼쪽에서 function 필드 위로 마우스를 가져가서 Override 드롭다운을 선택합니다.
  • Init 함수를 선택합니다.
  • 그래프에서 마우스 오른쪽 버튼을 클릭하고 모든 register GSDK 함수를 추가합니다.
  • GSDK Shutdown 및 Maintenance Delegate의 경우 빨간색 사각형에서 선을 끌어내어 “Add Custom Event”를 선택합니다.
  • “Register GSDK Health Check Delegate”의 경우 “Event Dispatchers”에서 “Create Event”를 선택합니다.
  • PlayFab GSDK Health Check add
  • 새 노드의 드롭다운에서 “Create matching function”을 선택합니다. GSDK Health Check Delegate에는 반환 값이 있으므로 이것이 중요합니다.
  • PlayFab GSDK Health Check register
  • 함수에서 반환 boolean 값이 확인되었는지 확인합니다.
  • PlayFab GSDK Health Check function
  • 모든 노드를 Event Init 노드에 연결하는 것을 잊지 마세요.
  • 마지막에 PlayFab의 ready 신호에 반응할 수 있도록 “ReadyforPlayers” 노드를 추가합니다.
  • 또한 GSDK가 예상하는 포트에 연결하기 위해 “SetDefaultServerHostPort” 노드를 추가하는 것을 잊지 마세요.
  • Blueprint에 추가하려는 모든 GSDK 함수/노드에 대해 새 노드에 함수 이름의 처음 몇 글자를 입력하고 예상 GSDK 함수가 제안에 표시되는지 확인하여 존재하는지 확인할 수 있습니다.
  • 결과적으로 Blueprint는 아래 이미지에 표시된 것과 유사해야 합니다.
  • PlayFab GSDK Full Graph

GameInstance 클래스 설정

gsdk와 통합되는 사용자 지정 GameInstance 클래스를 만든 후에는 실제로 이 새로 만든 GameInstance 클래스를 사용하도록 프로젝트를 구성해야 합니다. 이렇게 하는 방법은 두 가지가 있습니다. Unreal Engine 편집기를 사용하거나 DefaultEngine.ini를 직접 편집합니다.

Unreal Editor에서

편집기에서 편집기의 UI를 통해 기본 GameInstance를 설정할 수 있습니다. 편집기에서 Edit -> __Project Settings__로 이동합니다. 열린 창에서 왼쪽의 __Maps&Modes__로 이동합니다. 하단으로 스크롤한 다음 GameInstanceClass 옵션을 새 GameInstance 클래스로 직접 설정할 수 있습니다(오타에 주의하세요. 정확히 일치해야 합니다).

DefaultEngine.ini에서

또는 DefaultEngine.ini 파일을 업데이트하고 다음 줄을 추가할 수 있습니다.

Windows 전용 서버용 필수 구성 요소 포함

app-local 필수 구성 요소를 포함하는 방법은 두 가지가 있습니다. Unreal Engine 편집기를 사용하거나 DefaultGame.ini를 편집합니다.

Unreal Editor에서

편집기에서 Edit -> Project Settings로 이동합니다. 열린 창에서 왼쪽의 Packaging으로 이동합니다. 목록 하단으로 스크롤한 다음 “Include app-local prerequisites”에 체크 표시합니다.

DefaultGame.ini에서

또는 다음 코드로 DefaultGame.ini를 업데이트할 수 있습니다.
DefaultGame.ini에 카테고리가 이미 있는 경우 두 번째 줄만 추가합니다. 이 구성은 모든 app local 종속성이 프로젝트와 함께 배송되도록 합니다. Continuous Integration (CI)을 사용하는 경우 이 플래그를 전용 서버를 빌드할 때만 활성화하도록 설정에 추가하여 전용 서버 빌드인 경우에만 필수 구성 요소 DLL이 추가되도록 할 수 있습니다.

다음 단계

이제 로컬 컴퓨터에서 프로젝트를 빌드할 준비가 되었습니다. 또는 기본 Unreal GSDK 플러그인 가이드로 돌아갈 수 있습니다.
마지막 수정일 2026년 8월 25일