How To Make A Multiplayer Game With Unreal Engine and Amazon GameLift (Part 10 - Linux)

Ғылым және технология

Watch Part 9 here: • How To Make A Multipla...
This video is the tenth part of an extensive and informative tutorial on how to integrate Amazon GameLift with Unreal Engine, going over concepts such as building the GameLift Server SDK library files for Linux, cross-compiling and packaging a Unreal Engine game server for Linux, uploading that Linux server build to GameLift, creating a fleet out of that server build, and remotely connecting to a Linux EC2 instance in our GameLift fleet. In the process, we installed the Ubuntu Windows Subsystem for Linux, tested our Linux game server by using Windows game clients to connect to the server (cross-platform development), and looked at server logs while ssh'd into a Linux EC2 instance.
Watch Part 11 here: • How To Make A Multipla...
How to support the channel:
Get a shirt or sweatshirt: teespring.com/stores/flopperam
Become a member: / @flopperam
Support us on Patreon: / flopperam
Donate to our PayPal: www.paypal.me/flopperam
Sponsor us on Github: github.com/sponsors/chris-gong
Social media links:
Discord: / discord
*********IMPORTANT LINKS*********
Github repository containing all the Unreal Engine project code: github.com/chris-gong/gamelif...
Github repository containing all the Lambda code used throughout this tutorial series: github.com/chris-gong/gamelif...
Enabling windows subsystem for linux through powershell: docs.microsoft.com/en-us/wind...
Microsoft Windows App Store: www.microsoft.com/en-us/store...
Ubuntu on WSL: ubuntu.com/wsl
Upgrading from WSL 1 to WSL 2: docs.microsoft.com/en-us/wind...
Part 2 of the tutorial series (watch from 5:15 to 7:30): • How To Make A Multipla...
How to enable ctrl shift c/v for copying/pasting in the windows ubuntu terminal: www.howtogeek.com/353200/how-...
libaws-cpp-sdk-gamelift-server.so file: github.com/chris-gong/gamelif...
Cross compiling for Linux: docs.unrealengine.com/en-US/S...
Install.sh shell script: gist.github.com/chris-gong/fa...
Creating a new IAM user (watch from 3:05 to 4:15): • How To Make A Multipla...
All AWS Free Tier services by usage: console.aws.amazon.com/billin...
Figure out your ip address for remote access: whatismyipaddress.com/
How to fix "Windows SSH - Permissions for 'private-key' are too open" error: superuser.com/questions/12960...
********COMMANDS FOR UBUNTU TERMINAL USED IN THIS VIDEO*********
clear
echo 'we love flopperam'
sudo apt update
sudo apt upgrade
sudo apt install cmake
sudo apt install build-essential
wslpath '[windows-path]'
cd [path]
cd '[path-with-spaces]'
rm -rf out
mkdir out
cmake -DBUILD_FOR_UNREAL=1 ..
make
vim [name-of-file]
sudo apt install awscli
aws configure
aws gamelift upload-build --name GameLiftTutorial --build-version [build-version]
--build-root [path-to-linux-server-build-directory] --operating-system AMAZON_LINUX --region [region]
aws gamelift describe-instances [fleet-id]
aws gamelift get-instance-access --fleet-id [fleet-id] --instance-id [instance-id] --query "InstanceAccess.Credentials.Secret" --output text [greater-than-sign] [private-key-file].pem
chmod 400 [private-key-file].pem
aws gamelift update-fleet-port-settings --fleet-id [fleet-id] --inbound-permission-authorizations "FromPort=22,ToPort=22,IpRange=[local-ip-address]/32,Protocol=TCP"
aws gamelift update-fleet-port-settings --fleet-id [fleet-id] --inbound-permission-authorizations "FromPort=22,ToPort=22,IpRange=0.0.0.0/0,Protocol=TCP"
sudo ssh -i [private-key-file].pem gl-user-remote@[remote-ip-address]
ls
exit
********COMMANDS FOR VIM TERMINAL USED IN THIS VIDEO*********
i
escape key
:x
h
j
k
l
/[word]
/\[less-than-sign][word]\[greater-than-sign]
n
shift-n
:q
********OTHER IMPORTANT THINGS********
Fleet naming convention: [build-name] [instance-type] [operating-system] [fleet-type] Fleet [build-version]
Port parameters for the server processes in the instances in a fleet: -port=[port-number] password=dummy
Music Creds:
Song: LAKEY INSPIRED - Chill Day (Vlog No Copyright Music)
Music provided by Vlog No Copyright Music.
Video Link: • LAKEY INSPIRED - Chill...
Song: LAKEY INSPIRED - Doing Just Fine
Video Link: • LAKEY INSPIRED - Doing...
KZread Channel Link: / @lakeyinspired
#unrealengine #ue4 #gamelift

