Do we need Game Session for Unreal project?

I’m a bit confused about how to integrate the Gamelift’s game session with unreal.

Basically, what I had in mind was like this ->

  1. Once the main lobby server call Gamelift, a new unreal server will be open on one of the fleet (1 process) and allow players to join.

  2. Once that game end, that server will terminate itself and send the result back to the lobby.

Since each game is a seperated server/ seperated process. There’s really no need to do the game session right?

Or am I getting the whole gamelift-unreal’s architecture wrong?

From the document I read, it seems like GameLift want one server to host multiple game session. Something I’m not sure Unreal Server is built for.

Okay, so once an instance is started, it launches multiple Unreal server processes and wait for people to connect to them? It’s so weird and wasting a lot of resources… Can’t we just launch new process only when people create a new game?.

Before scaling up game instances, game server binaries should be installed. It takes 5-10 minutes. Once you upload your server on GameLift, you will understand how it works.

I haven’t tested it yet. It seems to support multiple processes on a gamelift instance.

You need to get player session with game session to authenticate Gamelift for scaling as far as I know.

Hey there -

Shin is right, GameLift supports the ability to run 1 or more game server processes per GameLift instance. For example, if you wanted to run 10 game server processes per GameLift instance (and knew your game was stable running 10 at a time), you would simply set the number of concurrent process launches to 10 in your Fleet’s runtime configuration.

GameLift will launch all 10 game server processes for every new instance that your Fleet acquires. You can think of each game server processes as a “slot” for a new Game Session to be launched into. To save on resources and reduce your bill, you can also setup AutoScaling rules that release idle GameLift instances after a certain period of time (where idle instance means “no active game sessions being hosted”).

Can’t we just launch new process only when people create a new game?

When CreateGameSession is called, that’s when an open game server process is chosen and signalled to start gameplay. Your game server process has already been launched and registered itself with GameLift via the GameLift SDK InitSDK and ProcessReady calls.