IN THIS ARTICLE
Troubleshooting Amazon GameLift integration
Troubleshooting Amazon GameLift integration
Use the following information to help you diagnose and fix common problems that you might encounter while working with Amazon GameLift.
Topics
Fleets failing to go active
As a first step, sign in to the Amazon GameLift console and check the fleet’s events to get more details on the problem. Here you can examine the output of the install script and get more information regarding where GameLift is seeing problems.
Missing dependencies
If your process is failing on launch, then the most likely cause is that you failed to package or install all of the server’s dependencies. On Windows, this typically means missing dynamic link libraries (DLLs). Check the following:
- Check your
install.bat
orinstall.sh
output. Ensure that the script installed what was required to run on GameLift. Note
For Windows fleets, debug builds of the dedicated server will fail on launch, since they require debug Visual Studio Redistributables which Lumberyard cannot provide. Consider using profile builds instead on GameLift. Note
For Linux fleets, look at theMultiplayerSample_CreateGameLiftPackage.sh
script to see how to generate aninstall.sh
for use on Amazon Linux 2. - Remote into the fleet and ensure that the
bootstrap.cfg
is correct. Many failures can be caused by a misconfigured bootstrap. Try manually running the process to discover what might be missing on launch. - If you are using Windows to prepare packages for Linux development, ensure that the box marked Setup for Linux Dedicated Server is selected in the Setup Assistant, otherwise GameLift integration files can be missing. This is a requirement for using
MultiplayerSample_LinuxPacker.bat
, for example.
Crashing process
If your process is crashing, then remote into the fleet and check the server logs to discover the source of the crash. Lumberyard logs to either C:\Game\user\log
(Windows) or /local/game/user/log
(Linux).
Not responding to GameLift callbacks
Ensure that your process is responding to callbacks from GameLift, especially the health check callback. If your process is not responding, then ensure your Amazon EC2 instance is not CPU-bound or memory-bound, which might cause the server to be unstable or slow to respond. Try reducing the number of concurrent servers per instance, or try a larger EC2 instance.
Clients unable to connect
If your clients fail to connect to the server, then check the following configurations:
- Ensure that the expected server fleet port(s) are open in Amazon GameLift. This can be checked from the fleet console and the CLI.
- Ensure that your server is listening on the port reported to GameLift via the
ProcessParameters
object passed toProcessReady()
. - Ensure that your clients do not have the
sv_port
cvar set to something unexpected. We recommend that you leave this at the ephemeral port. - If you are using MultiplayerSample as a basis for your fleets, verify that the server and client have the same self-signed certificate. You must use a consistent certificate across clients and server fleets. For more information about self-signed certificates, see About Self-Signed Certificates in the Multiplayer Sample.
- Verify that
gm_netsec_enable
is consistent between your clients and fleets. It is on by default for the dedicated server, but you can turn it off by passing+gm_netsec_enable 0
in the startup params.
Additional information
For additional troubleshooting tips and information, see the following topics: