based from here
GameLift sends an onStartGameSession() for new game session, in the matched game, is this automatically called
or should the client application still have to issue create Game session command?
Ive been following the code samples here: GitHub - BatteryAcid/unity-custom-gamelift-client: This Unity project represents the complete client setup to communicate with a Unity custom GameLift server.
though it doesnt use flexmatch, it calls CreateGameSessionAsync() and in turn calls onStartGameSession in the custom gamelift server.
I cant seem to find example codes in unity that uses flexmatch in client side that has a complete process from, starting/looking for match,
accepting match and starting a gamesession from that match.
I dont get the process and sequence in the client side and process.
Anyone can recommend a good resource?
The callback function,
onStartGameSession, that is defined by you and passed to
ProcessReady gets called whenever a game session is created by GameLift on whatever server process it chose to host that game session. There are many ways to create a game session. Flexmatch is one of them, or you can create a game session through one of the various methods, for e.g.
CreateGameSessionAsync, in the GameLift class in the AWS SDK.
Just make terminology clear in this flow, what you’ve been referencing to as a client is a GameLift client that calls GameLift AWS Service APIs. Usually this is its own service and not a game client that players will directly interact with.
This section of the docs has a pretty good flow of how FlexMatch works How Amazon GameLift FlexMatch works - Amazon GameLift Specifically, during this step is when onStartGameSession will be called (from the GameLift remote server to your game)
FlexMatch with a GameLift hosting solution: The game session queue locates the best available game server for the match. Depending on how the queue is configured, it tries to place the game session with the lowest-cost resources and where players will experience low latency (if player latency data is provided). Once the game session is successfully placed, the GameLift service prompts the game server to start a new game session, passing on the matchmaking results and other optional game data.