First, yes GameLift servers are EC2 servers(which is the backbone of AWS Services) but they are specials server that have been installed with the GameLift Framework. They handle all the server admin, and updates and what not for you, and give you a connection framework so people can connect to the server easier.
- So GameLift can support long term servers and session-based server and mix. What you would do is a "persistent server" be a fleet on to it self, where you can set the min number of server to 1, and disable auto-scaling.
- no matter the option that you go with, you should have the server client submit that data to like a database or http end point, because most OS really dont like the idea of reading memory(data) from a process(hackers would have a field day if that was possible).
Most of the data that you have comes into two flavors: static data, and changing data. The static data(like server name, region, last wipe time, max player), the server client can submit when the server client boot up. You can give the server client an id that links to your records about the server(that links to server name, region, max player), then it just tells you when it bootup again(that way your records can calculate the next boot time. This solution pushes alot of the info from the server and to your database/record, that way it safe if the server ever get hacked and what not. For the current number of players you can have the server give you that information on like 5 mins base.
Another thing to bear in mind is that all compute is fallible. You do need to plan for instances that go bad due to memory, thread leaks etc, network failures that prevent communication or instances that require reboots due to security patching etc.
So you should have a plan for instance migration of your simulation/persistent data so players get the experience you want.
My two cents on your questions
- You could use GameLift for a persistent worlds but I would make sure you are getting value add out of it. Are there other GameLift features that make sense to you ie player latency matching, Flexmatch etc? Note that GameLift is not going to be able to transfer your world data or players if you need to migrate an instance (in GameLift terms they would just start a new session on a new instance).
Scaling/Flexmatch could still help you if you are grouping x players per server. What happens when more players come to your game? Do you need to spin up new worlds for them, are they on slices of the same world instance? What happens when your player population falls?
Theres lots of ways of achieving this. You could do things via ServiceManager/SSM https://aws.amazon.com/systems-manager/ and step functions (if you want a poll model/query model). As @REDACTEDUSER
[quote="Bry, post:1, topic:10034"] PS. We’re developing our game using Unreal Engine [/quote]
To allow your server client to talk to your backend services, I would recommend VaRest pluging, and wrap the calls into a server only module since your game client wont need this code. This Plugin allows make rest calls from UE4 and parse json response
This is Advice i got from game tech solutions Architect.
The gamelift is for session based if you are hosting matchmaking, or games like Call of Duty,
If you want to host games like GTA or Minecraft , you would use EC2.
Both are able to be scaled, and you can allow people to use the same image to host on AWS with them being charged (For if you want users to host lobbies as well).
If you want more help, feel free to reach me in the Lumberyard Discord, :)
Can I run more than one game session on a single game server process?Accepted Answerasked 6 years ago
Unreal engine multiple dedicated server instancesasked 3 years ago
GameLift Client rejected because Game Session is FULLasked 5 months ago
How to create a client authoritive player for a multiplayer gameAccepted Answerasked 5 years ago
Persistent Servers - GameLift or EC2 Only? (newb questions)asked 2 years ago
Servers Functionality... A manager?asked a year ago
What exactly is the difference between Custom vs Realtime servers in gamelift?asked 9 months ago
Amazon Gamelift: How to tell what VPC the servers are running in - Verifying Servers' access to backend servicesasked 2 months ago
GameLift - Custom server executable can't seem to access a .dll in the game folderasked 6 months ago