- Видео 22
- Просмотров 129 744
AmrMakesGames
Добавлен 17 окт 2022
Hi, I'm Amr, an aspiring game developer. Join me as I learn, fail, and share my experience with you!
How to Optimize Collision in Unreal Engine?
Watch Part 1 Here: ruclips.net/video/o6woG99n248/видео.html
Resources
--------------------------------------------------------------------------------
- Async Queries Video:
ruclips.net/video/V5T8w7LT_WE/видео.htmlsi=CN_4rgoIoAPSwWaG
- Async Queries Article:
medium.com/@bryan.corell/using-async-collision-traces-in-unreal-engine-4-2cc312c825f5
--------------------------------------------------------------------------------
Timestamps:
00:00 Intro
01:12 What Can Impact Collision Performance?
02:15 Scene Setup
03:30 Optimizing Collision Geometry
06:45 Protecting Against Complex Collision Geometry
07:55 Optimizing Collision Queries
11:22 Considering Async Queries
13:00 Recap
----------------------------------...
Resources
--------------------------------------------------------------------------------
- Async Queries Video:
ruclips.net/video/V5T8w7LT_WE/видео.htmlsi=CN_4rgoIoAPSwWaG
- Async Queries Article:
medium.com/@bryan.corell/using-async-collision-traces-in-unreal-engine-4-2cc312c825f5
--------------------------------------------------------------------------------
Timestamps:
00:00 Intro
01:12 What Can Impact Collision Performance?
02:15 Scene Setup
03:30 Optimizing Collision Geometry
06:45 Protecting Against Complex Collision Geometry
07:55 Optimizing Collision Queries
11:22 Considering Async Queries
13:00 Recap
----------------------------------...
Просмотров: 1 000
Видео
How to Understand and Fix Collision in Unreal Engine
Просмотров 778Месяц назад
Watch Part 2 Here: ruclips.net/video/6KXUEbv1CIA/видео.html Resources - George's Talk: ruclips.net/video/xIQI6nXFygA/видео.htmlsi=-xW0oVuP1-eZdmzG - Collision in Unreal: dev.epicgames.com/documentation/en-us/unreal-engine/collision-in-unreal-engine - Collision Filtering Tech Blog: www.unrealengine.com/en-US/blog/collision-filtering - Collision Queries in Unreal: dev.epicgames.com/documentation/...
How to Understand Any Codebase?
Просмотров 7793 месяца назад
How many times have you found yourself lost in a new large and unfamiliar codebase, and didn't know how to break into it? You are wondering if your way of navigating a new codebase and learning it is good enough? And if there are any better techniques you can use to understand this codebase and any legacy code efficiently? In this video, we'll go over some of the Best Practices we can apply whe...
How to Clean Up Your Unreal Blueprints (and Why?)
Просмотров 9805 месяцев назад
How many times have you started working on a blueprint or got back to a blueprint you wrote a couple of weeks or months back in time, only to find it messy? Wouldn't it be easier if it was written in a clean and tidy way, so you could get back to extending or understanding it without wasting a lot of time? Today, we're going to take a spaghetti blueprint and pay its technical debt by turning th...
Component vs Interfaces vs Abstract Classes (When to Use What?)
Просмотров 1,7 тыс.6 месяцев назад
Component vs Interfaces vs Abstract Classes (When to Use What?)
Unreal Debugging Tools I Wish I knew earlier!
Просмотров 8 тыс.7 месяцев назад
Unreal Debugging Tools I Wish I knew earlier!
Mastering UI Panels and Pop-ups in Unreal Engine
Просмотров 4 тыс.8 месяцев назад
Mastering UI Panels and Pop-ups in Unreal Engine
Level Up Your UI Communication with Unreal ViewModels
Просмотров 6 тыс.10 месяцев назад
Level Up Your UI Communication with Unreal ViewModels
How to create Modular and Scalable UI systems in Unreal Engine
Просмотров 99 тыс.11 месяцев назад
How to create Modular and Scalable UI systems in Unreal Engine
One Year of Freelancing as a Game Developer | My Full Experience
Просмотров 2,3 тыс.Год назад
One Year of Freelancing as a Game Developer | My Full Experience
How I Learned Game Development (Mistakes & Lessons Learned)
Просмотров 1,8 тыс.Год назад
How I Learned Game Development (Mistakes & Lessons Learned)
ruclips.net/video/_0aNOo2JVSI/видео.html In bottom left corner, there are few variables that is private. What are they?
Hi Amr, awesome video. I really had no concept of how to organize and implement a UI and your videos have helped me see how to implement a scalable UI system in my game. One question I do have, I can't seem to figure out where the debug screen logic is located. Specifically, the mapping between pressing 'U' and where the actual push function lives for that widget. Where does that happen? I don't see it in the character, game controller, or level blueprint.
sorry for the late reply and glad I could help! You'll find it in WBP_PrimaryLayout, mapped to a debug key, and that's why you probably didn't find it with the other input mappings.
i learnt so much in this 20 minute video, more than i have learnt in hours of other random youtube recommends.
I saved this to my watch later, I’m really looking forward to this, thanks for your efforts Amr
I'm happy to hear that, Yahia. It's a pleasure!
ولع الكلام great video very helpful
تسلملي يارب 🙏
يسطا جمدان والله محتوي ذهبي 🤩💛
👋 Hey there! If we haven’t met before... I’m Amr, a game programmer passionate about sharing what I learn through my game development Journey, especially the lessons learned from failures and bad practices. Whether you're a beginner or an experienced dev, I hope you’ll find something here to inspire or help you out in your game development journey. ✨ Where Else You Can Find Me: I share shorter tips more regularly on: X (Twitter): x.com/AmrMakesGames Instagram: instagram.com/amrmakesgames/ TikTok: www.tiktok.com/@amrmakesgames If quick ideas and bite-sized content are your thing, come say hi there! 💌 Want to Support My Work or Dive Deeper? Over on Patreon, I share: Exclusive project files from my videos Behind-the-scenes content Access to our private Discord community Join the Patreon Family: patreon.com/AmrMakesGames Let me know if there’s something you’d like to see more of in the comments below. Your support and feedback are highly appreciated!
👋 Hey there! If we haven’t met before... I’m Amr, a game programmer passionate about sharing what I learn through my game development Journey, especially the lessons learned from failures and bad practices. Whether you're a beginner or an experienced dev, I hope you’ll find something here to inspire or help you out in your game development journey. ✨ Where Else You Can Find Me: I share shorter tips more regularly on: X (Twitter): x.com/AmrMakesGames Instagram: instagram.com/amrmakesgames/ TikTok: www.tiktok.com/@amrmakesgames If quick ideas and bite-sized content are your thing, come say hi there! 💌 Want to Support My Work or Dive Deeper? Over on Patreon, I share: Exclusive project files from my videos Behind-the-scenes content Access to our private Discord community Join the Patreon Family: patreon.com/AmrMakesGames Let me know if there’s something you’d like to see more of in the comments below. Your support and feedback are highly appreciated!
👋 Hey there! If we haven’t met before... I’m Amr, a game programmer passionate about sharing what I learn through my game development Journey, especially the lessons learned from failures and bad practices. Whether you're a beginner or an experienced dev, I hope you’ll find something here to inspire or help you out in your game development journey. ✨ Where Else You Can Find Me: I share shorter tips more regularly on: X (Twitter): x.com/AmrMakesGames Instagram: instagram.com/amrmakesgames/ TikTok: www.tiktok.com/@amrmakesgames If quick ideas and bite-sized content are your thing, come say hi there! 💌 Want to Support My Work or Dive Deeper? Over on Patreon, I share: Exclusive project files from my videos Behind-the-scenes content Access to our private Discord community Join the Patreon Family: patreon.com/AmrMakesGames Let me know if there’s something you’d like to see more of in the comments below. Your support and feedback are highly appreciated!
👋 Hey there! If we haven’t met before... I’m Amr, a game programmer passionate about sharing what I learn through my game development Journey, especially the lessons learned from failures and bad practices. Whether you're a beginner or an experienced dev, I hope you’ll find something here to inspire or help you out in your game development journey. ✨ Where Else You Can Find Me: I share shorter tips more regularly on: X (Twitter): x.com/AmrMakesGames Instagram: instagram.com/amrmakesgames/ TikTok: www.tiktok.com/@amrmakesgames If quick ideas and bite-sized content are your thing, come say hi there! 💌 Want to Support My Work or Dive Deeper? Over on Patreon, I share: Exclusive project files from my videos Behind-the-scenes content Access to our private Discord community Join the Patreon Family: patreon.com/AmrMakesGames Let me know if there’s something you’d like to see more of in the comments below. Your support and feedback are highly appreciated!
👋 Hey there! If we haven’t met before... I’m Amr, a game programmer passionate about sharing what I learn through my game development Journey, especially the lessons learned from failures and bad practices. Whether you're a beginner or an experienced dev, I hope you’ll find something here to inspire or help you out in your game development journey. ✨ Where Else You Can Find Me: I share shorter tips more regularly on: X (Twitter): x.com/AmrMakesGames Instagram: instagram.com/amrmakesgames/ TikTok: www.tiktok.com/@amrmakesgames If quick ideas and bite-sized content are your thing, come say hi there! 💌 Want to Support My Work or Dive Deeper? Over on Patreon, I share: Exclusive project files from my videos Behind-the-scenes content Access to our private Discord community Join the Patreon Family: patreon.com/AmrMakesGames Let me know if there’s something you’d like to see more of in the comments below. Your support and feedback are highly appreciated!
👋 Hey there! If we haven’t met before... I’m Amr, a game programmer passionate about sharing what I learn through my game development Journey, especially the lessons learned from failures and bad practices. Whether you're a beginner or an experienced dev, I hope you’ll find something here to inspire or help you out in your game development journey. ✨ Where Else You Can Find Me: I share shorter tips more regularly on: X (Twitter): x.com/AmrMakesGames Instagram: instagram.com/amrmakesgames/ TikTok: www.tiktok.com/@amrmakesgames If quick ideas and bite-sized content are your thing, come say hi there! 💌 Want to Support My Work or Dive Deeper? Over on Patreon, I share: Exclusive project files from my videos Behind-the-scenes content Access to our private Discord community Join the Patreon Family: patreon.com/AmrMakesGames Let me know if there’s something you’d like to see more of in the comments below. Your support and feedback are highly appreciated!
👋 Hey there! If we haven’t met before... I’m Amr, a game programmer passionate about sharing what I learn through my game development Journey, especially the lessons learned from failures and bad practices. Whether you're a beginner or an experienced dev, I hope you’ll find something here to inspire or help you out in your game development journey. ✨ Where Else You Can Find Me: I share shorter tips more regularly on: X (Twitter): x.com/AmrMakesGames Instagram: instagram.com/amrmakesgames/ TikTok: www.tiktok.com/@amrmakesgames If quick ideas and bite-sized content are your thing, come say hi there! 💌 Want to Support My Work or Dive Deeper? Over on Patreon, I share: Exclusive project files from my videos Behind-the-scenes content Access to our private Discord community Join the Patreon Family: patreon.com/AmrMakesGames Let me know if there’s something you’d like to see more of in the comments below. Your support and feedback are highly appreciated!
👋 Hey there! If we haven’t met before... I’m Amr, a game programmer passionate about sharing what I learn through my game development Journey, especially the lessons learned from failures and bad practices. Whether you're a beginner or an experienced dev, I hope you’ll find something here to inspire or help you out in your game development journey. ✨ Where Else You Can Find Me: I share shorter tips more regularly on: X (Twitter): x.com/AmrMakesGames Instagram: instagram.com/amrmakesgames/ TikTok: www.tiktok.com/@amrmakesgames If quick ideas and bite-sized content are your thing, come say hi there! 💌 Want to Support My Work or Dive Deeper? Over on Patreon, I share: Exclusive project files from my videos Behind-the-scenes content Access to our private Discord community Join the Patreon Family: patreon.com/AmrMakesGames Let me know if there’s something you’d like to see more of in the comments below. Your support and feedback are highly appreciated!
👋 Hey there! If we haven’t met before... I’m Amr, a game programmer passionate about sharing what I learn through my game development Journey, especially the lessons learned from failures and bad practices. Whether you're a beginner or an experienced dev, I hope you’ll find something here to inspire or help you out in your game development journey. ✨ Where Else You Can Find Me: I share shorter tips more regularly on: X (Twitter): x.com/AmrMakesGames Instagram: instagram.com/amrmakesgames/ TikTok: www.tiktok.com/@amrmakesgames If quick ideas and bite-sized content are your thing, come say hi there! 💌 Want to Support My Work or Dive Deeper? Over on Patreon, I share: Exclusive project files from my videos Behind-the-scenes content Access to our private Discord community Join the Patreon Family: patreon.com/AmrMakesGames Let me know if there’s something you’d like to see more of in the comments below. Your support and feedback are highly appreciated!
👋 Hey there! If we haven’t met before... I’m Amr, a game programmer passionate about sharing what I learn through my game development Journey, especially the lessons learned from failures and bad practices. Whether you're a beginner or an experienced dev, I hope you’ll find something here to inspire or help you out in your game development journey. ✨ Where Else You Can Find Me: I share shorter tips more regularly on: X (Twitter): x.com/AmrMakesGames Instagram: instagram.com/amrmakesgames/ TikTok: www.tiktok.com/@amrmakesgames If quick ideas and bite-sized content are your thing, come say hi there! 💌 Want to Support My Work or Dive Deeper? Over on Patreon, I share: Exclusive project files from my videos Behind-the-scenes content Access to our private Discord community Join the Patreon Family: patreon.com/AmrMakesGames Let me know if there’s something you’d like to see more of in the comments below. Your support and feedback are highly appreciated!
How about abstract components then? Wouldn’t they fit all described scenarios ?
They will fill most scenarios, but not necessarily all. If I ever need pure logic with no data stored within a class, I'd prefer to go with an interface.
This was amazing. Thank you so much for all the effort, I will bookmark this video for future reference, definitively too much information to get stuck in my head in one watch haha
Your videos came as an angel for me after YEARS of struggling with UMG... I was always solving UI as fast as possible to continue with other areas more gameplay related... Thank you so much for sharing the files, you earned a sub and you will be the first person I do Patreon!
Hi Sebastian, your words mean a lot, and I'm happy I could help!
Hey, thank you for the video!! Since the docs about UMG Viewmodel explain the concepts (which are simple to understand), the implementation can be tricky. Your video gave me a lot of information but also a lot of questions (for example how to handle Data Assets widgets). Would you be so kind as to make a short video with a step-by-step tutorial on implementation? Thanks again✌
Hi, thanks for the feedback, It's on my list, and now I'll give it a higher priority to make a full UI system in detail, explaining view models and more concepts from the other videos.
what is the tool to take note at 11:46 ?
In this system would it be possible to make a thing such as an inventory system that has little item slots that could be dragged into other things?
Yes, you can do draggable widgets like you'd do in other systems. But this is not included in the system out of the box currently
at 17:25 there are some stats on the screen. How did you do that? I tried a few stat commands like stat UI, stat Slate, RHI, SceneRendering, GPU, but they don't look like that. I also tried googling, but couldn't find anything. Any help? Thanks!!
Sorry, I should've pointed that out. It's stat DrawCount
Very useful!
What a great tool
Hi, how does this system do the ordering of the layers? You mention a pop-up can hide the other layers from the viewport, how did that happen? I suppose you could take the Tops of the other layers and hide them.
hi there and good question, The primary layout widget handles that, it is simply an overlay and the layers are ordered inside it. And you're correct, that's one way to hide other layers, we can either hide the top of the layer, or hide the layer itself. The system in the video is simple, and needs more utility functions like hiding other layers, handling fading in and out, etc., but it's a good starting point to build upon.
@@AmrMakesGames Got it, okay thanks
Greetings from Egypt
يا مرحب بابن بلدي يا مرحب
Just as i discover your channel you post, this is a good day, I love your content and I'm looking forward to watch more of your high quality content <3
Welcome abroad, Sherif, and I'm glad you love my content!
جامد جدا وسلاسة الشرح جميلة جدا
طالما سلاسة الشرح جميلة يبقى انا اتعلمت من الفرجة على فيديوهاتك الجميلة يا زياد 🙏
@@AmrMakesGames يعم متقولش كدة دة احنا نتعلم منك يا استاذ عمرو
Is there a difference between a Viewmodel and a singleton? The reason why I ask is because the core idea of they can only have one sounds similar
Sorry for the confusion, a viewmodel can be created in multiple instances and doesn’t need to be one only. The example we discussed at 06:00 is just for consistency and performance because they all read the same source of data. On the other hand, a singleton would be something like the MVVM subsystem, which is a single global instance.
@@AmrMakesGames Do all instance still refer to the same variable?
In that example, yes
Amazing system! Managed to implement it in my projec. However, I can't figure out how to plug an item pickup widget with this system. The item pickup notification widget is a modal, but it gets added to the gamescreen widget, inside a vertical box, via a function that also passes the item data (name, quantity etc). How to use your system in that scenario?
One thing you could do since only one widget can be visible in a layer at a time, is to push the item pickup modal to the Modal layer, since it is a modal. Then, in your game screen where you have a vertical box of items or the inventory, your pick up modal will communicate with inventory widget to add an entry, and then you pop it from its Modal layer. please let me know if something is not clear
What was your intent to have both C++ VM_health and a VM_health blue print? Are they connected? Or are you just showing how to do both?
In general, I think there is a gap between the project and some understanding how this works. I might look up more viewmodel examples to help understand this.
Yes, mainly showing both ways, and looking into how MVVM works in general can help you understand it even better. But if you've any questions, please don't hesitate to ask.
thanks
This is top-notch quality stuff. Keep it up! 5:16 stack trace on warning. and break on exception right after 8:05 rename exec functions Something I've found useful is FAutoConsoleCommand. exec functions can't be called from any class, but cvar callbacks can. Here's two examples in an Actor Component that goes on a player controller: static FAutoConsoleCommandWithWorld DebugSandActorComp(TEXT("Sand.Debug.ActorComp"), TEXT("Debugs the clicked Actor's SandActorComp"), FConsoleCommandWithWorldDelegate::CreateStatic(&USand_PControllerComp::RunDebugSandActorComp)); static FAutoConsoleCommandWithWorld DebugSandJoinPlayerFaction(TEXT("Sand.Debug.JoinPlayerFaction"), TEXT("The clicked Pawn will join the Player's Faction"), FConsoleCommandWithWorldDelegate::CreateStatic(&USand_PControllerComp::RunDebugSandJoinPlayerFaction), ECVF_Cheat);
great talk , this should help me convert lyra to first person i dont know why epic made this very big deep sample but made it really hard to add first person
Yes, it is complex to a high degree, but if we compose down to its components and explore the different llugins and features it uses individually, you'll find how flexible it is. For first person, if you haven't figured it out already, simply understanding how camera modes work in Lyra should make it a little simple for you
@@AmrMakesGames yer its a complex system i have first person working now with arms and hidden TP mesh but think i might have to make my own weapon system as lyra has hard refs to all the weapons instead of soft refs and also every time you change weapon it destroys it and respawns it which is a really bad way to do it , it might be alright for single player but for multiplayer its not very good
I checked out your project and I see that the health amount is data binded to the viewmodel. Is it optimized because the view model won’t fire every frame but only when the view model is called?
Exaclty. It is similar to using event dispatchers, but with an extra advantage that UI won't be coupled to the source of the data, and only to the view model.
TYSM! The frontend in Unreal is really killing me!
Another question, when I try to implement the same system with pause screen to my game, I use the same setup but the pause screen won't allow me to have keyboard inputs anymore, why is that?
ahhh, I just found out to make a key actionable during pause, I need to enable "Trigger When Paused" on the action. Mind blown
Thank you so much Amar. I had a question, what if I wanted to have two widgets of the same tag in a layer. Is it possible via your system?
You're welcome Fahim. Possible yes, but may I know what you're trying to do so I can give you a more detailed answer? Currently each layer has a unique tag, this is the idea of using gameplay tags. And each layer can have one Widget active a time, since a layer is a stack of widgets. You can add more layers with more tags, and these layers are all shown simultaneously, but it's rare that you would need many of those. If you need two widgets to show in the same layer, then simply one widget should contain both of them and be pushed to the layer's stack.
@@AmrMakesGames thanks! Makes sense. Just like you merged the weapons and health UI.
Hi, what does "FocusGame" and "FocusModal" do on your main player controller? They look important however I don't understand the intent of them. Anything I should read more about to understand them better? Thanks
Hi there, they're a very simple handling for UI Input focus. Focus Modal makes UI consume input and blocks it from passing to the Game. So, if you have a pause menu open for example, pressing WASD would move through the menu instead of moving the player. Focus Game does the opposite and allows input to pass to the game. This is a very simple implementation though; some work is required by widgets to specify what element should get focus. I recommend you take a look at How Slate handles input routing.
Will do!
@@AmrMakesGamesI see that you use common user widget in the example project, would you switch to common activiatable objects instead to achieve what you said?
@@txu2011 definitely would do, along with other common ui features. This example was meant to be simple and avoid the overhead of common ui.
9519 Meagan Locks
A video on the subsystems workflow you mentioned here would be a godsend. Please do one if you have time.
Will plan a more thorough video with a more sophisticated system that manage pop-up requests and UI input soon hopefully!
فيديو اسطووووووووووووووووووري شكرا مليار مرة 👑👑
عفوا تسلملي 🙏
جامد جدا يا معلم
تسلم يا غالي بنتعلم منك
I hate that im just finding this now in my search for ui tuts in UE. But im thankful im here now 😢
Hope it was useful, and take your time in grasping each point
Can you share the tool you used for debugging ui invalidation? 10:35
It was slate console variables, I guess I used: SlateDebugger.Invalidate.Enabled 1 SlateDebugger.Invalidate.Start
@@AmrMakesGames perfect, thank a lot
Very good vid. Thanks for sharing.
One of the best videos that tackle this topic.
Amazing video man such a great topic ! Please keep making UI videos also man I love ur panel manager is the core of my UMG based UI
♥♥♥♥♥
حبيبي ❤️🙏