Browse through the questions and answers listed below or filter and sort to narrow down your results.
Is it safe to give my AWS account credentials to AWS GameKit in the game engine? (Access Key ID and Secret Access Key)
Is it safe to give my AWS account credentials to AWS GameKit in the game engine? (Access Key ID and Secret Access Key)
Accepted AnswerAWS GameKit
1
answers
0
votes
16
views
asked 2 months ago
error "Server process exited without calling ProcessEnding" shows up even I confirmed process ending is called in auxproxy.log with UE5.0.1 release
from [this image](https://drive.google.com/file/d/1bdWuDc0BITyey8AZKKidYbgjHQsudlhT/view?usp=sharing), we can see that the game session, 53E1A6ED-EB5B-418A-89E8-D773682B70AB in the fleet fleet-76e80f57-a589-444f-ba49-664672c2f9e6 didn't call process ending before terminate the process. But when I check the logs in auxproxy.log in /local/whitewater/Logs/, [here](https://drive.google.com/file/d/1FNdQBaqWtTGv75phG0z6cXsocyA4MgX4/view?usp=sharing), we can see the game session 53E1A6ED-EB5B-418A-89E8-D773682B70AB is the process fb528fcf-ac19-45d0-9750-a28bebf4da11 in the fleet instance. But from [here](https://drive.google.com/file/d/1tBr5YfWx26eGc8I-2jbPs3GXwRqrQZx2/view?usp=sharing), we do see the it has received the process ending message for process fb528fcf-ac19-45d0-9750-a28bebf4da11. And the process is closed hundreds milliseconds after "Marking process fb528fcf-ac19-45d0-9750-a28bebf4da11 as unavailable for game sessions" log is printed.
it only happens on UE5.0.1 release. Can you tell me how it determine the process closed without calling process ending? is there any other condition except process ending is called or not?
thanks.
Accepted AnswerAmazon GameLift
1
answers
0
votes
40
views
asked 3 months ago
1
answers
1
votes
14
views
asked 3 months ago
Turning off automatic backfill near end of game session (FlexMatch matchmaking)
Hi, I have enabled "automatic backfill" in my matchmaking configuration per the instructions in the docs: "Turn on automatic backfill" section of [https://docs.aws.amazon.com/gamelift/latest/flexmatchguide/match-backfill.html](https://docs.aws.amazon.com/gamelift/latest/flexmatchguide/match-backfill.html). The backfilling itself works well. Calls from my client service to "StartMatchmaking" will, when expected, return a match to an existing game session. The problem I'm trying to solve now is that I don't want players to be backfilled into a game that's almost over. Item #4--"Turn off automatic backfill for a game session"--doesn't seem to work when I try to implement it on my game server:
> **4. Turn off automatic backfill for a game session**. You can opt to stop automatic backfill at any point during an individual game session. To stop automatic backfill, add code to your game client or game server to make the GameLift API call StopMatchmaking. This call requires a ticket ID. Use the backfill ticket ID from the latest backfill request. You can get this information from the game session matchmaking data, which is updated as described in the previous step.
What confuses me here is that I want to stop backfilling near the end of the game regardless of whether the game session has backfilled any players yet. The line "Use the backfill ticket ID from the latest backfill request" doesn't make sense if no backfill tickets have been received in the game session.
Intuitively, it feels like there should just be some API I can call that opts a particular game session out of future backfill requests but I'm not seeing it.
Any help would be greatly appreciated.
Accepted AnswerAmazon GameLift
6
answers
0
votes
15
views
asked 3 months ago
Gamelift DescribePlayerSessions and synchronization
Hi,
In order to notify gamelift that players are accepted by my server, I have to call AcceptPlayerSession with a player session id.
To obtain this player session id, I am using DescribePlayerSessions with the connecting player id as parameter.
1)I am wondering whether DescribePlayerSessions is the prefered method to obtain player session ids. If not do I have other ways?
2) Am I guaranted that by the time a player connects (which means that flexmatch successfully placed the player), DescribePlayerSessions will actually return the player session id or do I have to periodically poll?
To add some context, I'm using both Gamelift and Flexmatch.
Thanks,
Nicolas.
Accepted AnswerAmazon GameLift
2
answers
0
votes
11
views
asked 3 months ago
1
answers
0
votes
26
views
asked 3 months ago
1
answers
0
votes
41
views
asked 3 months ago
1
answers
3
votes
32
views
asked 3 months ago
Is there an event for game session termination?
Hello!
I'm trying to migrate my current dedicated server from playfab to gamelift, and Playfab had an event for session closing, that I could catch in cloud code. I've used this to handle reconnecting of players who had some network issues/crashing.
So far I've found nothing similar in gamelift. Is there a way to get an event out to lambda or SNS every time a game session closes (for any reason, ended, crashed, terminated, all need to be caught)?
Thank you!
Accepted AnswerAmazon GameLift
6
answers
0
votes
19
views
asked 3 months ago
No available process when using GameLiftLocal
Hello!
I've started getting this error when calling aws gamelift create-game-session for GameLiftLocal
`"ERROR || - [GameLiftHttpHandler] Thread-36 - No available process."`
This is the full command I'm using. Previously this hasn't given me any issues:
`aws gamelift create-game-session --endpoint-url http://localhost:9080 --maximum-player-session 8 --fleet-id fleet123`
Any ideas why this would suddenly give me issues? Have tried restarting my PC multiple times.
Accepted AnswerAmazon GameLift
1
answers
0
votes
33
views
asked 4 months ago
Flexmatch - Filling a session to full in backfill whilst in Standalone mode
Hi,
The documentation for backfill implies that it is useful for starting sessions with less than idea number of players and then ramping up to more players as the session goes on. It's unclear how this is accomplished when using Flexmatch in Standalone mode at the moment.
Suppose a situation where I have three tickets in the pool. The ruleset specifies that a match's team (for the sake of argument we'll say there is only one team here) can have between five and ten players.
Ticket A has 3 players.
Tickets B and C have 2 players.
The expected outcome is that A, B and C can all fit into a match. Given the ruleset, it's not unexpected that only A and B make it in on the regular matchmaking process, leaving C out.
If I submit this match back into the pool as a backfill, my expectation is that C then makes it in, as that would put the match count to 7, which is within the range.
However, what I've observed in test is that C never gets in. It seems like, because the session is valid (5-10 players, five are in), Flexmatch never considers adding C to it.
I'm wondering if this is a limitation of Flexmatch in Standalone mode?
Thanks,
Hannah
Accepted AnswerAmazon GameLift
2
answers
0
votes
1
views
asked 4 months ago
1
answers
0
votes
32
views
asked 4 months ago
Connection problem between two users in a UEProject with GameLift
Hi guys, good morning!
I'm having a problem and I'm confused...
When I'm trying to connect two users in a dedicated server from my build project, the message sended from amazon is this:
REMOVEDUPLOAD
However, after a few seconds, it returns me to the join the game screen instead of traveling to the third person example map.
REMOVEDUPLOAD
I went to the virtual machine to see the logs and this is what returns it...
REMOVEDUPLOAD
When I made all this sequence, my game sessions are created, so I have to delete modifying scaling parameters of my fleet
REMOVEDUPLOAD
Btw, you look that? 2 player sessions has been created and can't use them... I don't understand what's happening...
Accepted AnswerAmazon GameLift
2
answers
0
votes
4
views
asked 7 months ago
UE4+Gamelift client connection fails
Hello!) I have an issue with client/server connection. I created a game session, reserved a player session, got the URL for a client. But when the UE4 client calls ClientTravel("ip+port+?+PlayerSessionId=...), the server's game mode doesn't fire either Login() or PreLogin() functions. Because of that, I can't get a PlayerSessionId from the "Options" argument and validate the PlayerSesssion on the server and Gamelift closes it after 1 minute. When I run a server locally without Gamelift, "Login()" fires as expected. Gamelift health check works great in the server's game mode as well. Please help!
Accepted AnswerAmazon GameLift
1
answers
0
votes
30
views
asked 7 months ago
GameLift architecture
Guys, good afternoon! I wanted to know a little more about all this architecture to close some ideas and I have some (a little silly) questions that I want to ask.
When you create a fleet of instances in Amazon GameLift, what does the game session represent?
Is it an instance of the instances given by the fleet?
And the player session? Is it another extension but given by the game session? I'm right?
Accepted AnswerAmazon GameLift
1
answers
0
votes
5
views
asked 7 months ago
Unable to reserver a process on fleet ( FleetCapacityExceededException)
I have created a game fleet for my game. In Fleet Setting, i set concurrent process to 10.
REMOVEDUPLOAD
Here is my game fleet status. I see that there are 4 active instances. But when client send request to create new game session, sometime i got this exception:
REMOVEDUPLOAD
What's the reason? I don't see anything wrong with my fleet setting. Why no active and available server processes found on my fleet? How to fix that error?
Please help me beacuse my project gonna to launch into production.
Thank you very much!
Accepted AnswerAmazon GameLift
6
answers
0
votes
31
views
asked 7 months ago
Starting with Amazon GameLift
Hi guys! I'm starting to use Amazon GameLift with Unreal Engine, learning about dedicated servers, so I was reading documentation but I don't understand when billing starts or if I can do this practice using some free tier. So if someone with experience in Amazon GameLift billing can provide me with any information, I'll appreciate it. Thanks!
Accepted AnswerAmazon GameLift
1
answers
0
votes
9
views
asked 7 months ago
Queue priorities with Spot fleets
Hi.
According to documentation: https://docs.aws.amazon.com/gamelift/latest/developerguide/queues-best-practices.html#queues-design-spot
>* When configuring priorities for a queue with Spot fleets, place cost near the top of the list. This will ensure that locations on Spot fleets will always take precedence over locations on On-Demand fleets, when available.
Also: https://docs.aws.amazon.com/gamelift/latest/developerguide/tutorial-queues-spot.html
> Prioritize the fleets in your queue. Fleet prioritization determines where the queue looks first when searching for available resources to host a new game session. You might choose to prioritize by Region, instance types, fleet type, and so on. When working with Spot fleets, we recommend either of the following approaches:
> * If your infrastructure uses a primary Region with fleets in a second Region for back-up only, you want to prioritize fleets first by region, and then by fleet type. With this approach, all fleets in the primary Region are placed at the top of the list, with Spot fleets followed by On-Demand fleets.
> * If your infrastructure uses multiple Regions equally, you want to prioritize fleets by fleet type, placing Spot fleets at the top of the list.
I have a setup with 10 fleets (5 per region):
1 x On-Demand - c5.xlarge
4 x Spot - c5.xlarge, c5.2xlarge, r5.xlarge, m5.xlarge
I've placed the On-Demand fleets last in the Queue and still the players are routed to those two On-Demand fleets instead of Spot ones. We are making the placements based on reported player latency.
What am I missing? What is the explanation for this behavior?
Thank you.
Accepted AnswerAmazon GameLift
1
answers
0
votes
0
views
asked 8 months ago
Running container-based games on GameLift
Hi everyone!
Since GameLift has a limit of up to 50 game sessions per hardware node, I am trying to find anyway, how can I run more than 50 sessions per node (since the limit of 50 game sessions per node is a REALLY huge waste of resources for my lightweight game).
The suggested way was to manage set up FleetIQ manually with EC2 machines (possibly with some built-in autoscaling mechanism). This way should work for us, except for one thing - in this case, we need to run raw binaries instead of containers.
If we use simple binaries, we need to work somehow with monitoring, logging, implementing blue-green or canary deployments, and so on. All these concerns can be solved in an easier way by using containers. With the "containers" word I mean Docker container in this case.
But running containers on raw EC2 instances seems like is not convenient enough: implementing things like blue-green or canary deployments is not really trivial, etc.
I am thinking about the way with AWS ECS, based on EC2 instances. In this case, I can run 1 game session per container as much per node as I can. Fargate is not applicable in my case since the minimal limits for Fargate tasks are too huge for us and it will be a waste of computing resources again.
My question is: Can I use GameLift with ECS at the same time? Why I want to use GameLift: it provides more robust Spot instances and these instances will be more suitable for the game.
P.S. I also thought about AWS EKS with something like Agones but it's overkill for us, and managing EKS for us is too complex a task.
@REDACTEDUSER
Accepted AnswerAmazon GameLift
2
answers
0
votes
9
views
asked 8 months ago
Introspection on GameLift EC2 instance
We have a number of different accounts, A1, A2, AN, ("tiers", dev, test, live, etc) and they all contain builds and fleets, which then get instantiated in AWS managed accounts B1, B2, BN. I've tried manually assuming the fleet-******
I can get EC2 instance meta-data, so I can figure out the account ID of B1-Bx, but since I never know these up-front, I can't easily create a mapping back to A1-Ax, which makes it impossible to determine a) which role I can assume, and also b) which backend tier to connect to, without making individual builds for each tier.
I tried using tags, but the instance role has no access, and I don't know if any of the build or fleets tags get applied to the EC2 anyway. If I defer things to after servers have started up, I could theoretically make a late binding from server IP to instance, but it happens a bit later than I would prefer.
Cheers!
Accepted AnswerAmazon GameLift
4
answers
0
votes
0
views
asked 9 months ago
Retrieving DNS Name and Port Before the onGameSessionStart Callback
I am currently writing a server using the C# SDK. I would ideally like to retrieve the DNS Name and Port of the process before calling ProcessReady(), as there is some initialization I would to do with that information. Is this possible? Am I misunderstanding a part of the process?
Thanks for the help!
Accepted AnswerAmazon GameLift
2
answers
0
votes
1
views
asked 9 months ago
DesiredEC2Instances ignored in multi-location CloudFormation deployment
We have a CloudFormation GameLift Fleet template with this multi-location setting:
```
....
"Locations": [
{
"Location": "us-east-1",
"LocationCapacity": {
"DesiredEC2Instances": 1,
"MinSize": 0,
"MaxSize": 10
}
},
{
"Location": "us-west-2",
"LocationCapacity": {
"DesiredEC2Instances": 0,
"MinSize": 0,
"MaxSize": 10
}
},
{
"Location": "eu-west-1",
"LocationCapacity": {
"DesiredEC2Instances": 0,
"MinSize": 0,
"MaxSize": 10
}
}
],
...
```
After stack deployment, the fleet has the correct locations and respective min/max instances, but desired instances is set to 1 for all locations.
I am able to fix it in the AWS console post-deployment, but obviously this isn't ideal.
Have I misunderstood how this CloudFormation property works? Or is this a known bug?
Accepted AnswerAmazon GameLift
2
answers
0
votes
1
views
asked 9 months ago
Player Session Rejected
Hello everyone,
I have a problem that the function 'AcceptPlayerSession()' throws an error.
I have checked this many times. The function is definitely passed the correct PlayplayerSessionId.
gameSession is created or joined successfully, aswell as the playerSession.
I see that in my game/server logs.
REMOVEDUPLOAD
My gamelogs in game confirm
Same PlayerSeassion on aws web panel
REMOVEDUPLOAD
This is the error on Server/Gamelift
```
[ServerModule] Connection String - psess-309b9c98-e4f1-4aa6-aa18-edd8bcd8cf08
[GameLift] AcceptPlayerSession request with playerSessionId=psess-309b9c98-e4f1-4aa6-aa18-edd8bcd8cf08
[GameLift] Player Session Rejected. AcceptPlayerSession Result : [GameLiftError: ErrorType=GAMESESSION_ID_NOT_SET, ErrorName=GameSession id is not set., ErrorMessage=No game sessions are bound to this process.]
[ServerModule] Disconnect Client from server - clientId : 2, playerSessionId : psess-309b9c98-e4f1-4aa6-aa18-edd8bcd8cf08
[ServerModule] On Client Connected - 2
[ServerModule] On Client Disconnected - 2
```
My fleetID=fleet-******
GameSeassion=arn:******
Accepted AnswerAmazon GameLift
5
answers
0
votes
16
views
asked 10 months ago