How do you setup GameLift Client for Unreal Engine 4?

@Alexis @Al…Murray

I’m having a hard time trying to setup GameLift Client for UE4. Using the SDK I’ve got a client plugin for UE4 and it does compile fine. In my ClientGame.Build.cs file I have these:

			PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore",
"ExampleGame", "AwsCore", "GameLift" });

Then in my Game Mode I added these includes:

// GameLift includes
#include "Gamelift/GameLiftClient.h"
#include "Gamelift/model/CreateGameSessionRequest.h"
#include "AwsCore/Public/aws/core/Aws.h"

Now when I try to make a create game session function like this:

	void AMainMenuGameModeBase::Internal_CreateGameSession()
Aws::GameLift::Model::CreateGameSessionRequest Request;
//const FString MyFleetID = "";
//Aws::GameLift::GameLiftClient Client = Aws::GameLift::GameLiftClient(); }

I get this error:

ClientMainMenuGameMode.cpp.obj : error LNK2001: unresolved external symbol "char const * const Aws::Http::CONTENT_TYPE_HEADER" (?CONTENT_TYPE_HEADER@Http@Aws@@3PEBDEB)
2>E:\Unreal Projects\TestGame\Binaries\Win64\UE4Editor-TestGameClient.dll : fatal error LNK1120: 1 unresolved externals

Unreal Engine version: 4.19

Visual Studio 2017 (15.4)

If possible, would you please be kind enough to provide a Unreal Client Plugin with some documentation and some example code?

Yeah, same here only problem is I’m running from source. So I don’t have a million dollar computer… And have to keep going through a long process,and theirs no such thing as 4.19. The docs really don’t say which engine is supported… It’s really a big headache

We are using Unreal Github source (promoted branch) and FYI master branch and promoted branch is always a version ahead of launcher version.

I have successfully compiled Unreal Client SDK and Unreal Server SDK and both work fine to an extent. That is, my dedicated server does communicate successfully with GameLift Local and Client can create Game Sessions. Problem is GameLift crashes after calling CreatePlayerSessionAsync from Client.

Hey @YetiTechStudios - we’re going to dig into this and get back to you on what might be going on here. In the meantime, are you able to use just the “CreatePlayerSession” API in GameLift Local? Alternatively, you could just upload your build to GameLift and create a fleet (assuming that GameLift Local reports the InitSDK() and ProcessReady() calls are being made).

I haven’t tested 4.19 yet. But I had the same issue before. You need to build GameLift Client again from git.

above include in aws\core\Core_EXPORTS.h

1 Like