Пікірлер: 25

  • @AphixDev
    @AphixDev3 жыл бұрын

    TYSM :D

  • @Flopperam
    @Flopperam3 жыл бұрын

    Hey guys, we made a small mistake at 1:15:37 with the subtitle that lasts until 1:15:42. That subtitle should have been placed at 1:14:52 lasting until 1:14:57 instead. Sorry for the confusion!

  • @Flopperam
    @Flopperam3 жыл бұрын

    Just wanted to mention, you can check how many hours you have left in the free tier for GameLift by checking the "Bills" section in the Billing Management Console, console.aws.amazon.com/billing/home. You should be able to check your free tier hour usage in the free tier chart here, console.aws.amazon.com/billing/home?#/freetier, but currently GameLift c5.large instance usage is not being tracked. I am not sure why but I made a forum post about this here, forums.awsgametech.com/t/gamelift-isnt-showing-up-on-the-top-aws-free-tier-services-table/9349. Note that the "Bills" section and the free tier chart are both delayed by a day or two, meaning that the usage statistics listed on there do not accurately reflect the most up-to-date free tier usage statistics in real-time. In case you aren't constantly monitoring your free tier usage, go to the "Billing Preferences" section in the Billing Management Console and make sure the "Receive Free Tier Usage Alerts" option is enabled so that you get email alerts for when your AWS service usage is approaching, or has exceeded, the AWS Free Tier usage limits.

  • @Flopperam
    @Flopperam3 жыл бұрын

    Note that the page where you get the Linux toolchain from has moved to docs.unrealengine.com/en-US/SharingAndReleasing/Linux/AdvancedLinuxDeveloper/LinuxCrossCompileLegacy/index.html

  • @dxconnery
    @dxconnery3 жыл бұрын

    Hey, thank you for making this, and I’d be really excited to learn if you saw any performance differences with Linux? I’ve been looking for an answer to this very question for months, but haven’t found one.

  • @Flopperam

    @Flopperam

    3 жыл бұрын

    Hey, I haven't found much of a performance difference issue between Windows and Linux EC2 instances. However, I have not done much performance nor load testing to give you a reliable answer to that question. The main benefit that I know about Linux fleets on GameLift is the cost savings.

  • @dxconnery

    @dxconnery

    3 жыл бұрын

    Flopperam Yes, thank you! I can swear by Linux EC2 instances, I just wasn’t sure if UE4 servers had any potential issues. If comparable, this certainly saves lots of money!

  • @javascripted_

    @javascripted_

    3 жыл бұрын

    @@dxconnery Daniel, I have heard that Linux servers, once set up correctly, should have better performance than on windows.

  • @oleksiiplanida3732
    @oleksiiplanida37322 жыл бұрын

    Hey man! Thanks for awesome tutorial. Need your help with one issue dedicated to AWS GameLift When I'm running dedicated server using RDP on AWS, after I connect the client, I'm having "/local/game/LinuxServer/ARKH/ARKH.: Failed to load package '/local/game/LinuxServer/ARKH/ARKH.'. Please check the log for errors." And it ends with shutting down. If you encountered such issue before, please share the treasure knowledge! And may the Force be with you!!!

  • @Flopperam

    @Flopperam

    2 жыл бұрын

    Hey, I would suggest checking your server logs if possible to see what's causing the issue upon clients connecting.

  • @H4DC0R3
    @H4DC0R33 жыл бұрын

    There would be a lobby system, so you can connect with friends and start the game with the predefined team?

  • @Flopperam

    @Flopperam

    3 жыл бұрын

    Hey, unfortunately we didn't have time to cover those concepts in this tutorial series but we will in future tutorials.

  • @himanshuakodiya9449
    @himanshuakodiya94493 жыл бұрын

    1stly thanks for us a nice tutorials, 2ndly is it possible to set up text chat, voice chat, friends list, invite them, in-game purchase store etc? if yes how ? please help.

  • @Flopperam

    @Flopperam

    3 жыл бұрын

    Thank you! For text and voice chat I would suggest Vivox for Unreal Engine. For implementing friends list and in-game purchases features, this can be tougher. You can either make them yourselves using a combination of AWS services like Cognito, Lambda, DynamoDB, and API Gateway for example, or use a prebuilt service designed for this such as Playfab or GameSparks for example. I know Steam and EOS have features for friends as well.

  • @himanshuakodiya9449

    @himanshuakodiya9449

    3 жыл бұрын

    @@Flopperam thank you very much

  • @alexandruapostol8046
    @alexandruapostol80463 жыл бұрын

    After connecting, in PreLogin, ExpectedPlayerId.Equals(PlayerId) is true and PlayerStatus = RESERVED, but AcceptPlayerSessionOutcome.IsSuccess() is always returning false and being kicked. Any idea why?

  • @Flopperam

    @Flopperam

    3 жыл бұрын

    Hey, that's very odd, but you can try logging the error from the call to AcceptPlayerSession, if there is one, by adding some lines of code in the body of the if statement that checks if the call to AcceptPlayerSession was unsuccessful: if (!AcceptPlayerSessionOutcome.IsSuccess()) { // the next three lines are new auto AcceptPlayerSessionError = AcceptPlayerSessionOutcome.GetError(); UE_LOG(LogTemp, Warning, TEXT("accept player sessions error name: %s"), *(AcceptPlayerSessionError.GetErrorName())); UE_LOG(LogTemp, Warning, TEXT("accept player sessions error message: %s"), *(AcceptPlayerSessionError.GetErrorMessage())); ErrorMessage = "Unauthorized"; } After adding these changes, recompile the server, repackage it, upload the new server build to GameLift, make a fleet out of the new build, test the game, and check the server logs to see what the error is when calling AcceptPlayerSession.

  • @alexandruapostol8046

    @alexandruapostol8046

    3 жыл бұрын

    @@Flopperam Thanks! Now it works, I don't know why, the only changes were these 2 logs, yesterday I had same server and local builds too. Strange :)

  • @yasimchannam
    @yasimchannam2 жыл бұрын

    i installed -v15 clang-8.0.1-based toolchain. but I can't see 'linux' on drop down menu.. how can solve?

  • @Flopperam

    @Flopperam

    2 жыл бұрын

    Which version of Unreal Engine are you using?

  • @user-by3xr1lu6u
    @user-by3xr1lu6u2 жыл бұрын

    24:59 linux is not visible. There were no errors. I am using version 4.27

  • @Flopperam

    @Flopperam

    2 жыл бұрын

    Hey, did you install the Linux toolchain?

  • @user-by3xr1lu6u

    @user-by3xr1lu6u

    2 жыл бұрын

    success!!! thanks!!

  • @Anoberia
    @Anoberia2 жыл бұрын

    Oh, so we can't use Linux-Spot fleet without a Queue?

  • @Flopperam

    @Flopperam

    2 жыл бұрын

    Correct, docs.aws.amazon.com/gamelift/latest/developerguide/spot-tasks.html

Келесі