Building dedicated server in UE4 with GameLift SDK

Hello everyone,

I am trying to create my game with GameLift SDK 3.1.7, trying to build the following executables:

  • Project.exe
  • ProjectServer.exe (dedicated server executable)
    Project.exe is created successfully, but ProjectServer.exe is giving me the following build error in the process of linking(?):

Creating library ProjectServer.lib and object ProjectServer.exp
ProjectServer-GameLiftServerSDK.lib(Module.GameLiftServerSDK.cpp.obj) : error LNK2019: unresolved external symbol “class Aws::GameLift::Outcome<long,class Aws::GameLift::GameLiftError> __cdecl Aws::GameLift::Server::GetTerminationTime(void)” (?GetTerminationTime@Server@GameLift@Aws@@YA?AV?$Outcome@JVGameLiftError@GameLift@Aws@@@23@XZ) referenced in function “public: virtual class TGameLiftOutcome<long,struct FGameLiftError> __cdecl FGameLiftServerSDKModule::GetTerminationTime(void)” (?GetTerminationTime@FGameLiftServerSDKModule@@UEAA?AV?$TGameLiftOutcome@JUFGameLiftError@@@@XZ)
ProjectServer.exe : fatal error LNK1120: 1 unresolved externals
ERROR: UBT ERROR: Failed to produce item: ProjectServer.exe
Total build time: 649.82 seconds (Local executor: 0.00 seconds)
Took 650.1900292s to run UnrealBuildTool.exe, ExitCode=5
ERROR: Command failed (Result:5): F:\UnrealSource\UnrealEngine\Engine\Binaries\DotNET\UnrealBuildTool.exe ProjectServer Win64 Development -Project=F:\path\to\Project.uproject F:\path\to\Project.uproject -NoUBTMakefiles -remoteini=“F:\path\to” -skipdeploy -noxge -NoHotReload -ignorejunk. See logfile for details: ‘UnrealBuildTool-2018.04.17-22.39.30.txt’
(see F:\UnrealSource\UnrealEngine\Engine\Programs\AutomationTool\Saved\Logs\UAT_Log.txt for full exception trace)
AutomationTool exiting with ExitCode=5 (5)
BUILD FAILED

Any idea what is going on here? Is this an SDK problem? DLL mismatch? Any would help. Thanks.

Hi @Pao, along with the advice from @MAlex, check to make sure you have you have the GameLiftServerSDK header included as well.

Like so:

#include "GameLiftServerSDK.h"

Look here for additional documentation:

Ben

Did you include your aws-cpp-sdk-gamelift-server.dll and aws-cpp-sdk-gamelift-server.lib to your GameLiftServerSDK plugin?

Hey @Ben,

two things are happening to me on #include "GameLiftServerSDK.h":

  1. VS is showing me an error saying “cannot open source file ‘GameLiftServerSDK.h’”,
  2. I don’t quite understand the code snippet the docs have shown. It is using the #if WITH_GAMELIFT to only run that code on ServerTarget, but the controversy here is that we’re including that header (GameLiftServerSDK.h) to all the builds. Is this intentional?

Thanks,
Guilherme.

Yes I do.

I found the problem now. Apparently, the DLLs were not updated (we recently updated to an SDK with the new backfill methods). So, we built new server DLLs and LIBs and that made it work.

Thank you for taking time to answer!