Demo: How to get from Zero to GameLift Multiplayer project in UE5.1

This is a tutorial using a new fleet manager plugin that integrates with Unreal 5.1 and GameLift.
github: github.com/spayne/GameLiftSta...
AWS Gamelift-UE4 series link: • Amazon GameLift-UE4 Ep...
Chapters
00:00:00 Introduction
00:00:50 0. Check Prerequisites
00:02:03 1. Create new C++ project using Third Person Template
00:02:50 2. Add the Fleet Manager and GameLift plugins to the project
00:04:51 3. Follow Setting up Dedicated Servers documentation
00:10:48 4. Show the project multiplayer working on a single machine
00:13:06 5. Modify the project to support GameLift fleets using the GameLiftStarter plugin
00:20:31 6. Deploy and test it - make sure it works using remote machines
00:26:01 7. Finally tear down the backend

Пікірлер: 44

  • @catalinursache6647
    @catalinursache6647 Жыл бұрын

    I'm back with an update. The plugin works perfectly with 5.2.1, the only thing I had to modify in the plugin was to replace the windows server 2012 OS (as it is no longer supported) with windows server 2016. A weird thing I noticed in my testing was the performance. If I start 2 game sessions with the viewport from UE5 , I can see the other player's actions being replicated smoothly, accurately and with low latency. However if I open 2 game sessions from the packaged project, the other player's action have significant latency, not smooth and more inaccurate. I will further investigate this. Thank you again Sean for the plugin and for the great guide.

  • @BitsAndBytes442
    @BitsAndBytes442 Жыл бұрын

    Dude After 3 months I found your video, it has saved me hours of work, you deserve a lot more.

  • @seanopayno

    @seanopayno

    Жыл бұрын

    Glad it helped. For me I was surprised how much work it was to get GameLift up and running so I wrote that to make the setup time alot faster - my goal is that someone should be able to get it up and running in about a day the first time then in a few hours if they try again. If you do have any issues feel free to let me know. Thanks!

  • @BitsAndBytes442

    @BitsAndBytes442

    Жыл бұрын

    @@seanopaynoYeah, but when I build Development Editor for Win 64 with the plugins I get this error : 1>Done building project "GameLift.vcxproj" -- FAILED.

  • @BitsAndBytes442

    @BitsAndBytes442

    Жыл бұрын

    ​@@seanopayno Error MSB3073 The command "D:\ue_5.0.3\Engine\Build\BatchFiles\Build.bat -Target="GameLiftEditor Win64 Development -Project=\"D:\Unreal Projects\GameLift\GameLift.uproject\"" -Target="ShaderCompileWorker Win64 Development -Quiet" -WaitMutex -FromMsBuild" exited with code 6. GameLift C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.MakeFile.Targets 45

  • @BitsAndBytes442

    @BitsAndBytes442

    Жыл бұрын

    @@seanopayno I hope you can help me with this, I really need it Thanks.

  • @seanopayno

    @seanopayno

    Жыл бұрын

    @@BitsAndBytes442 Hello. If you open up a ticket on the github it can be easier for me to try and reproduce your error there. I did get a notification that is no longer on youtube with a compile error: Error MSB3073 The command "D:\ue_5.0.3\Engine\Build\BatchFiles\Build.bat -Target="GameLiftEditor Win64 Development -Project=\"D:\Unreal Projects\GameLift\GameLift.uproject\"" -Target="ShaderCompileWorker Win64 Development -Quiet" -WaitMutex -FromMsBuild" exited with code 6. GameLift C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.MakeFile.T­argets 45 I can see that you are using 5.0.3 but the error looks like an issue with ShaderCompileWorker... so as far as my plugin goes, you should be on 5.1 with a source build - so I'd confirm that. But the error above may not be related to the plugin at all. Anyway please have a look at github.com/spayne/GameLiftStarterPlugin and if you can post details on an issue there I will help.

  • @A7XisWord
    @A7XisWord Жыл бұрын

    This was very helpful, thank you! One issue you may want to address is that aws create build no longer supports Windows 2012 so you'll need to switch that to Windows 2016 in your build create command. Otherwise the tutorial worked like a charm with the latest versions.

  • @seanopayno

    @seanopayno

    Жыл бұрын

    Thanks for letting me know! I'll update it when I get a chance.

  • @myasga
    @myasga Жыл бұрын

    Hi, Thank you for tutorial! - there are changes for 5.2? When video with next steps ;)?

  • @seanopayno

    @seanopayno

    Жыл бұрын

    No changes for 5.2. I'd follow Matt's advice below and change the aws instance type to Windows 2016. As for next steps, I'd be curious to know what the demand would be. More Platforms? I have done some work with GCP and Kubernetes, More matchmaking? Integration with EOS or Steam?

  • @myasga

    @myasga

    Жыл бұрын

    @@seanopayno thanks for everything!would be nice to get pricing comparision for UE indie projects and what is the best suite for starters and demos that not cost fortune? As for example one server with 20 player slots per month game like Vallheim/Rust/Ark Survival type when world is saved. And how to understand Pricing of Gamelift Anywhere and maybe guide how to setup for that scenario on my own machine ;)?

  • @seanopayno

    @seanopayno

    Жыл бұрын

    @@myasga To get started I've just used the AWS free tiers and occasionally some credits. I watch the billing like a hawk because I'm also curious to know how much things cost. As an example, I had a $1000 AWS credit at one point but only used $5 or so if it, because I was still on the free tier. Regarding keeping the world saved, that's something I have not experimented with. What you are suggesting is pretty small - single game server and 20 players. I'd expect to be able to run that on a single 4 core system. You might just need to build that and see. If you are looking for references, I recommend this article - it has Fortnite's system design ideas.www.fortnite.com/news/postmortem-of-service-outage-at-3-4m-ccu Also this forum post has some discussion about it and some scaling details: news.ycombinator.com/item?id=16340462 e.g. search for "We run 16 game servers per c4.8xl instance for Battle Royale. We run more than that (on a different instance type) for StW." The point is that one core per server is probably sufficient. Maybe add another core or two to deal with the backend. As far as testing goes, in your usecase of 20 clients, you might have more trouble getting the clients setup than the one server. UE has some testing support for this in their Gauntlet system.

  • @myasga

    @myasga

    Жыл бұрын

    @@seanopayno Thank you very much for that guides i really appreciate one more question there is a difference with gamelift anywhere" on demand and on spot? There is difference on pricing with Linux or windows type? In other types od gamelift there are much difference on that matter? Thank you in advance!

  • @seanopayno

    @seanopayno

    Жыл бұрын

    @@myasga I haven't tried the Gamelift anywhere yet. An AWS account manager suggested that to me when I talked to them about the slow deploy times. He said self hosting would be a lot faster. It is possible that it cost the same since you are then responsible for getting your own windows license for the box. Anyway it's pretty easy to cross compile a Linux server since Epic has the build rules already. Also you can run this in WSL2 for testing.

  • @naveendevaraj6221
    @naveendevaraj62213 ай бұрын

    when click fleet manager under platform window unreal editor will crash. Note: I also set BOTO3Path in project setting. how to solve this issue. Thanks

  • @catalinursache6647
    @catalinursache6647 Жыл бұрын

    Hello Sean, Thank you very much for the tutorial and plugins. I was working on integrating this into a personal project in 5.2, but strangely enough, when I try bringing the Fleet Manager window, its blank. It only holds the layout and the tables, but none of the buttons and the text. Have you encountered this issue so far, or would you have an idea where it comes from?

  • @seanopayno

    @seanopayno

    Жыл бұрын

    Hi Catalin, You should be getting further, so I think there is probably a configuration issue. Sorry that's not going smoothly. The plugin has two parts - the "fleet manager" part which is the generic behavior that seems to be working for you and the "gamelifttstarterplugin" that has the gamelift specific details and is not working for you. The way it works is that the buttons and text comes from the backend. ie the front end asks the gamelift python backend what to display and that's what is shown. So something is stopping that from succeeding. I'm assuming you are following the instructions at github.com/spayne/GameLiftStarterPlugin. My guess is that perhaps the boto3 path is not correct (See step 5) and this is preventing the aws script from loading and then everything falls apart. So: 1. Check the boto3 path in step 5 2. If that fails to help, then have a look for clues in the log - look for errors. If ok with you, create an issue and post the log to the github.com/spayne/GameLiftStarterPlugin repo.

  • @catalinursache6647

    @catalinursache6647

    Жыл бұрын

    @@seanopayno Thank you for the fast reply. I created an issue, unfortunately there are no further error logs to share after I edited the path, just blank fields.

  • @gamedevdanny

    @gamedevdanny

    11 ай бұрын

    @@catalinursache6647 Did you ever solve this i have the same issue

  • @gamedevdanny

    @gamedevdanny

    11 ай бұрын

    @@catalinursache6647 DUDE! I figured out the fix for me: Go into the gamelift project settings and make sure the path is the same as the path shown when you type pip show boto3 in the command prompt BUT (and this is the part that fixed it for me) make sure you use FORWARD SLASHES in the path in the project settings not backslashes. That fixed it for me when the path with backslashes initially was just blank like you.

  • @franklingamedev

    @franklingamedev

    6 ай бұрын

    Thank you !!! I will never forget this.@@gamedevdanny

  • @optimizeevents8335
    @optimizeevents8335 Жыл бұрын

    Hey Great Video !! Thanks for the setup. Just need a help when I try to login I get empty JSON fields for tokenid. Any reason why this might happen?

  • @seanopayno

    @seanopayno

    Жыл бұрын

    Thanks for letting me know. I haven't seen this particular issue before, it sounds like the cognito login is failing for some reason. If you have logs, you can post them as a github issue and I can diagnose from there. Alternatively, if you are getting the rest api installed without error, then you can press the 'check button' and it will give you a curl -X command that you can use to manually attempt the login and this may show you what is going on.

  • @seanopayno

    @seanopayno

    Жыл бұрын

    This is resolved now. We think the cause was creating the rest api before the creating the fleet. I also improved the logging when a login fails to help diagnose this kind of issue in the future.

  • @revraitah
    @revraitah5 ай бұрын

    Hi, hopefully you still replying. I'm attempting to use this in 5.2.1. Having trouble with cloning your AWSGameLiftServerSDK repo. Seems it does not exist anymore. Is there any alternative as how to use it? Thanks

  • @seanopayno

    @seanopayno

    5 ай бұрын

    Hello there. I put it back up at github.com/spayne/AWSGameLiftServerSDK It's an older SDK. It but should be working and I think is probably good enough to get started. If you decide to pursue their newer SDK... In my view their newer SDK was a step backwards - they really messed up by adding some SSL dependencies without strengthening their build. If you do decide to upgrade to their latest SDK, then search around for some tips on how to use it. (forums.unrealengine.com/t/aws-gamelift-sdk-5-build-error/1155382/3)

  • @revraitah

    @revraitah

    5 ай бұрын

    ​@@seanopayno Hello, thanks for the response - and a very helpful one at that! Thanks for the insight as well, I'm trying to follow things as closely as your demo, even down to the versions. It is very helpful to know that I probably should stick to the older version of the SDK. Also the starter plugin itself is pretty great! I learn a lot of new things for programming editor tools, adding python scripts to the mix. I used to code purely in C++ and/or BP for editor tools. I treat this as a bonus! I probably will return with some more questions, do you mind if I open an issue in your starter plugin repository later? Thanks, have a nice day!

  • @gamedevdanny
    @gamedevdanny11 ай бұрын

    The Create Lambdas part of the script is the only part of the fleetmanager that's not working for me. It doesn't do anything. Any advice?

  • @seanopayno

    @seanopayno

    11 ай бұрын

    Thanks for letting me know. It should be working, so I can help you if you like. If I was to guess: There is a timing dependency between creating the roles and permissions and the actual creation of the lambdas. So the script tries several times to create the lambdas after creating the roles - perhaps this count needs to be jncreased for you. What works best for me to diagnose is if you can post the log into a github issue. and that way I can narrow down the problem for you without guessing. The log I'm looking for is the one that is shown in unreal: e.g. user-images.githubusercontent.com/82259/245882566-7f601fbb-c02c-4d05-b40b-109307ca63c6.png

  • @gamedevdanny

    @gamedevdanny

    11 ай бұрын

    @@seanopayno Fixed it by upgrading my AWS_CLI to V2 and Python to 3.11, I had an old version of python installed like 3.8 and the script i think is calling python 3.9? Anyway upgrading python and the aws_cli fixed it.

  • @seanopayno

    @seanopayno

    11 ай бұрын

    @@gamedevdanny that's great to know and might help others in the future: Thanks!

  • @herblewis6250
    @herblewis6250 Жыл бұрын

    Any idea what would make the Fleet manager window crash? Have done the install a few times now, it always crashes :(

  • @seanopayno

    @seanopayno

    Жыл бұрын

    Thanks for letting me know. Sorry it isn't working for you. I don't know off hand but presumably something different between our configurations. Are you building for Win64 Development Editor? Do you have any other details (log file)? If so could you post it as a ticket on GitHub? Thanks

  • @herblewis6250

    @herblewis6250

    Жыл бұрын

    @@seanopayno Will post log sometime tomorrow! Thanks for the quick response.

  • @seanopayno

    @seanopayno

    Жыл бұрын

    @@herblewis6250 This should be fixed now. I reproduced the issue and needed to add some encoding if the Server Package Root has spaces.

  • @throwawayspectacle5549
    @throwawayspectacle5549 Жыл бұрын

    Is it possible to cross compile a linux server with this workflow for gamelift

  • @seanopayno

    @seanopayno

    Жыл бұрын

    I've used the above workflow to get things up and running on Windows and then done a cross compile to Linux and tested locally using Windows clientsLinux (WSL2). I pushed my notes on how to do that here: github.com/spayne/GameLiftStarterPlugin/blob/main/Docs/linux_server_build.md So that will get you part way. The scripts won't help to deploy to Linux because I haven't handled that case. I could consider adding support for that. My thoughts at the time was for this tool to be used to help in the initial 'sheesh I need to get something working asap' case - and so I just stuck to Windows. But I can help get a Linux deploy going if you run into trouble.

  • @BitsAndBytes442
    @BitsAndBytes442 Жыл бұрын

    Hey dude, I am running into a few more problems, do you mind sharing a way for me to contact you so we can sort this out?

  • @BitsAndBytes442

    @BitsAndBytes442

    Жыл бұрын

    @seanopayno Hi, I don't think you have seen my comment yet, do you mind sharing a better way for communication.