- Newest
- Most votes
- Most comments
Hi,
Typically customers would only integrate the Gamelift SDK into the game server build that is targeting Linux or Windows platforms. The GameLift SDK is only needed on the Dedicated game server binaries to communicate with the GameLift to indicate the health and status of the game server session. The GameLift SDK is not needed inside the client builds targeting Playstation or Nintendo console platform.
What some customers might include in the Client builds is the AWS SDK to communicate with AWS REST APIs. But it's recommended that you have your own backend service between your game client and the AWS services to decouple the client from the persistent data store. So in your client you would just need a basic support for REST APIs and support for your chosen authentication flow.
For example if you want your game client on PS5 or Switch to enter a game via GameLift FlexMatch matchmaking, then you would implement a small serverless backend using AWS API Gateway and AWS Lambda to receive that request from your authenticated client. The serverless backend would in turn communicate with FlexMatch to start the matchmaking with IAM credentials. You can see a Serverless implementation example here: https://github.com/aws-samples/aws-gamelift-and-serverless-backend-sample (Note that this example does include some AWS SDK inside the clients as these are easy to start with examples, but the main point is the serverless backend)
Same goes for storing the player state, if you want to store players high score or some other more persistent data, you would create a backend that would handle that. The game client would never directly interface a service like Amazon DynamoDB database, because you want to decouple the client. The decoupling allows you to independently change the architecture of your persistent storage and also lets you handle the scalability better. If the client was directly interfacing with DynamoDB you would have to create robust retry mechanisms in your game clients incase you hit any of the write per second limits of DynamoDB table. With a backend you could handle these error cases much more easier and also implement a fall back logic, such as adding the data into a messaging queue or some other location.
So to summarise, your game clients don't typically have any AWS SDKs inside of it but instead have general HTTP REST API libraries and the library of your chose authentication (For example OAUTH) mechanism.
Hope this helps you
Hi Bnnoy, Have you tried building other AWS services from source. For instance: DynamoDB or EC2? Do you face the same errors when doing so? This will help narrow down the issue on our end.
Regards, Shashank
Hello!
I tried compiling DynamoDB and EC2 and I get the same error, which seems logical because they all depend on AwsCommon which fails to compile. The first error encountered seems to point to something being not supported by C99 standard, so I tried setting CMAKE_C_STANDARD to 11 in several places (project CmakeLists.txt, PS5.Cmake toolchain file...) but I keep getting this error.
Let me know if I can run more tests to provide more information.
Relevant content
- asked 7 years ago
- asked 4 years ago
- AWS OFFICIALUpdated 7 months ago
- AWS OFFICIALUpdated 6 months ago
- AWS OFFICIALUpdated 6 months ago
- AWS OFFICIALUpdated a year ago
Hello! Thanks for the answer, I will definitely look into that. However I will also need a game server with GameLift Server SDK, and I'm having trouble with that too...