Questions in Game Tech
Content language: English
Sort by most recent
Why isn't Amazon Linux 2022 available with Gamelift?
The "Comparing Amazon Linux 2 and Amazon Linux 2022" page at https://docs.aws.amazon.com/linux/al2022/ug/compare-al2-to-AL2022.html says: > Amazon Linux 2022 optimizes boot time to reduce the time from instance launch to running the customer workload. As such, this would be great for GameLift usage as it takes quite a while to launch instances in my experience. However, when using the AWS CLI to upload a build, the output for the "--operating-system" parameter only allows AMAZON_LINUX, AMAZON_LINUX_2 (and windows). Why is this? When will Amazon Linux 2022 be available with GameLift?
How to Enable Fleet Autoscaling in Gamelift?
So we have a game that we are soon going to roll out for beta testing and would like to know how to enable the autoscaling feature? Right now, Under scaling section for the fleet in Frankfurt region, I am shown that I can have only 1 server and when I enable the autoscaling feature, the desired number of servers under scaling limits turns to 0 and no player session is able to be activated throwing FleetExceptionError. So as a team planning to launch a battle royale game, for us we don't mind the max number of services we need as we expect exponential growth in players once we roll out the game, But this available servers=0 is a concern we would like to know how to address. Any help will be much appreciated. ![Enter image description here](/media/postImages/original/IMKfFea85xQv6FxbIBRXWUaQ)
Server Logs missing in Gamelift session
So, I have a few server sessions that got crashed and would like to know how to save logs in Gamelift. Right now, when I downloaded the logs for the sessions that crashed, the readme file inside zip is showing Game Server Logs: Error: Missing file/directory C:\game\GameName\Binaries\Win64\aLogFile.txt
Best practice for uploading new server builds to Gamelift
I'm trying to understand the proper protocol for uploading new server builds to gamelift. My understanding is as follows 1. Package the server locally 2. Upload a build to gamelift 3. Delete existing fleets 4. Create a new fleet with the same configuration as the old fleet, except with the newer build 5. Replace references to fleets within lambdas. ([here's an example of an official AWS source providing a script with a hardcoded fleet ID](https://github.com/aws-samples/amazon-gamelift-unreal-engine/blob/main/lambda/GameLiftUnreal-StartGameLiftSession.py) linked to from [this tutorial](https://www.youtube.com/watch?v=_EynplPECNk&list=PLuGWzrvNze7LEn4db8h3Jl325-asqqgP2&index=5)) 6. Redeploy lambdas This seems excessive - deleting and deploying a new fleet both take a long time. Since each fleet will have the same configuration as the last one, manually re-entering this information and having to replace code in lambdas seems prone to human error. Is there no way to update the build on a fleet? Should I be programmatically fetching the fleet ID somehow in my lambdas? If I am forced to delete and re-create new fleets with identical configurations, is there a good way to ensure new fleets are configured correctly?
OnStartGameSession Not Triggering
Hello, We're using a fresh Third Person Template in Unreal Engine 5, setup everything from this documentation link https://docs.aws.amazon.com/gamelift/latest/developerguide/integration-engines-setup-unreal.html After uploading the build to Amazon GameLift and creating a fleet from it, we get 2 clients to start matchmaking (our matchmaking rules require 2 players atm), the matchmaking ticket is stuck on PLACING and it's because the game session in the fleet is stuck in Activating state. Added prints inside the OnStartGameSession lambda and it seems that it's not printing in the server logs. We're using flexmatch with a queue pointing to an alias that is pointing to the fleet. What could the issue be? Thanks in advance. Elie
Existing Lambda app - GameKit or GameSparks?
I have an NodeJS Express API running on Lambda and I can successfully access its endpoints through API Gateway. I'm looking to use this as a backend for a Unity game. I've been reading both GameKit and GameSparks docs and it seems to me that GameSparks it's more suit for connecting to an already existing Lambda app. For what I've learned, to do that with GameKit I would need to create custom features and that would include some C++ coding. Am I in the right thought process? Thanks a lot.
Amazon Gamelift: How to tell what VPC the servers are running in - Verifying Servers' access to backend services
Hello, An expansion to an original question: https://repost.aws/questions/QU0MPwSTJGQhKDcl9Zw1e_zQ/aws-game-lift-server-best-solution-for-generating-and-rotating-api-keys-for-aws-server-authentication Is there a way to find which VPC and addresses the individual game servers are running on within Gamelift? Actually, in writing this, I found this thread as well: https://repost.aws/questions/QUoLdwDhJRSCy4EhLSJwzvxw/running-a-proxy-process-on-gamelift We are just trying to make sure that certain calls to our backend services originate from within the actual servers running within game lift and not via an outside client. UE4 packages the server and client code together, so we just want an extra layer of security check.
Use built-in Target Based Auto Scaling of Fleet when an outside service (not custom) is managing sessions and matchmaking
**Use case**: Trying to implement GameLift managed fleet (✔) with built-in auto-scaling (❌) when using another service initially for session management and matchmaking. **TL;DR**: I'm looking for effectively a Server SDK CreateAndActivateGameSessionFromMe() call that will allow GameLift to know a session is active so that it can do Target Based Auto-Scaling based on % Available Sessions. --- As phase 1 of implementing GameLift, we are looking to keep the existing service for session management and matchmaking. I have this working on a Fleet with manual scaling. The sessions all register with the existing (non-custom) service and sessions are found and joined via mechanisms on that service. GameLift Fleet very efficiently keeps the target number of servers and game processes per server running. I would like to add the Target Based Auto-Scaling but I don't think it's possible without abandoning the other service entirely. This might be an option in the long run, but being able to just add the auto-scaling would speed up the initial GameLift adoption. GameLift Target Based Auto-Scaling is based off available sessions. This seems then to require at the very least the use of the Game Session Management layer in addition to Infrastructure. Looking at https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-api-interaction-vsd.html. If there is a mechanism where the loaded game process upon activation by the other service could register with GameLift as active, it would allow use of the Target Based Auto-Scaling for % available sessions. But I can't find a way to do that. CreateGameSession() as shown in the docs and the Server API interaction diagram linked above tells GameLift to find an available session in the Fleet. I can't specify a session to activate. I'm looking for effectively a Server SDK CreateAndActivateGameSessionFromMe() call. The Server SDK call ActivateGameSession() will return an error about the process not having an associated Game Session ID if I call it not in response to CreateGameSession()/onActivateGameSession(). Is there an option or do I need to implement custom auto-scaling by monitoring the game sessions and then modifying desired count in the fleet to auto (but not GameLift auto)-scale?
How to terminate a GameLift session at the end of a Game?
I would like to know the Gamelift server SDK function that can be used to terminate a session if all the players in the game exits or say the game has been finished. Right now, I have a session that I created few days back which is still running without terminating which is not good for me. Any help would be highly appreciated.
Connection TimeOut/ Packet loss when connecting to AWS Gamelift server.
I am uable to connect to the server on my UE5 client. I receive the Ip address from GameLift and I try to travel my client to the IP address using OpenLevel. Buiy I am getting some logs mentioning connection timeout/packet loss. Any idea why? I am putting my logs here after I use OpenLEvel. LogAudioMixer: Display: Starting AudioMixerPlatformInterface::RunInternal(), InstanceID=10 LogNet: UNetDriver::TickDispatch: Very long time between ticks. DeltaTime: 0.01, Realtime: 7.11. IpNetDriver_0 LogNet: UNetDriver::TickDispatch: Very long time between ticks. DeltaTime: 0.01, Realtime: 9.31. IpNetDriver_0 LogAnalytics: Warning: EventCache either took too long to flush (1.045 ms) or had a very large payload (0.436 KB, 1 events). Listing events in the payload for investigation: LogAnalytics: Warning: Editor.Usage.Heartbeat,433 LogNet: UNetDriver::TickDispatch: Very long time between ticks. DeltaTime: 0.01, Realtime: 8.39. IpNetDriver_0 LogNet: UNetDriver::TickDispatch: Very long time between ticks. DeltaTime: 0.01, Realtime: 15.43. IpNetDriver_0
Need help to determine why some of game sessions in GameLift fleet are running forever.
I'm using Gamelift as dedicated server for my multiplayer game. Everything works well, just one problem: in my game fleet dashboard, sometime for unknow reason, some game session are running forever, doesn't shutdown. Please see my attached screenshot below. I've tried every way I can think to terminated a game session. even I write a script to report game session as unhealthy if the game session is running for more than 2 hours, but it seem doesn't work. Is there anyway I can check what happend for these game session? Or how can I check log to see what's the error? (because the game session does not shutdown so I can't see log). Here is some additional information about my game fleet: Fleet id: fleet-91342684-5597-4fbe-9854-51f4aa1fc0e4 Example a game session that doesn't shutdown: session id: arn:aws:gamelift:ap-southeast-1::gamesession/fleet-91342684-5597-4fbe-9854-51f4aa1fc0e4/669aa29f-eb0d-4f46-b52b-7a456c2a3354 ip: 18.104.22.168 port: 8127 Thank you very much for your help! I've been struggled with this problem for months :D ![Enter image description here](/media/postImages/original/IMI1xudcA3Qju4ufawKFYJPQ)