프로젝트에 GSDK 추가
이 문서에서는 기존 프로젝트를 PlayFab 멀티플레이어 서버(MPS)에서 호스팅할 수 있도록 업그레이드하는 방법을 설명합니다. 이 프로세스에는 Unreal 프로젝트에 PlayFab GSDK를 추가하고 구성하는 과정이 포함됩니다. 여기의 지침은 Unreal ThirdPersonMP 템플릿 프로젝트를 사용하여 작성되었습니다. 참고: Unreal 프로젝트에는 다음과 같은 기능이 있어야 합니다.- 네트워킹
- 멀티플레이어
- 전용 게임 서버
목표
프로젝트에 PlayFab Unreal GSDK를 추가하고 구성하며, 로컬에서 테스트하여 PlayFab Multiplayer Services에서 작동할 것으로 예상되는지 확인합니다.요구 사항
- Visual Studio를 다운로드합니다. Community 버전은 무료입니다.
- 필수 워크로드: .NET 데스크톱 개발 및 C++를 사용한 데스크톱 개발
- Unreal Engine 소스 코드를 다운로드합니다. 자세한 내용은 Downloading Unreal Engine Source code (외부)를 참조하세요.
- 완료된 ThirdPersonMP 예제 프로젝트 또는 유사한 기능을 갖춘 프로젝트
- PlayFab Unreal GSDK 플러그인
- [선택 사항] PlayFab Marketplace 플러그인 또는 GitHub 소스 버전. 이 플러그인은 GSDK에 필수는 아니지만 로그인을 비롯한 많은 PlayFab 서비스에 필요합니다.
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를 클릭합니다.

-
{ProjectName}.uproject파일을 다시 마우스 오른쪽 버튼으로 클릭하고 “Generate Visual Studio Project Files”를 선택합니다. - 마지막으로 Visual Studio에서 프로젝트를 빌드하고 Development Editor 구성을 선택하여 Editor를 시작합니다.

프로젝트 설정
프로젝트에서 서버 모드를 활성화하면 {ProjectName}Server.Target.cs 파일이 있게 됩니다. 결과는 다음과 유사해야 합니다.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 CPP 파일 수정
그런 다음 [YourGameInstanceClassName].cpp 파일을 찾습니다. 다음이 포함되어 있는지 확인합니다.Init() 함수 만들기
이미 Init() 함수를 가지고 있는 경우
[YourGameInstanceClassName].cpp 파일에서 인스턴스가 전용 서버용인지 여부를 나타내는 변수가 있는지 확인합니다. 이 변수를 찾을 수 있으면 Init() 함수의 끝에 다음을 추가합니다.
기존 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”를 선택합니다.
-

- 새 노드의 드롭다운에서 “Create matching function”을 선택합니다. GSDK Health Check Delegate에는 반환 값이 있으므로 이것이 중요합니다.
-

- 함수에서 반환 boolean 값이 확인되었는지 확인합니다.
-

- 모든 노드를 Event Init 노드에 연결하는 것을 잊지 마세요.
- 마지막에 PlayFab의 ready 신호에 반응할 수 있도록 “ReadyforPlayers” 노드를 추가합니다.
- 또한 GSDK가 예상하는 포트에 연결하기 위해 “SetDefaultServerHostPort” 노드를 추가하는 것을 잊지 마세요.
- Blueprint에 추가하려는 모든 GSDK 함수/노드에 대해 새 노드에 함수 이름의 처음 몇 글자를 입력하고 예상 GSDK 함수가 제안에 표시되는지 확인하여 존재하는지 확인할 수 있습니다.
- 결과적으로 Blueprint는 아래 이미지에 표시된 것과 유사해야 합니다.
-

GameInstance 클래스 설정
gsdk와 통합되는 사용자 지정 GameInstance 클래스를 만든 후에는 실제로 이 새로 만든 GameInstance 클래스를 사용하도록 프로젝트를 구성해야 합니다. 이렇게 하는 방법은 두 가지가 있습니다. Unreal Engine 편집기를 사용하거나 DefaultEngine.ini를 직접 편집합니다.Unreal Editor에서
편집기에서 편집기의 UI를 통해 기본 GameInstance를 설정할 수 있습니다. 편집기에서 Edit -> __Project Settings__로 이동합니다. 열린 창에서 왼쪽의 __Maps&Modes__로 이동합니다. 하단으로 스크롤한 다음GameInstanceClass 옵션을 새 GameInstance 클래스로 직접 설정할 수 있습니다(오타에 주의하세요. 정확히 일치해야 합니다).
