UE5 Understanding UI Bindings - Be a better game dev

  Рет қаралды 7,907

LeafBranchGames

LeafBranchGames

5 ай бұрын

In this episode of be a better game dev, we will be looking into the UI bindings.
Be a better game dev playlist: • Be a better game dev
Join the Discord server here: / discord
Support the work of LeafBranchGames on Patreon here: / leafbranchgames

Пікірлер: 161
@Eludium_SNKN
@Eludium_SNKN 4 ай бұрын
I wish this channel would pop up at the top of the search results list when new developers search for tutorials. The amount of uninformed, or straight up wrong information on some of the channels is seriously worrisome. Thank you for taking the time to prioritize tutorial efficiency/helpfulness before views and reach. It is much appreciated
@LeafBranchGames
@LeafBranchGames 4 ай бұрын
Thank you. I very much appreciate those kind words. :)
@RictorScale
@RictorScale 4 ай бұрын
Honestly this is a good idea, buildingboff the tutorials of others in a best practices way is interesting
@LeafBranchGames
@LeafBranchGames 4 ай бұрын
Thanks for the feedback. :)
@JanitorDave
@JanitorDave 24 күн бұрын
I almost fell out of my chair laughing when all the 'Hello's started popping up. I'm also someone who tried Gorka's RPG tutorial a few months back hoping to learn to build an early "learning prototype" for a game I'm currently co-developing, and by the time I got to the end of it, the performance was absolutely lousy and you couldn't build on top of it at all; I was almost afraid to even touch anything because adding anything just made the whole house of cards collapse. Attempting to add the "open world" towards the (at the time) end of the series made things just start breaking spectacularly. Instead of attempting to bug fix it myself, I just cut my time losses, wrote off the entire thing and decided to look elsewhere. It's an absolute shame how difficult it is to find learning resources for Unreal Engine beginners that preach good practices from the start. Glad I finally found a channel that does!
@LeafBranchGames
@LeafBranchGames 21 күн бұрын
A combination of click bait, short videos (because an easy solution is more appealing to a beginner) rather than an in depth video, gets more views and recommendations, so those bad videos are what the search results bring back.
@fordston2
@fordston2 5 ай бұрын
I didn't need years of experience to see that there was a big problem with what he was "teaching". I think this also represents why so many games on the market are optimized like shit. Love your channel.
@LeafBranchGames
@LeafBranchGames 5 ай бұрын
Thank you! Appreciate the kind words!
@MrMustachio43
@MrMustachio43 5 ай бұрын
I’ve never made a game before, so I thought I’d bite the bullet and give it a go. One thing I make sure to do is ALWAYS watch and read many different ways to do one thing. Sometimes it’s better to do the harder things even if the outcome is something simple. It gives a better end result, and this video is proves why it’s important to not be lazy
@LeafBranchGames
@LeafBranchGames 5 ай бұрын
That is ususally the thing in software development. You can build frameworks that take a long time before you start seeing any result of your work at all, but once it is in place, you will be able to develop much faster. Or you can do like these channels do, cut corners every step of the way and have a nightmare of a project with bugs and bad practices that is impossible to finish or even continue development on later on.
@RastoDM
@RastoDM 5 ай бұрын
I would love to see your approach on inventories.@@LeafBranchGames
@LeafBranchGames
@LeafBranchGames 5 ай бұрын
@@RastoDM I have an old inventory tutorial.
@RastoDM
@RastoDM 5 ай бұрын
I saw that just after I posted. The only issue with it that i have, and that i find most other examples use is that you create a child of an item blueprint for each item, rather then having a data table row update the information.. thoughts? Which would get difficult to manage in games that are larger so i dont think its as scalable@@LeafBranchGames
@LeafBranchGames
@LeafBranchGames 5 ай бұрын
@@RastoDM Your approach for inventory needs to be reflected by your need. Some games have many items, some have few but with affixes. It all depends.
@sarahlynn7807
@sarahlynn7807 5 ай бұрын
Ah this was specifically something I was learning about recently. Love to see your video, and love to see the community finally calling out the bad practices rampant in tutorials. I'd love a good straight forward video on best practices for UMG panels. I can't believe how often I see the canvas panel used to wrap everything individually.
@LeafBranchGames
@LeafBranchGames 5 ай бұрын
Thank you, appreciate the feedback! Hopefully I can visit those topics in the future!
@Yggdrasil777
@Yggdrasil777 5 ай бұрын
A good UI resource I use is Kekdot here on KZbin.
@creatorediillusioni
@creatorediillusioni 2 ай бұрын
This video amazes me and terrifies me at same time. I just star learning and seeing this it really worries me. Thank you for clear those points out…
@LeafBranchGames
@LeafBranchGames 2 ай бұрын
My pleasure!
@dobrx6199
@dobrx6199 5 ай бұрын
Thanks for this series, super helpful!
@LeafBranchGames
@LeafBranchGames 5 ай бұрын
Glad to hear it!
@UnrealSolver
@UnrealSolver 5 ай бұрын
Thank you for making us all A Better Game Dev! I love this series of videos ♥ Love the way you explain everything that happens behind the scenes making it all clear and better. Let's keep on learning! 💪
@LeafBranchGames
@LeafBranchGames 5 ай бұрын
Thank you!
@emirisik
@emirisik 5 ай бұрын
Top tier content as always.
@LeafBranchGames
@LeafBranchGames 5 ай бұрын
Thank you!
@MonderMurshed
@MonderMurshed 4 ай бұрын
Thank you! i was shocked when i knew that binding is tick everytime to check, new sub btw
@LeafBranchGames
@LeafBranchGames 4 ай бұрын
Glad to hear it was enlightening! Thank you for the support!
@KevinRyborz
@KevinRyborz 5 ай бұрын
This series is gold
@LeafBranchGames
@LeafBranchGames 5 ай бұрын
Thank you!
@MegaAlexkiller
@MegaAlexkiller 5 ай бұрын
lmao, someone got the balls to tell the truth here, thanks for that.
@LeafBranchGames
@LeafBranchGames 5 ай бұрын
My pleasure!
@losi82.02
@losi82.02 5 ай бұрын
Thankyou for this, your tutorials are fantastic. i started my UE5 learning with gorkas RPG series and learnt how it evolves into a maddening spiral of cause and effect with no way to solve any bugs because of how he binds things and casts to things. Granted in his RPG series he makes the HP bar/EXT, correctly however every action in the game is a hard cast to the player, every enemy even its HP bar is dependent of the third person character as well as all actions and movement nothing is independent
@LeafBranchGames
@LeafBranchGames 5 ай бұрын
Well yes, everything he does is copied from someone else. He doesn't understand how or why things work like they do. So he is geting big of others bad or good work. It is quite bad that that is the kind of knowledge new learners get exposed to, wasting their time learning bad ways and having to do it all over again.
@kellowattentertainment
@kellowattentertainment 5 ай бұрын
I started learning Unreal Engine the same way, with Gorka Games RPG series tutorials. I stopped following his RPG tutorial series shortly after the climbing episodes. He leaves everything too vague, doesn't focus on the smaller issues that do add up, his way isn't modular or scalable, or his combo system is trash... he never completes any of the mechanics he starts... He started the series pretty well and then it became so basic...
@mikelkram
@mikelkram 5 ай бұрын
thanks for this explanation, it is very helpful
@LeafBranchGames
@LeafBranchGames 5 ай бұрын
My pleasure!
@starscream2092
@starscream2092 5 ай бұрын
This video is 100%. I have been saying this for years, even mentioning this in videos with bad implementation. Sadly, videos like yours are just a few, and videos with bad binding are everywhere. There are things that are great with binds, for example, ingame hud FPS counter, I can't imagine that without binding.
@LeafBranchGames
@LeafBranchGames 5 ай бұрын
True on all counts. There are a few, exceedingly rare situations where it makes sense. But unfortunately not how it is being taught or used in tutorials for the vast majority.
@Yggdrasil777
@Yggdrasil777 5 ай бұрын
@@LeafBranchGames I've been on a crusade in the comments sections of their videos about this very subject. A few have listened, so it's important to spread the knowledge and comment constructively to the teachers.
@LeafBranchGames
@LeafBranchGames 5 ай бұрын
@@Yggdrasil777 Well, yes and no. The root problem of them teaching bad practices is that they don't understand what or why they are doing what they are doing, because the copied it from someone else. They are not out to teach, they are after views. You may tell them they should not be doing it in this way, then they will copy someone else that oes it better, but they still don't know why. They are still just copying someone else.
@user-sd9hf7jo9c
@user-sd9hf7jo9c 5 ай бұрын
thx for teaching noobs like me not waste computation juice,much love man!
@LeafBranchGames
@LeafBranchGames 5 ай бұрын
My pleasure!
@driftmirror
@driftmirror 5 ай бұрын
As I get more experienced in gamedev, I also look back on some of the content creators I've followed earlier in my journey and I can see the bad practices and bad optimization. But my opinion on them has changed a bit lately. I think its important to not discount those types of channels completely because they're responsible for bringing a lot of new and aspiring devs into the community. They may have bad practices, but sometimes for someone brand new, getting something up and running quickly can be such a huge spark of inspiration. I think they have their place very early in someone's gamedev journey. And their audience is different than the more intermediate devs that hopefully grow out of that phase. Just my thoughts on it since I saw the thumbnail!
@LeafBranchGames
@LeafBranchGames 5 ай бұрын
Unfortunately, it is a zero sum game. If a person is wanting to learn Unreal engine, they will likely pick 1 out of 10 youtube results. They will likely pick the videos with the many views or the highest shown result, they don't know that they will learn bad practices. They are very unlikely to watch all 10 results and find out which is good or bad. They are also unlikely to break free from those bad channels, since they now get suggest more from those channels. If they had instead been suggested a different video, from a channel that is more competent to begin with, they would have saved themselves time learning better from the start. This applies to everyone watching these videos. Every single view is one learner mislead.
@pulkit1437
@pulkit1437 5 ай бұрын
@@LeafBranchGamesagreed!
@TorQueMoD
@TorQueMoD 5 ай бұрын
Not to mention that we learned not just from experimentation, but from Epic's OFFICIAL videos where their own developers told us to use UI Bindings. lol.
@As_Ss
@As_Ss 5 ай бұрын
Thats the issue, they are content creators, not real ue devs they pretend to be, they never evolve, thats why they constantly do yt tutorials and not games, cuz they dont know how to do a game properly, thats why they will promote again and again, bad practices, cuz they dont create real games, so they dont know the issues of a real game cuz they never did one. And ppl like that are teaching others... LOL Their simple tutorials will work without issues even with bad practices, a real game will not. The are basically misleading ppl that they know things. The only exception are those that at least mention its a bad practice and a quick setup and u shouldn't do it in a real game.
@driftmirror
@driftmirror 5 ай бұрын
@@LeafBranchGames I agree completely on the quality part, I'm not defending that in the slightest. I don't agree that it's a zero sum game though. I used to watch those channels a lot a couple of years ago and I found your channel and others with higher quality from YT recommendations. I know I'm not the only one and I disagree that beginners will stick with one channel only if they really want to pursue game dev in Unreal. Many that are excited by what they see look for more content and other creators. My argument is that while the quality is not good, bringing more people into this hobby and potentially this career is always a good thing. This community only thrives and survives if it consistently grows and we get more people interested in it. To that effect, those lower quality channels are good for introducing more people to the hobby. Sure, many will probably leave once they're game doesn't package or they can't figure out why their performance is awful after following a bad tutorial. But overall I still think its a net positive to get more developers interested in game dev.
@mahkhardy8588
@mahkhardy8588 5 ай бұрын
Couple of bindings here and there no big deal, but if scaled out to everything it becomes bad practice. Games should be event driven, not many use cases for bindings these days UE should depreciate it. Loving this series of videos keep up the good work.
@LeafBranchGames
@LeafBranchGames 5 ай бұрын
Thank you, appreciate it!
@tresdimatop8603
@tresdimatop8603 4 ай бұрын
hey, that was cool! thanks!
@LeafBranchGames
@LeafBranchGames 4 ай бұрын
My pleasure!
@AdrianTabacaru
@AdrianTabacaru 5 ай бұрын
Thank you!
@LeafBranchGames
@LeafBranchGames 5 ай бұрын
My pleasure!
@baziztsahy3927
@baziztsahy3927 5 ай бұрын
This is the video that mademe subscribe+Patreon. I have no idea how I didn't discover you earlier
@LeafBranchGames
@LeafBranchGames 5 ай бұрын
Thank you for your support! KZbin is hiding my content like precious gems, you need to work to find them!
@andrzejmnich1285
@andrzejmnich1285 5 ай бұрын
This is a known issue. Only bad developers (like Gorka) would do this. That's why it annoys me when he shares his videos on UE5 fanpages and no one reviews his posts before accepting.
@LeafBranchGames
@LeafBranchGames 5 ай бұрын
More scrutiny is for sure needed.
@krzysztofbulicz416
@krzysztofbulicz416 4 ай бұрын
Gorka is using the bad code, but at least, he is the only guy on this ducking youtube who can spalin anything. You can't make games using his code examples, but you can make quick prototypes and learn some features. What is useful for game designers
@LeafBranchGames
@LeafBranchGames 4 ай бұрын
​@@krzysztofbulicz416 Is it useful for game designers to learn something with the wrong information so that when they try to make use of what the "learned" they don't understand why things are not working as intended? Doesn't sound like very useful for a game designer.
@krzysztofbulicz416
@krzysztofbulicz416 4 ай бұрын
@@LeafBranchGames Designers don't write code. We simply have to find the coolest and most suitable solutions, then write them in a design document for the coders and the rest of the team to execute, conducting the implementation process. For us, it doesn't matter if the prototype code is optimal. Sometimes, instead of using a "progress bar," we are using the piece of paper on a stick. We don't design code logic, that's the responsibility of the lead programmer. Quick prototypes are meant to be just as quick as possible. Spending time on optimizing code is overkill. What matters is the MVP. Thanks to this dirty prototypes, the coders can write clean code. Until the designer came back with some iterations xd
@krzysztofbulicz416
@krzysztofbulicz416 4 ай бұрын
By the way, don't get me wrong, I'm glad to found your channel. It's a great next step after channels like Gorka's, and please continue with your content.
@juggernautx1779
@juggernautx1779 5 ай бұрын
wish I found this long ago. thought Bindings were just listeners.
@LeafBranchGames
@LeafBranchGames 5 ай бұрын
Sorry to hear that. This is unfortunately the effect of large channels promoting bad practice. They have a great reach and drowns out other channels teaching better ways. :/
@juggernautx1779
@juggernautx1779 5 ай бұрын
@@LeafBranchGames unfortunately yeah, thank God I came across your channel, good thing that I don't watch much tutorials or rely on them, unless I'm exploring something new and for the UI was from when I was a beginner, so I kept doing these bad practices until this video, thank you! My jaw dropped when I saw that print screen printing all the time
@TorQueMoD
@TorQueMoD 5 ай бұрын
Oh damn! I did NOT know that UI bindings run on tick, but of course they do, how else would they work. lol. Thank you for this! I'm so mad that Epic's own tutorials are why everyone thinks we need to use UI bindings. lol
@LeafBranchGames
@LeafBranchGames 5 ай бұрын
My pleasure!
@IGiveTheBestTakes
@IGiveTheBestTakes 3 ай бұрын
Whats funny is I always thought this but every tutorial I watched used binding so I assumed it was standard practice and doing it the way I did it in Unity was over complicating it.
@LeafBranchGames
@LeafBranchGames 3 ай бұрын
I can see how you would come to that conclusion. But no, it is not standard. It is a very bad practice and it is shown by the tutorial channels that are the least competent when it comes to Unreal engine. They generally just copy some other channel and don't know what or why they are doing it. It is fairly common like you said.
@johnp3103
@johnp3103 5 ай бұрын
This is great content - thank you, you've earned a subscriber! I first realised "bind" was problematic a few years ago, and switched to Event Dispatchers to communicate with my HUD. For my current project I've taken a different approach and have zero (or very little) code in my Widgets at all. At begin play, the character gets a reference to the hud. If something needs to change (health, etc) the character reaches into the HUD and changes that value when needed. The Widget is just a canvas (pun intended) for other blueprints to update as needed. Seems pretty clean so far. Thoughts?
@LeafBranchGames
@LeafBranchGames 5 ай бұрын
Thank you for the support! That works. My concern is that as a person who has not worked on your project, or for yourself if you are gone for a long time and come back, that you will instinctively look in the widget for logic, so it may not be the "logical" place for the code. For the widget to be changed outside of that specific blueprint can feel odd. If you at least have a function in the widget that is "update widget health" or whatever, and you always call that from other blueprints, you at least have a common funnel for your code, and you can backtrack where that function gets called in case you need to troubleshoot or expand on your logic.
@Foxcoder
@Foxcoder 5 ай бұрын
yep , assign binding is much efficient, also abstract the health owner will also make widget reusable, good tutorial
@LeafBranchGames
@LeafBranchGames 5 ай бұрын
Thank you!
@shubhamgangwar4165
@shubhamgangwar4165 5 ай бұрын
Huge fan of this channel, I have a request: Can you please create some videos on vehicle part, very less concent is available
@LeafBranchGames
@LeafBranchGames 5 ай бұрын
You mean like this? kzbin.info/www/bejne/qoOWpIaDeZJ3Zqc kzbin.info/www/bejne/j4SkaYOmmrJrlac
@Wauzy
@Wauzy 2 ай бұрын
I am glad to have found this channel. In the 5 videos I've watched so far, you do a great job. I understand what you are explaining, even if KZbin has to translate it for me. Thank you for your work and you have my subscription. Only 799 to 20,000 subscribers. Good luck for the future. Ich bin froh diesen Kanal gefunden zu haben. In den 5 Videos die ich mir bisher angeschaut habe, machst Du Großartige Arbeit. Ich verstehe was du Erklärst, auch wenn KZbin es für mich übersetzen muss. Danke für Deine Arbeit und Abo hast Du von mir. Nur noch 799 bis zu 20.000 Abonnenten. Viel Erfolg weiterhin.
@LeafBranchGames
@LeafBranchGames 2 ай бұрын
Thank you for your kind words and support. I have actually considered createing dubbed versions of some of my videos to reach audiences like you. The reason I have not done it, was because I felt it would be weird if I referred to, for example, a button with a certain text, and the dubbing would not be saying the same word as it is named in the german unreal engine. Do you think that would be an issue or would it be managable?
@Wauzy
@Wauzy 2 ай бұрын
@@LeafBranchGames You hear it, you see it and yet sometimes you read nonsense. That's why I set UE to English. It's easier, so there's no confusion when naming the node. I can also see visually what the node looks like. Because sometimes they only differ a little, so the different names just get in the way. KZbin is quite good from English to German, especially if the speaker speaks well. Compliments to you. But sometimes the names are translated and sometimes not, so you can't rely on YT. Visual control is always better. I can't judge what it's like when there's a transcript, because I'm using English (automatically generated) => German under Use subtitles. I cannot judge how it is in other languages. It would be manageable but unnecessary, as you would then be just one of many. I recommend putting the UE5 in English and learning it that way. You're honored that you thought about it, but I don't think it's worth the extra work. In the beginning I would have been happy about it, but since there are many more English tutorials, it makes more sense to switch the UE to English. My German UE channels also have their UE in English. I hope you understood everything and I was able to share my experience with you and help you with your decision. Man hört, sieht es und doch liest man manchmal Stuss. Darum hatte ich UE auf Englisch gestellt. Das ist einfacher, damit entsteht keine Verwirrung bei der Knoten Benennung. Ich kann so auch optisch sehen wie der Knoten aussieht. Denn ab und an unterscheiden sie sich nur ein wenig, da störten die unterschiedlichen Benennungen nur. KZbin ist recht gut von Englisch ins Deutsche, besonders wenn der Sprecher gut spricht. Kompliment an Dich. Aber Benennungen werden mal übersetzt und dann wieder mal nicht, da kann man sich nicht auf YT verlassen. Da ist die Optische Kontrolle immer besser. Wie es ist, wenn ein Transkript vorliegt, kann ich nicht beurteilen, da ich Englisch (Automatisch erzeugt) => Deutsch bei Untertitel verwenden eingestellt habe. Wie es in anderen Sprachen ist, kann ich nicht beurteilen. Es wäre beherrschbar aber unnötig, da du dann nur einer unter sehr vielen wärst. Ich empfehle die UE5 in Englisch zu stellen und sie auch so zu erlernen. Es ehrt dich das du darüber nachgedacht hast, aber ich finde es die Mehrarbeit nicht wert. Am Anfang wäre ich darüber Froh gewesen, aber da es viel mehr Englische Tutorials gibt ist ein Umstellen der UE auf Englisch sinnvoller. Dazu haben meine Deutschen UE Kanäle ihre UE auch auf Englisch.
@LeafBranchGames
@LeafBranchGames 2 ай бұрын
@@WauzyThank you for the thoughtful and in depth reply. It is very much appreciated. :)
@unknownrh155
@unknownrh155 5 ай бұрын
Again, I have to point out. The binding function has it's own purposes and that is why Epic Games keep it. Professionals use it all the time but with conditions. Other YT videos I have to agree they use it in the wrong way, but it's a way for you to understand how it works. They are meant to be easy to understand and straight to the point. It's not all bad like you said, otherwise why would Epic Games keep this binding function in the first place. Even their official documentation impelementation uses and encourage to use this method. In Fortnite they use it. I'm not to condemn your claim but to be open.
@LeafBranchGames
@LeafBranchGames 5 ай бұрын
Everything has a purpose. But if the purpose for example is only for prototyping, and not to be used for continued development, then it should not really be taught as such. Like I said in the video, Epic is working on making a system that avoids the negatives of bindings.
@HongPong
@HongPong 5 ай бұрын
perfect timing for a good review on this since its always weird to pick up in /any/ framework .. UE itself does not publicize these basic practices as much as they should probably
@LeafBranchGames
@LeafBranchGames 5 ай бұрын
This is true. Epic maybe should be a bit more transperent on this front, since they are the prime authority on the subject since it is their engine.
@becmuda174
@becmuda174 3 ай бұрын
thank you so much for this! But I also wonder what would be the best case to use UI bindings? Or we should never use them at all?
@LeafBranchGames
@LeafBranchGames 3 ай бұрын
I would not use them even for prototyping personally.
@thedog2320
@thedog2320 5 ай бұрын
So question with this, I have a VR project that features a tablet that the player can use as a in-world interactable menu. The tablet is stored on the players back, and the widget on the tablet is only active when the tablet is picked up and turns off when dropped. The widget displays the current real world time, which is pulled from a bind to get current time (now>gethour etc). What do you think is the best approach to do this? Should i fire off a timeline each for hour, minute, and seconds instead of a bind? Is that more efficient, or is this a case where the bind is more beneficial? I think as an alternative, i could fire it off every minute updating hour and minute and omit the seconds as they are not commonly displayed on tablets/phones. Thoughts?
@thedog2320
@thedog2320 5 ай бұрын
well, I just tested it and answered my own question. this is absolutely a better solution than using the bind. I need to sync the timer up better with current time but overall its working. I removed the seconds as it was unnecessary information and now fire the timer by event every 60 seconds to update the hour and minutes. This obviously is a significantly better solution than the bind firing on tick. Thanks for the info and teaching me something new.
@LeafBranchGames
@LeafBranchGames 5 ай бұрын
Glad to hear you sorted it out. What is best will depend very much on the design and what your needs are. If you need something updated frequently, then you want to pick a solution that handles that. If you don/t need such a high frequency of updating, then you can find something more performant and rare.
@image4546
@image4546 5 ай бұрын
Hi, thanks for tutorials. Im using in Blueprint (PlayerCharacter_BP / NPC_BP) at Beginplay cast to Widget - create reference and make whole calculation HP/Mana in BP (like smooth decrease/increase hp bar) and then just send by reference result to Widget. Do you think is it good way?
@GC-jm9bt
@GC-jm9bt 5 ай бұрын
No, your UI should be aware of your pawn/controller. Not the other way around.
@LeafBranchGames
@LeafBranchGames 5 ай бұрын
I would suggest something like this: kzbin.info/www/bejne/mJXWg4KebdKEkM0
@Animamundi24
@Animamundi24 4 ай бұрын
Technically, [Divide] calculation is harder than [Multiply], so I could say do not divide by 100, multiply by 0.01 instead.
@LeafBranchGames
@LeafBranchGames 4 ай бұрын
Sure. But that is like turning the side mirrors on a card to make it more aerodynamic so it can move faster and overlooking that someone has stolen all your tires.
@finesseandstyle
@finesseandstyle 4 ай бұрын
So what if you have health regeneration or DoT damage? You'd have to use it on tick or you could maybe set on a set inverval but it won't be smooth when it's updating. Couldn't you use Invalidation Box with binding instead so it won't update when the health is staying still?
@LeafBranchGames
@LeafBranchGames 3 ай бұрын
Have you actually tried it and observed it isn't smooth?
@HumpaLumpaBiriBam
@HumpaLumpaBiriBam 3 ай бұрын
excellent. but how did you store reference to your HUD? Mine is initated through hud class (game mode setting). how did you get it player controller?
@LeafBranchGames
@LeafBranchGames 3 ай бұрын
You can just create a widget called hud and add it to the viewport. The old HUD system is deprecated as far as I know.
@HumpaLumpaBiriBam
@HumpaLumpaBiriBam 3 ай бұрын
@@LeafBranchGamesplease advise: I want to load umg widget on screen, i will do it once at the start of the map. Logically I can do it from 3 places, hud, level, playerController class. Its inrelevant if hud class will be depreciated, its just another "level in hierarchy". Problem I got... IF I want to access widget from playerController while it was initiated by level class. How do I access it? and vice versa. If I have some logic in level class and I want to access my widget created from PlayerController class. (class mean blueprint). I did it using GetAllWidgetsOfClass and store obj ref locally, but i dont think this is nice/right way.
@HumpaLumpaBiriBam
@HumpaLumpaBiriBam 3 ай бұрын
@@LeafBranchGamesplease advise #2: also doing so.. I cant be certain that my widget-obj-ref variable will be initiated correctly. Since it's all happen in BeginPlay.. I cant be guaranteed the order of initiation. So I might try to get ref to non-existing object. :( It did happen to me and I had to implement "delay 0.5 sec" before calling to find widget by class... again... looks messy.
@LeafBranchGames
@LeafBranchGames 3 ай бұрын
@@HumpaLumpaBiriBam Hopefully this will shed some light for you: kzbin.info/www/bejne/mJXWg4KebdKEkM0
@LeafBranchGames
@LeafBranchGames 3 ай бұрын
@@HumpaLumpaBiriBamInstead of begin play you can make use of onpossess event. Should be a better event for most UI cases.
@carlosrivadulla8903
@carlosrivadulla8903 5 ай бұрын
Uisco is the king of bad practices
@LeafBranchGames
@LeafBranchGames 5 ай бұрын
Thanks for the tip!
@washynator
@washynator 5 ай бұрын
True, but I believe he has rebranded as "Unreal University"
@lambda-snail
@lambda-snail 5 ай бұрын
Hmmm, I think you only demonstrate function bindings, but what about property bindings? Do they also suffer from the same problem?
@LeafBranchGames
@LeafBranchGames 5 ай бұрын
I can not say for certain. So I would err on the side of caution and assume they are bad. I will make a note of this and try to get the the truth on the matter.
@lambda-snail
@lambda-snail 5 ай бұрын
@@LeafBranchGames I agree! I guess it's a bit difficult to test since we can't log things when we set or read them (as far as I know) so it seems reasonable to assume they're bad :)
@LeafBranchGames
@LeafBranchGames 5 ай бұрын
@@lambda-snail You may be able to discern it using Unreal insights. Feels a bit like killing a fly with a shotgun though.
@PopcornChicken99
@PopcornChicken99 5 ай бұрын
Do you recommend any other ue5 channels that show the better solutions like you do? I don't want to watch any channels that will give me bad habits and make my projects run slow.
@LeafBranchGames
@LeafBranchGames 5 ай бұрын
I am unaware of any channels that point out things in this manner. But if you want to know of some great channels, I have a playlist called great content creators, you can find it here: kzbin.info/aero/PLNBX4kIrA68nNmiUEl79NYZJIeL62NuH4
@Yggdrasil777
@Yggdrasil777 5 ай бұрын
Kekdot does wonderful UI work.
@ACouchpirate
@ACouchpirate 5 ай бұрын
I am not entirely sure whether the data would reach the widget correctly 100% of the time with the method I am about to mention, but couldn't you just bind to the character's On Any Damage event and have it update the widget through that? I could imagine it might need to wait for a frame, but that way you dont need to store all of your widgets as references in the HUD
@LeafBranchGames
@LeafBranchGames 5 ай бұрын
You could bind an event dispatcher if you want sure, I show this a lot in my RPG series. But you may not want to have the widget process information isntead of just displaying the health reality. What if you for example have armor and the 10 damage in the any damage event needs to be mitigated down to 7. Then the widget will process 10 damage, or the even the mitigations, which should really not be in the widget.
@AndreaFromTokyo
@AndreaFromTokyo 5 ай бұрын
TBF, even the unreal devs said that bindings are meant only for debug purposes and should never be used in a finished product for that exact same reason! Guess not many people indulge in reading documentation or listening to the Devs ( unreal engine devs)
@LeafBranchGames
@LeafBranchGames 5 ай бұрын
Indeed. Unreal devs does not have as great of a reach to the new people wanting to learn Unreal engine, so they don't get exposed to this information and it gets lost.
@dorondavid4698
@dorondavid4698 5 ай бұрын
I was surprised to see that the binding is called every tick. From my experience, a new value should only be assigned if it differs from the old value. So why would unreal engine implement it this way? The Devs at epic are extremely smart, so I doubt it's an oversight. Does it maybe have something to do with needing to update the ui as frequently as possible so the gameplay appears smoother? I'd really like to know why it was implemented this way!
@LeafBranchGames
@LeafBranchGames 5 ай бұрын
It is unlikely to be used for anything other than prototyping except for maybe some value that really needs to be updated on a per tick basis.
@dorondavid4698
@dorondavid4698 5 ай бұрын
@@LeafBranchGames I was reading into it and what it should be used for and it's basically as you had mentioned; light weight values/computations only. It was made so Devs wouldn't have to manually update hundreds of ui elements by hand, which makes sense.
@LeafBranchGames
@LeafBranchGames 5 ай бұрын
@@dorondavid4698 Indeed.
@HenrikMakesGames
@HenrikMakesGames 5 күн бұрын
Can bindings still work for an options menu that does not run in real time?
@LeafBranchGames
@LeafBranchGames 5 күн бұрын
What kind of menu do you imagine exists outside of real time?
@MIKELENZTIPS
@MIKELENZTIPS 5 ай бұрын
I was guilty of this in the past!!! Until I realised it was on tick
@LeafBranchGames
@LeafBranchGames 5 ай бұрын
Indeed. The prevalence of it is wide spread.
@MIKELENZTIPS
@MIKELENZTIPS 5 ай бұрын
That being said - I thought this was now less of an issue in UE5 as I thought the UI binding system has been rearchitectured - I have a vague recollection UE video stating this - I think it might have been that fantast UI Materials video... or perhaps the other one that shows the responsive cards system... @@LeafBranchGames
@LeafBranchGames
@LeafBranchGames 5 ай бұрын
@@MIKELENZTIPS It is something in the works, but I don't thing they have finished it yet. I do recall it from the road map in the past.
@MIKELENZTIPS
@MIKELENZTIPS 5 ай бұрын
@@LeafBranchGamesthank you for clarifying 🙏
@LeafBranchGames
@LeafBranchGames 5 ай бұрын
@@MIKELENZTIPS No problem
@dwain.d
@dwain.d 5 ай бұрын
I've noticed that over time as I've become better at UE I'm finding I'm coming across better quality tutorials and channels such as this one. There is so much bad advice out there.
@LeafBranchGames
@LeafBranchGames 5 ай бұрын
Unfortunately, that is not what new learners are exposed to. So they all have to go through the bad ones. This is a problematic issue. So unless they reach your point where they go outside of those channels, they are kept learning the low quality.
@AdeptusIncompetus
@AdeptusIncompetus 2 ай бұрын
So what's the point of having the option to use Bindings? Should this be removed from the engine all together?
@LeafBranchGames
@LeafBranchGames 2 ай бұрын
It will probably become deprecated at some point.
@nikgamesgamedev
@nikgamesgamedev 5 ай бұрын
I think this is war between gorkagames, uisco and you)))))😂
@LeafBranchGames
@LeafBranchGames 5 ай бұрын
Don't know who uisco is, but that is Matt Aspland, not Uisco.
@nikgamesgamedev
@nikgamesgamedev 5 ай бұрын
@@LeafBranchGames my mistake. matt aspland, you wright
@BROCKSGAMING
@BROCKSGAMING 5 ай бұрын
As a coincidence , i also found this type of bindings are bad using printstring but in early stages of development
@LeafBranchGames
@LeafBranchGames 5 ай бұрын
Makes sense
@arturzolkos2859
@arturzolkos2859 5 ай бұрын
Why do bindings even exist? Is there a use case where it is better to calculate UI each frame?
@LeafBranchGames
@LeafBranchGames 5 ай бұрын
There could be an argument for very rare cases. Maybe a time being displayed that needs to be as accurate s possible, like for timed laps or performances. Or possibly a UI element that would need updating constantly, like a speedometer or something. But it is exceedingly rare. Most likely it is there for convenience, and very very light weight calculations where it might not have an impact.
@Adil-vi8xw
@Adil-vi8xw 5 ай бұрын
Early comment 💬
@LeafBranchGames
@LeafBranchGames 5 ай бұрын
Well done!
@kellowattentertainment
@kellowattentertainment 5 ай бұрын
Those Gorka Games tutorials are always simple and he always looks for easy ways to do stuff in unreal engine. Don't get me wrong, he's a good lad, but I stopped following his tutorials when I understood that his approach is far from the best even though it is simple.
@LeafBranchGames
@LeafBranchGames 5 ай бұрын
That something is simple is ususally a warning sign.
@dreadtrain2846
@dreadtrain2846 5 ай бұрын
Haha those channels are great examples of bad practice in everything they post. Not just those two either, heh.
@LeafBranchGames
@LeafBranchGames 5 ай бұрын
True!
@fael097
@fael097 5 ай бұрын
I only like this cuz matt aspland is like the worst "gamedev" on youtube lol
@LeafBranchGames
@LeafBranchGames 5 ай бұрын
Which is unfortunate considering how many people "learn" from him.
@buster5661
@buster5661 5 ай бұрын
Bro you could have just stated at the begining that it's a tic issue. You could of saved me 5 minutes. That's the problem with all these gosh darn tutorials
@LeafBranchGames
@LeafBranchGames 5 ай бұрын
Yeah I could have. That might have been good for you. But for someone who doesn't understand tick, it would not be as clear cut. Even for someone who understand tick may not have believed it and wanted visual confirmation. Yet others may have understood all of these things but not known of a better alternative to it. You do not represent everyone, and no tutorial can fit everyones need. The tutorial can't be 20 seconds long as well as describe Unreal Engines architecture.
@buster5661
@buster5661 5 ай бұрын
@@LeafBranchGames I represent those who dont not understand blueprints. So it would be a benefit to everyone if you did.
@LeafBranchGames
@LeafBranchGames 5 ай бұрын
@@buster5661 You represent a small subset of that demographic, sure.
@achtnullachtInsights
@achtnullachtInsights 2 ай бұрын
Hi, I've been following you for some time now and I really enjoy your videos. Do you have a Discord server where I can get in touch with you?
@LeafBranchGames
@LeafBranchGames 2 ай бұрын
Thank you! Yes, you can find the Discord link in the description of every video.
Improve UI debugging with Widget Reflector - Be a better game dev
9:15
LeafBranchGames
Рет қаралды 1,7 М.
Is X4 Foundations Worth Playing in 2024?!
10:45
Nyxson
Рет қаралды 11 М.
Wait for the last one! 👀
00:28
Josh Horton
Рет қаралды 107 МЛН
Osman Kalyoncu Sonu Üzücü Saddest Videos Dream Engine 170 #shorts
00:27
UE5: Building Structures - #1 Manual Modelling
47:54
UnrealityBites
Рет қаралды 16 М.
UE5 Understanding hard and soft references - Be a better game dev
19:58
UE5 Understanding Pure Functions - Be a better game dev
14:48
LeafBranchGames
Рет қаралды 4,2 М.
PLEASE just use CASTING
14:18
The Game Dev Cave
Рет қаралды 7 М.
Unreal Engine Optimization: Hard and Soft References
6:00
Unreal Dystopia
Рет қаралды 2 М.
UE5 Understanding Delay - Be a better game dev
13:29
LeafBranchGames
Рет қаралды 6 М.
How to improve your debugging skills - Be a better game dev
16:56
LeafBranchGames
Рет қаралды 4 М.
De-Mystifying Inventory Systems - Unreal Engine 5 - Part 1
29:05
DarkslayerTV
Рет қаралды 1,8 М.
The Most Common Mistake Beginners Make in Unreal Engine | UE5
12:17
Ali Elzoheiry
Рет қаралды 94 М.