By using AWS re:Post, you agree to the Terms of Use
Questions in Game Tech
Sort by most recent

Browse through the questions and answers listed below or filter and sort to narrow down your results.

[Guide] Building GameKit for arm64 (Unreal)

Prerequisites: * Check outtag v1.1.0 (https://github.com/aws/aws-gamekit/tree/v1.1.0) (this is the most recent tag that works with the Unreal plugin) * AWS C++ SDK must be using tag 1.9.185 Changes to build steps found in README.MD: 1. In all build steps where ```ANDROID_ABI=armeabi-v7a``` appears change it to ```ANDROID_ABI=arm64-v8a``` 2. In all build steps where ```ANDROID_API_LEVEL=24``` appears change it to ```ANDROID_API_LEVEL=X``` where ```X``` is the API level you want to build for (this step is only needed if you want to build for another API level). 3. For BOOST build, replace ```user-config.jam``` with the following: ``` import os ; local NDKRoot = [ os.environ NDKROOT ] ; local ClangBin = [ os.environ CLANGPATH ] ; local AndroidApiLevel = [ os.environ ANDROID_API_LEVEL ] ; using clang : arm64 : $(ClangBin)/aarch64-linux-android21-clang++.cmd : <cxxflags>-std=c++11 <archiver>$(NDKRoot)/toolchains/aarch64-linux-android-4.9/prebuilt/windows-x86_64/bin/aarch64-linux-android-ar <ranlib>$(NDKRoot)/toolchains/aarch64-linux-android-4.9/prebuilt/windows-x86_64/bin/aarch64-linux-android-ranlib ; ``` 4. And build with ```./b2 toolset=clang-arm64 target-os=android architecture=arm address-model=64 --without-python threading=multi link=static --layout=tagged variant=debug,release``` 5. In GameKit C++ codebase, open scripts\Android\regenerate_android_projects.bat and set ```ANDROID_ABI=arm64-v8a, DBoost_ARCHITECTURE="-a64"``` and ```ANDROID_API_LEVEL=X``` (API level change is only needed if you want to build for a different level) 6. Rebuild GameKit C++ with ```python scripts\aws_gamekit_cpp_build.py Android Release``` and copy the libraries to the Unreal plugin directory with python ```scripts\refresh_plugin.py —platform Android Release —unreal_plugin_path [Path to Unreal Project]\Plugins\AwsGameKit``` 7. Modify ```[Path to Unreal Project]\Plugins\AwsGameKit\Source\AwsGameKitCore\AwsGameKitCore.Build.cs``` to point to 64 bit versions of Boost libraries by changing lines 166-167 to ``` libs.Add("libboost_filesystem-mt-d-a64.a"); libs.Add("libboost_iostreams-mt-d-a64.a"); ``` and 172-173 to ``` libs.Add("libboost_filesystem-mt-a64.a"); libs.Add("libboost_iostreams-mt-a64.a"); ``` 8. In Unreal’s Project Settings enable Support for arm64 by navigating to Platforms/Android and clicking on “Support arm64 (aka arm64-v8a) 9. Package your game project for Android
0
answers
0
votes
40
views
asked a month ago

Amazon GameLift now supports support for AWS Local Zones

Hello GameLift Devs, Today, the GameLift team is excited to announce the general availability of AWS Local Zones. With this update, you can seamlessly provide gameplay experiences across 8 new AWS Local Zones in Chicago, Houston, Dallas, Kansas City, Denver, Atlanta, Los Angeles, and Phoenix. Along with the updated support for Local Zones, we are adding new instance types specifically supported in the various Local Zone Regions, including C5d and R5d instance types. Additionally we are adding support for the next generation [C6a](https://aws.amazon.com/ec2/instance-types/c6a/) and [C6i](https://aws.amazon.com/ec2/instance-types/c6i/) instance types. Amazon EC2 C6i instances are powered by 3rd Generation Intel Xeon Scalable processors and deliver up to 15% better price performance compared to C5 instances for a wide variety of workloads and are ideal for highly scalable multiplayer games. You can find updated pricing on the [GameLift pricing page](https://aws.amazon.com/gamelift/pricing/) as well as in the [AWS Pricing Calculator](https://calculator.aws/#/addService/GameLift). For more information, please refer to our [Release Notes](https://docs.aws.amazon.com/gamelift/latest/developerguide/release-notes.html#release-notes-summary) and [What’s New post](https://aws.amazon.com/about-aws/whats-new/2022/08/amazon-gamelift-supports-aws-local-zones/). Mark Choi, GameLift PM
0
answers
1
votes
50
views
asked a month ago

Building the AWS C++ SDK with CUSTOM_MEMORY_MANAGEMENT on fails unit tests

I am trying to build the AWS C++ SDK to use with the Unreal game engine. I have been using it for a while, however after recently updating my Unreal plugin with the latest SDK components, I ran into issues (crashes) because Unreal has its own custom memory management which does not seem compatible with the AWS SDK's. To resolve this I have tried to override AWS's memory manager with one compatible with Unreal, by implementing `Aws::Utils::Memory::MemorySystemInterface` and calling `Aws::Utils::Memory::InitializeAWSMemorySystem(AWSMemoryManager);` This, however, doesn't work unless the SDK has been built with the `CUSTOM_MEMORY_MANAGEMENT` flag. So, I went back to the SDK and tried to build it with custom memory management on with the following commands: ``` cmake.exe "../aws-sdk-cpp" -DCMAKE_BUILD_TYPE=Release -DBUILD_ONLY="core;firehose;cognito-identity" -DCUSTOM_MEMORY_MANAGEMENT=1 -DCPP_STANDARD=17 -DENABLE_UNITY_BUILD=1 MSBuild.exe ALL_BUILD.vcxproj -p:Configuration=Release ``` However, this seems to result in aws-core failing its unit tests. I get the following errors: ``` ...\AWS\sdk\aws-sdk-cpp\aws-cpp-sdk-core-tests\RunTests.cpp(40): error : Expected equality of these values: [...\AWS\sdk\membuild\aws-cpp-sdk-core-tests\aws-cpp-sdk-core-tests.vcxproj] memorySystem.GetCurrentOutstandingAllocations() Which is: 37 0ULL Which is: 0 ...\AWS\sdk\aws-sdk-cpp\aws-cpp-sdk-core-tests\RunTests.cpp(40): error : Expected equality of these values: [...\AWS\sdk\membuild\aws-cpp-sdk-core-tests\aws-cpp-sdk-core-tests.vcxproj] memorySystem.GetCurrentBytesAllocated() Which is: 3472 0ULL Which is: 0 ...\AWS\sdk\aws-sdk-cpp\aws-cpp-sdk-core-tests\RunTests.cpp(40): error : Value of: memorySystem.IsClean() [...\AWS\sdk\membuild\aws-cpp-sdk-core-tests\aws-cpp-sdk-core-tests.vcxproj] Actual: false Expected: true ``` Does anyone have any clue why these unit tests are failing and how I can go about resolving it?
0
answers
0
votes
24
views
asked a month ago

AWS Game Lift Server: Best Solution for Generating and Rotating API Keys for AWS Server Authentication?

We are currently setting up some authentication systems for our UE4 game servers so that we are sure they are the only devices/users that are capable of accessing our internal API / LAMDBA functions. With that in mind, there is a desire to not hard code any COGNITO user ID's or tokens into the actual server-code itself. Instead, we would like to pursue having these tokens be generated and cycled through on AWS's side, to keep it decoupled. We are undecided whether these tokens should be for the life of the Gamelift server or for a set period of time—whichever is most feasible. This way, if we need to adjust access to certain features down the road, it will not require an update to the deployed Unreal Engine server build. Does AWS API or LAMDBA have any features out of the box to check if an API request is coming from within AWS, ideally from one of the active Gamelift instances? While we may still need to create a COGNITO identity for the servers, or just check the local IP of the running Gamelift servers, the ideal flow would look like: 1) UE4 game server on AWS asks for a token on Startup. 2) LAMDBA Authorization script checks to make sure it is valid and coming from within AWS/Gamelift 3) Once Validated, LAMDBA function provides a token to enable server to use in backend LAMDBA functions. 4) Before Gamelift Server shutdown, revoke access or add to a "black-listed" token Database to prevent second use before token expiration.
1
answers
0
votes
48
views
asked 2 months ago