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.
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.