Impleament MatchMaking using GameLift in GameSparks Server

Hey,
I working on a turn-based game, and we set up our server on GameSparks, But GameSparks matchmaking feature is disabled last year so they suggest implementing matchmaking using GameLift.
But I don’t know where to start. I followed this link to call the AWS features : SparksLift. The first issue was FleetId. well, I’m not sure if I have to start with Game Session or just the MatchMaking stuff. So if anyone can suggest from where should I start to implement or at least know about this?

GameLift typically manages a collection of compute resources that represent your game servers. The smallest collection of this is a fleet (which is a collection of resources in a AWS region).

You typically upload a server build (if using dedicated servers) or a script (if using GameLift pre-buildtserver binaries) and then make a fleet out of them.

Each fleet has some compute in it, typically EC2 instances, which can host 1-50 game server processes. Each game server process can host one active game session at a time.

FlexMatch groups incoming players and then create a new game session for the match on your compute resources

The code you referenced seems to be about how to call GameLift services from GameSparks but without any FlexMatch integration (btw it references this post: Integration between GameSparks and GameLift)

First I would ask yourself if you are using dedicated servers? If you have dedicated servers than read the standard GameLift documentation and then the FlexMatch docs. Then for your Gamesparks ‘client’ code you can use the github project linked as template about how to make calls.

If you don’t have dedicated server binaries (which maybe likely as you are using GameSparks), we may need to find more specialist support. FlexMatch (GameLift matchmaking) will try and create an active game session for you (which currently requires GameLift managed resources like queues and fleets).

You may want to cut a support issue through either GameSparks or AWS support so you can discuss your use case/needs in private (am surprised GameSparks help didn’t provide you with more, this is how you should do this type of information).

Hello, Thank you for your reply. One more question for this AWS support ticket or to discuss do I have to pay first?
Can you tell me the link if you know for this AWS support?

@StromX

I thought all AWS users can open technical support issues but apparently not: "If you have the Basic support plan, you can’t create a technical support case. ": https://docs.aws.amazon.com/awssupport/latest/user/case-management.html

GameSparks support should though be able to provide more details, but maybe not.

I’ve asked someone from the GameLift service team to help here, hopefully we will here from them soon.

Thank you for all your help.

Hello!

Looking at just the SparkLift documentation, it looks like you will have to already have a GameLift fleet within your AWS account. Once you have a fleet (which will have a fleet id) running your game, you can then take advantage of MatchMaking.

Here’s a couple of docs to get you started down this path:
GameLift Overview: https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-intro.html
Managing Resources (such as fleets, matchmaking configurations etc): https://docs.aws.amazon.com/gamelift/latest/developerguide/resources-intro.html

If you want to try this all out, I’d recommend looking at GameLiftLocal:
https://docs.aws.amazon.com/gamelift/latest/developerguide/integration-testing-local.html

It looks like SparksLift has an integration with GameLiftLocal as well. The only caveat here is you wouldn’t be able to experiment with MatchMaking.

Let me know if you have more questions!

Hello,

I have some doubt regarding that:

  1. To create a Fleet I have to upload script but my server code is already on Gamesparks. So do I have to write server-side code again or I can just upload this default script? Default Script.
  2. Let say I’m able to create fleet then SparksLift example will work because only FleetId is missing there. So to start Matchmaking should I write my code in GameSparks Cloud code or I call it from my client {Unity}?

(1)
You will have to write your server-side code again using the server SDKs & documentation provided by GameLift. GameLift matchmaking will try to create game sessions against processes in the fleet. These processes will be running your server-side code.

(2)
Once you create a fleet, then you should be calling StartMatchmaking from your client. This can be done either directly in Unity if you integrate with the AWS SDK directly or through GameSparks Cloud Code if you want to use SparkLift. I don’t believe that SparkLift is an official AWS release, but it looks to be a wrapper around the AWS SDK.

Docs:
Matchmaking intro:
https://docs.aws.amazon.com/gamelift/latest/developerguide/match-intro.html
https://docs.aws.amazon.com/gamelift/latest/developerguide/match-client.html

SDK information:
https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-supported.html