What exactly is the difference between Custom vs Realtime servers in gamelift?

Arent all multiplayer game realtime? im going thru all the “getting started” documents and tutorials but I cant grasps the difference between the two

Custom game servers

Realtime game servers

Custom game servers are for more complex projects. For example if I’m making a multiplayer shooter where the server needs to be communicating constantly to a client (the client always needs to know exactly where the player is), I would use custom game servers.

Let’s say I’m making a strategy or card game where my game server only needs to send a message to a client every once in a while. This would be perfect for a realtime server. In a card game, I only need to update the client when something happens (a player plays a card, a player draws a card, etc)

So if:
My client needs to receive a message from the server 30 times per second: custom
My client needs to receive a message from the server on average once every 3 seconds: realtime

This is the way I understand it, if I’m wrong I hope somebody corrects me!

Hi @Bond007,

RTS (Realtime server) is aimed to provide a much simplified experience in setting up a GameLift server. You only need to pass in a few javascript files, and things like server-client communication, server broadcasting message, player group messaging functionality, TLS encryption are handled for you out of the box (provided that you also use the client sdk to integrate with RTS: Realtime Servers Client API (C#) Reference - Amazon GameLift)

However, RTS underneath the hood is just a nodejs websocket server, so it may not have the battery/optimization needed for complex game simulations compared to server executables generated by Unreal/Unity.

So, the more accurate summary should be:
If your game has complex states and/or needs complex physics simulation, use custom
If you game is has simple state (e.g. a poker game), use RTS

1 Like