Migrating our game and gameserver to Gamelift we have questions

We have a game previously deployed in a sole VPS server (non amazon or azure), just a standalone cheap VPS machine and it was written in golang and communicates thru tcp/udp.
The client is written and build in Unity.

We want to utilize gamelift for its scalability and other benefits, however we dont know where to start,
I am watching various youtube videos and found this supposed to be begginer’s guide for starting gamelift

however in 3:01 of that video, it says upload the sample game server, the video did not specify where or what is these ‘sample game server’ he is talking about.
I assume that source or build is already available somewhere because of the word “sample”, but i cant find it.

Guess what im trying to say is, what is these build to upload? can I upload our custom golang server on it (without modification)?
Or do I need to modify our server (or re-write it) to include the integration of the SDK for it to work with gamelift before upload?
What sort of modification do we need to do? Is there a documentation or guide on what are those things?

How do we start integrating or migrating our game to Gamelift? we already have our game and our server, where do we go first/next?

Should we rewrite our golang server to say a nodejs for it to work with Gamelift?
What is Custom vs Realtime gameserver?

Lots of questions I dont know where to find these answers.

Please help :slight_smile:

Hi @cebugdev

Welcome!

The video that you mentioned shows the “5 click example” of setting up a working gamelift example. It is actually not representative of the actual flow. In order to upload the build, you need to follow this doc: Uploading builds and scripts to GameLift - Amazon GameLift

Guess what im trying to say is, what is these build to upload? can I upload our custom golang server on it (without modification)? Or do I need to modify our server (or re-write it) to include the integration of the SDK for it to work with gamelift before upload? What sort of modification do we need to do? Is there a documentation or guide on what are those things?

These builds either need to be fully compiled C++/C# projects with an executable (.exe), or a few javascript files to hook into Realtime Server (aka RTS, a NodeJS server that invokes your scripts during key moments, like onPlayerAccepted, onMessageReceived, etc.), however, currently RTS only supports C# clients as most of our customers using RTS are Unity developers.

3 options for you are:

  1. Try integrating your server with unofficial server SDK in go – GitHub - neguse/gomelift: Unofficial GameLift Server SDK in Go., the downside is that you won’t be able to get support officially on this solution
  2. If you game doesn’t have complex states, and you can accept using C# to build your client, then rewriting your server in RTS scripts may be easier for you.
  3. If you want full control of your server (as you are now), and you don’t mind rewriting your server with C# or C++, then custom server is good for you.