Buy GameLiftSample
GameLift GameSessions Demo
GameLift FlexMatch Demo
Features
Supported Amazon Linux 16/12/ 2018

Supported UE4 4.25 07/05/ 2020
Supported UE4 4.24 11/12/ 2019
Supported UE4 4.23 06/09/ 2019
Supported UE4 4.22 04/04/ 2019
Supported UE4 4.21 09/11/ 2018
Added new features UE4 4.20 01/11/ 2018
GameProperty
https://docs.aws.amazon.com/gamelift/latest/apireference/API_GameProperty.html
- It needs GameMode and MapName properties to travel. Maxplayers will be Max count which is gamelift player session count.
- You can add more gameproperies and retrieve them by OnStartGameSession delegate.

Dedicated server settings for autoscale
- GameLift is checking health in every 60 seconds. Dedicated server shut down itself if it doesn’t get health check for MaxHealthCheckTime. Default value is 180 seconds.
- Dedicated server shut down itself if it has no player for MaxEmptyServerTime.Default value is 180 sec.

MatchMakingTicket for Flex match
- StartMatchMaking

- DescribeMatchMaking

- AcceptMatch

Amazon GameLift Archtecture
https://aws.amazon.com/blogs/aws/launch-amazon-gamelift-now-supports-all-c-and-c-game-engines/

Amazon GameLift and Game Client/Server Interactions
http://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-interactions.html
https://aws.amazon.com/blogs/gamedev/category/gamelift/

