GameLift Hosting for existing game
How can I migrate my existing game to Amazon GameLift completely? To put it in an example, let's have a Ludo Game, now if I want to use FleetIQ I know I have to make few changes to my code and call 3-5 API RegisterGameServer, UpdateGameServer, DeRegisterGameServer, etc to use the Fleet IQ feature.
Now if I want to use full-fledge GameLift as my hosting solution, how many changes I will have to make at the code or API level in my existing code/game assuming I have a matchmaking process in place in my code itself and it does not have any AWS or GameLift related logic/code/process inside.
These docs should answer your question directly:
These docs may also be helpful:
If you are using Lumberyard, Unity or Unreal, there are specific docs for those:
There are also some good GitHub examples with step-by-step guide for you to follow to create an end-to-end game on GameLift:
Let me know if you see any gaps in the documentations or if any parts are confusing to you, and we will fix them. If you have any other questions after going through these, feel free to ask!
To answer your question more directly... you'll probably need to do the following main things:
- Download and build the GameLift server SDK: https://aws.amazon.com/gamelift/getting-started/
- Include the Server SDK binaries into your game server, and setup calls such as
processEnding()etc. As well as defining the behaviors for when state changes, e.g.
AcceptPlayerSession()etc. See: https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-api-interaction-vsd.html
- Setup your game backend to call GameLift AWS SDK APIs such as
DescribePlayerSession etc. DO NOT let your client assume your developer credentials and call GameLift directly for security purposes.
4. You need to setup a CloudFormation stack containing GameLift builds, fleets, queues, etc.: https://github.com/aws-samples/aws-gamelift-and-serverless-backend-sample
5. Since you already have your own Matchmaking, you'll need to use queue placement to find the right server for your player. To do that, you need to setup a SNS notification to receive events when game session is placed for your players: https://docs.aws.amazon.com/gamelift/latest/developerguide/queue-notification.html
6. You need to configure your client to call your game backend to call GameLift to get the game session connection information, e.g.
DescribeGameSessionPlacement returns the IP/port for your client to connect to the server process
There are other minor things that I've omitted/missed, but these should be bulk of the work.
I have my backend (GameServer) in Nodejs and the Server SDK is supported only for C and C#, so I think I won't be able to take the advantage of GameLift hosting. :slight_smile:
You can check out GameLift Realtime Server, which supports managed game hosting using NodeJS.
There is no officially supported NodeJS server SDK yet, (it's a popularly requested feature and is in our backlog), but you could SSH into a Realtime Server fleet instance and find the source code to see how Realtime server uses NodeJS to communicate with GameLift's onbox service.
Thank you James for your Prompt response.
How can I create a friends list with GameLift?asked a year ago
How to Make a Game Server Activate Itself?asked 3 months ago
Gamelift and game state management?Accepted Answerasked 2 years ago
Can I run more than one game session on a single game server process?Accepted Answerasked 5 years ago
GameLift in 2020 - Major GameLift FleetIQ update now available in General Availabilityasked 2 years ago
How GameLift Local works with game sessionsAccepted Answerasked a year ago
GameLift Hosting for existing gameasked 10 months ago
Put friends in same team in GameLift/FlexMatch when game is createdasked a year ago
How to open a AWS GameLift Log?asked 10 months ago
Asking about how to terminate game sessionasked 3 years ago