How to send messages between players?

Hi, I m new to Gamelift and currently working on javascript client code.

I have setup everything on AWS Gamelift in terms of server scripts and and Fleets.

On the client side I am able to create Game Sessions and Player Sessions for all of my players.

I am quite new to multiplayer games and I can’t seem to find any good resources for a Javascript game client and Gamelift setup.

How do I take advantage of Gamelift to send messages between my players?

In https://docs.aws.amazon.com/gamelift/latest/developerguide/realtime-howitworks.html#realtime-howitworks-servers there is mention to a Realtime Client SDK that can send messages. Is this just the AWS client SDK or am i missing something?

Hey, thank you so much for your reply!

I am currently working on a browser based javascript game client.
I am creating a puzzle game where two players get to work on one puzzle in a competitive manner (therefore I though Gamelift would be a good fit).
I have the AWS sdk working on my Javascript game. I am able to create game sessions and player sessions. My understanding was that there would then be some form of client side wrapper to send and receive messages via Gamelift services.

Is what I am asking possible with my current tech choices? Or is Gamelift the wrong resource to use for a browser based realtime multiplayer puzzle game?

The realtime client SDK is found here: https://aws.amazon.com/gamelift/getting-started/

  • scroll down / search for “Realtime client SDK”
    Right now theres only a C# SDK to support Unity developers. If your clients need to be in a language other than this then things will get interesting.

The SDK is really just a wrapper around some protobuf message definitions and a websocket library. It knows how to handshake with the Realtime server and package & serialize/deserialize the protobuf messages.

You could:

  • Write your own client in Javascript (but it will be brittle and would require a lot of client/server experimentation)
  • Compile the SDK for netcore and then call it via some JS -> C# hook (also brittle)
  • Use Unity to generate your clients (requires Unity knowledge)
  • Not use Realtime and just use classic gamelift (then you are in charge of the whole client/server experience).
    • Writing multiplayer servers is hard and GameLift again only supports C++/C# server SDKs.
      What is your use case / rough tech space? Are you writing mobile/browser games? This will help GameLift team understand how customers are using their products/want to use them. It may also help identify a workaround for your use case.