Set Up the Unreal Engine Server SDK Plugin
http://docs.aws.amazon.com/gamelift/latest/developerguide/integration-engines-setup-unreal.html
In Windows do the following:
mkdir out
cd out
cmake -G "Visual Studio 14 2015 Win64" -DBUILD_FOR_UNREAL=1 ..
msbuild ALL_BUILD.vcxproj /p:Configuration=Release
The following binary files are generated:
- out\prefix\bin\aws-cpp-sdk-gamelift-server.dll
- out\prefix\lib\aws-cpp-sdk-gamelift-server.lib
Add Amazon GameLift to an Unreal Engine Game Server Project
http://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-api.html
http://docs.aws.amazon.com/gamelift/latest/developerguide/integration-engines-setup-unreal.html
#include "GameLiftServerSDK.h"
AGameLiftFPSGameMode::AGameLiftFPSGameMode()
: Super()
{
...
//This game server tells GameLift that it listens on port 7777 for incoming player connections.
FString Port = "7777";
// Allow the command line to override the default port
if (FParse::Value(FCommandLine::Get(), TEXT("Port="), Port) == false)
{
Port = GConfig->GetStr(TEXT("URL"), TEXT("Port"), GEngineIni);
}
params->port = FCString::Atoi(*Port);
...
}
Packaging and Uploading Server Build
http://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-build-aws-cli-installing.html
Add Amazon GameLift to Your Game Client
http://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-client-api.html
Thank you for your kind post 🙂 But I have an one question – I cannot compile with VS2017 not 2015 ;( Should I install 2015 to develop with gameLift?
LikeLike
I haven’t build with VS2017. I guess you need to build aws-sdk-cpp first. The only difference is cmake for VS2017.
https://github.com/aws/aws-sdk-cpp
LikeLiked by 1 person
I confirmed it can be compiled with 4.19 with VS2017.
LikeLike
Does it include GameLift FlexMatch integration?
LikeLike
Not yet. I’m adding FlexMatch. But it might be better just to update the latest SDKs. It’s straighforward Amazon documents for FlexMatch.
LikeLike
Yea i know it’s documented and straightforward but I’m unable to accomplish it so…
LikeLike
If you can add a FlexMatch integration i’d definitely buy this!
LikeLike
Let you know it when I’m done.
LikeLike
Integrated GameLift Flext match. It’s availabe with 4.19.
LikeLike
does the plugin have blueprint support?
LikeLike
Sure. The demo was made by blueprint
and provides with plugin.
LikeLike
but the actual code is implemented in C++ right? functions are just exposed to blueprint. And is the c++ code open source?
LikeLike
You’re right. It’s implemented in C++ and exposed to blueprint. Well Amazon and Epic open their source. You can do whatever you want with them.
LikeLike
Hello, Is this a plugin or do you need a C++ project to use it?
LikeLike
This is C++ code plugin and exposed necessary functions to blue print. It’s included sample project.
LikeLike
You can use it with blue print only project and C++ project.
LikeLike
But is the plugin depended on a C++ project or can you use it with a blueprint project with no C++ files?
LikeLike
You can use it with blue print only project.
LikeLike
Thank you for your prompt reply.
LikeLike
We tried to build the dedicated server as instructed. We tried with both the 4.18 and 4.19 sample, with the release version of unreal.
We ran the command:
RunUAT.bat BuildCookRun -project=”C:\Users\4DMACAU-G25VR\Documents\Unreal Projects\GameLiftSample_4.18\GameLiftSample.uproject” -noP4 -platform=Win64 -clientconfig=Development -serverconfig=Development -server -serverplatform=Win64 -noclient -nodebuginfo -build -cook -stage -pak -archive -archivedirectory=”C:\Users\4DMACAU-G25VR\Documents\Unreal Projects\GameLiftSample_4.18\Build”
After it tried to build for a while, we got the same error in red each time, saying:
ERROR: Command failed (Result:5): C:\UnrealEngine_release\Engine\Binaries\DotNET\UnrealBuildTool.exe GameLiftSampleEditor Win64 Development -Project=”C:\Users\4DMACAU-G25VR\Documents\Unreal Projects\GameLiftSample_4.18\GameLiftSample.uproject” “C:\Users\4DMACAU-G25VR\Documents\Unreal Projects\GameLiftSample_4.18\GameLiftSample.uproject” -NoUBTMakefiles -noxge -generatemanifest -NoHotReload. See logfile for details: ‘UnrealBuildTool-2018.06.21-16.49.37.txt’
(see C:\UnrealEngine_release\Engine\Programs\AutomationTool\Saved\Logs\UAT_Log.txt for full exception trace)
AutomationTool exiting with ExitCode=5 (5)
BUILD FAILED
Can someone please help?
LikeLike
Have you run Setup.bat and GenerateProjectFiles.bat in C:\UnrealEngine_release? Can you send me full log file?
LikeLike
Yes, we have run Setup.bat and GenerateProjectFiles.bat in C:\UnrealEngine_release.
I am sending the full log file to the cyberjxxxxxx@gmail.com I got. Thank you!
LikeLike
Are you going to run a sale on this? Way to much but very interesting!
LikeLike
It’s on Gumroad. https://gum.co/thSnQ
LikeLike
Hello,
This is the best GameLift integration I’ve found so far! However, when trying to compile the server target from a source build of 4.20 with VS 2017, it gives a ton of “noexcept” errors. Any idea how to fix that?
Thanks!
LikeLike
Let me check it again. Let you know when I’m done.
LikeLike
I uploaded new project for UE4 4.20 with VS2017. You can download it from Gumroad.
LikeLike
Hi, this project is very helpful.
We are working on matchmaking with FlexMatch.
Can you show us the Rule Set for this GameLiftSample (that JSON script)?
LikeLike
I’m using this rule sets. It has default values so that I may use parts of attributes.
https://docs.aws.amazon.com/gamelift/latest/developerguide/match-examples.html
{
“name”: “multi_map_game”,
“ruleLanguageVersion”: “1.0”,
“playerAttributes”: [{
“name”: “exp”,
“type”: “number”,
“default”: 50
}, {
“name”: “gameMode”,
“type”: “string_list”,
“default”: [ “CTF”, “FFA”, “TDM” ]
}, {
“name”: “mapPreference”,
“type”: “string_number_map”,
“default”: { “CTF”: 100 }
}, {
“name”: “acceptableMaps”,
“type”: “string_list”,
“default”: [ “CTF” ]
}],
“teams”: [{
“name”: “red”,
“maxPlayers”: 5,
“minPlayers”: 2
}, {
“name”: “blue”,
“maxPlayers”: 5,
“minPlayers”: 2
}],
“rules”: [{
// We placed this rule first since we want to prioritize players preferring the same map
“name”: “MapPreference”,
“description”: “Favor grouping players that have the highest map preference aligned with the anchor’s favorite”,
// This rule is just for sorting potential matches. We sort by the absolute value of a field.
“type”: “absoluteSort”,
// Highest values go first
“sortDirection”: “descending”,
// Sort is based on the mapPreference attribute.
“sortAttribute”: “mapPreference”,
// We find the key in the anchor’s mapPreference attribute that has the highest value.
// That’s the key that we use for all players when sorting.
“mapKey”: “maxValue”
}, {
// This rule is second because any tie-breakers should be ordered by similar experience values
“name”: “ExperienceAffinity”,
“description”: “Favor players with similar experience”,
// This rule is just for sorting potential matches. We sort by the distance from the anchor.
“type”: “distanceSort”,
// Lowest distance goes first
“sortDirection”: “ascending”,
“sortAttribute”: “exp”
}, {
“name”: “SharedMode”,
“description”: “The players must have at least one game mode in common”,
“type”: “collection”,
“operation”: “intersection”,
“measurements”: [ “flatten(teams[*].players.attributes[gameMode])”],
“minCount”: 1
}, {
“name”: “MapOverlap”,
“description”: “The players must have at least one map in common”,
“type”: “collection”,
“operation”: “intersection”,
“measurements”: [ “flatten(teams[*].players.attributes[acceptableMaps])”],
“minCount”: 1
}]
}
LikeLike
Thanks for the instant reply!
If possible, can you also tell us what you did to “Game properties” (Key and Value pair in the bottom of a page) in “Matchmaking Configuration” of FlexMatch?
LikeLike
Is there a way to get GameSession’s MatchmakerData via Blueprint?
LikeLike
Sure. I updated a post with flex match funtions. You can access to all the data on Blueprint.
LikeLike
Is there a way to get GameSession’s MatchmakerData via Blueprint?
LikeLike
Sure. You can access to all the data on Blueprint.
LikeLike
hello. can I use this plugin with Steam auth (or onlinesubsystemSteam) ?
LikeLike
Sure. I also used GameLift with OnlineSubsystemSteam.
LikeLike
Hey there, You’ve done a great job. I will definitely digg it and personally suggest to my friends.
I’m sure they’ll be benefited from this website.
LikeLike
Hi, does this work like the matchmaking system in for example PUBG, where the game starts when a specified number of players have joined a queue? And if more players wants to play, then the system will spawn another game instance? If this is not the way it works by default, would it be possible to do using this project? Thanks
LikeLike
Also, do you provide support via email, and does the documentation/tutorial cover everything needed to set this project up?
LikeLike
FlexMatch is a match making system of GameLift. My plugin focus on how to package and setup on GameLift and trouble shooting. Of course, it integrated necessary functions for FlexMatch. As you can see the demo(https://www.youtube.com/watch?v=8-pkjgSx2qI), It’s simple prototype. You might need to integrate your own functions depending on your game logic.
Here is official document.
https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-match.html
LikeLike
It comes with sample projects (4.15-4.22) and manual.
LikeLike