15 Tips for Clean and Tidy Blueprints in Unreal Engine

2024 ж. 14 Мам.
36 064 Рет қаралды

Support the channel on Patreon:
/ cobracode
Being able to keep your Blueprints clean and tidy is a very important skill to have as a game developer using Unreal Engine.
In this video I will give you 15 tips on how to keep your Blueprints clean, tidy and organized. No more spaghetti code (or nodes).
● Subscribe: / @cobracode
● Twitter: / cobracodedev
UE Component Documentation: docs.unrealengine.com/4.27/en...
UE Blueprint Function Library Documentation: docs.unrealengine.com/4.26/en...
OOP Inheritance Wikipedia: en.wikipedia.org/wiki/Inherit...)
Timecodes:
0:00 Intro
0:22 1. Reroute Nodes
0:39 2. Sequence Node
1:00 3. Enums & Switch
1:31 4. Straighten Nodes and Connections
2:08 5. Consistent Node Layout
2:28 6. Make many Functions
3:07 7. Collapse Nodes
4:28 8. Set Timer by Function Name
5:05 9. Select Node
5:41 10. Comments
6:19 11. Custom Events
6:46 12. Actor Components
7:21 13. Blueprint Function LIbraries
7:41 14. Parent / Child Inheritance
8:19 15. Marketplace Plugins
Icons made by Freepik (www.freepik.com) from Flaticon (www.flaticon.com/)
#cobracode #gamedev #madewithunreal #indiedev #gamedevelopment

Пікірлер
  • If you're advanced you probably already know a few of these tips so make sure to use the timestamps to skip to the sections you think might be helpful for you and share this video with your friends that have dirty blueprints!

    @CobraCode@CobraCode2 жыл бұрын
    • A good collection of tips. One note on the section about collapsed nodes: You don't actually lose access to local variables when collapsing nodes inside a function. It's true that any of the local variables included in the collapsed selection break, but this appears to be a bug of some sort. If you place a fresh "Get Variable" inside the collapsed node it will work correctly. This allows you to skip having to pass them in like parameters.

      @MagForceSeven@MagForceSeven2 жыл бұрын
    • @@MagForceSeven Oh that's awesome, thanks for the tip!

      @CobraCode@CobraCode2 жыл бұрын
  • Nice list. These are all great tips. I'd add that Alt and Ctrl let you unplug and hold wires or just unplug them. I didn't figure this out until years deep.

    @elliottberkley@elliottberkley9 күн бұрын
  • One thing I don't see a lot of people talk about that often is that you can create multiple Event Graphs. Actor components are super common professionally but beyond that its super helpful to keep major parts of BP isolated on their own Event Graphs within a Actor BP or AC.

    @Fighter05@Fighter05Күн бұрын
  • One of the very useful features for me (and i learned it too late xd) is interfaces. It's basically a way to connect blueprints without having them related. For example, if we wanted to check if an actor is available for interaction, we could cast to it, get the ref, check the variable. Sure, but if we had 10 different, unrelated blueprints (but still had the interaction part in common we'd like to check), we'd have to make 10 cast nodes, check if it's the right actor and then get the variable. If you add more bps it will get pretty messy. Instead you just implement an interface (and set it up), and then you just send a message. If it implements that interface, it will answer.

    @MrKosiej@MrKosiej Жыл бұрын
  • Thanks for the resources. The alignment shortcut is awesome!! 😎

    @DaBaSoftware@DaBaSoftware2 жыл бұрын
  • I agree with a bunch of these (in fact, I considered making a similar video, and decided to do a search first), but I would like to note that functions and collapsing aren't always better. I always encourage compression based programming, where you only move things to functions when you start re-using a piece of code. Having the full set of nodes in front of you lets you use the spatial parts of your brain, and when something is hidden in a function, you have to imagine it. Sometimes that trade-off is worth it, sometimes it's not.

    @RC-1290@RC-12902 жыл бұрын
    • Thanks for pointing that out! Yeah, I can definitely see an argument to not collapse everything all the time.

      @CobraCode@CobraCode2 жыл бұрын
    • "I always encourage compression based programming, where you only move things to functions when you start re-using a piece of code" I do this as well, but the down's side is that some of my blueprint functions are HUUUGE

      @rogermichou8654@rogermichou8654 Жыл бұрын
  • Excellent tutorial, man. Thanks for making it available.

    @johnrex7108@johnrex71082 ай бұрын
  • The q shortcut for alignment is super useful! Thx🎉

    @cloudliusihui@cloudliusihui Жыл бұрын
  • I learned a lot form these tips. Thank you! 👍✌

    @kencg6566@kencg6566 Жыл бұрын
  • Great video. Straight to the point and informative!!

    @poly_xp@poly_xp Жыл бұрын
  • This was very helpful. Thanks!

    @rohanthorat1409@rohanthorat140911 ай бұрын
  • Thank you so much for that movie. It will help a lot with maintaining my code!

    @tekilla78@tekilla78 Жыл бұрын
  • 1:10 Gotta admit that this subtle reference made me laugh 😂 Thank you for the advices !

    @LauraVlrs@LauraVlrs Жыл бұрын
  • 01:51 by god this is a blessing. Thank you!!!!!!

    @alexboehm7171@alexboehm71719 ай бұрын
  • Thanks, that was the great guide

    @pamparam3495@pamparam3495 Жыл бұрын
  • Excellent content

    @klovvin@klovvin4 ай бұрын
  • Good video. I'd also add data assets and data tables. It's the idea of data oriented design over object oriented. It makes dev much cleaner.

    @Kinos141@Kinos1417 ай бұрын
  • Great content

    @MichaelDavis-nu3sz@MichaelDavis-nu3sz2 ай бұрын
  • Man, do asmr... Thanks for the tip about Timer by function name. Never used that before, always had problems with functions and delay.

    @KnivesFrank@KnivesFrank2 жыл бұрын
  • Hey Thanks for the video on blueprints - I liked it very much Do you plan to record any more tutorials?

    @user-nw9vq1zx3j@user-nw9vq1zx3j2 жыл бұрын
    • Thank you, I'm glad you liked it! With my current schedule I'm releasing one video every ~2 weeks and already go the next one lined up to come out December 22nd :)

      @CobraCode@CobraCode2 жыл бұрын
  • Thank you thank you so much

    @dumpsterfire2985@dumpsterfire2985 Жыл бұрын
  • Thank You

    @rifat.ahammed@rifat.ahammed11 ай бұрын
  • 1:51 THANKSS I LOVE YOU!!! THANKSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS I hate when that happens and now I discover there is a solution :'D I'm going to cry

    @laurino.@laurino. Жыл бұрын
    • Does someone knows how to do the same with comments? Sometimes they don't align :c

      @laurino.@laurino. Жыл бұрын
  • Excellent

    @arkemal@arkemal Жыл бұрын
  • I know most of this tips but still that's a good video we've got there)

    @romaiiika88@romaiiika882 жыл бұрын
  • Great!

    @sandermann@sandermann Жыл бұрын
  • When you said subscribe, the subscribe button lit up hahahaa

    @summationx8376@summationx83762 ай бұрын
  • Any chance anyone knows the track at 2:40?

    @aliaksandrandryiashka@aliaksandrandryiashka9 ай бұрын
  • I love you

    @Alexlinnk@Alexlinnk6 ай бұрын
  • Helpful tips! Curious how do you add a pinned comment? Like @ 7:35 where it says "Move spawn location forwards a bit". Is this only available in Unreal Engine 5?

    @couchpotato2751@couchpotato2751Ай бұрын
    • Hey, you can do that even in UE4. You just need to hover over the node and in the top left it should show a speech bubble with 3 dots

      @CobraCode@CobraCodeАй бұрын
  • Good advice. But I would rather remove 7, 8 and 9. 7 - You create extra graph depth, which is superfluous. If you want, you can create "Tick graph" for example instead of collapsed nodes. 8 - Better not to even try to use any async logic in functions. At a minimum, using the timer only by event will create the same design throughout the project. 9 - The select node doesn't take just one input, it executes all the code on each input and then selects one of the results. It may cause trouble if every input is a complex pure function.

    @lookichtafer@lookichtafer11 ай бұрын
  • Meanwhile your chad computer ignoring the visual mess and yeeting through the code: 🦍💪🏻

    @thecakeisalie6392@thecakeisalie6392 Жыл бұрын
  • 1:11 lol I love the yandev meme

    @tableprinterdoor@tableprinterdoor Жыл бұрын
    • Finally somebody noticed 😅

      @CobraCode@CobraCode Жыл бұрын
  • I cant find the vid u referencing in that video one on actor components. 6.52

    @Defenceless_baby@Defenceless_baby Жыл бұрын
    • Hey, it should be this video kzhead.info/sun/iNqFgtCinX1qiY0/bejne.html

      @CobraCode@CobraCode Жыл бұрын
  • Is it really optimize to bind event go to a other custom event ?

    @NicolasGagne@NicolasGagne Жыл бұрын
    • Do you mean 'Set Timer by Function Name'? But anyway this video isn't really about optimization, but about making things more readable and easier to navigate. Even if something is slightly less optimized, the improved readability and therefore faster workflow might be a worth wile trade off in many cases.

      @CobraCode@CobraCode Жыл бұрын
  • My brain for some reason wants to think that the computer has to process each reroute node, making the game slower at runtime. It's kinda funny now that I think about it

    @sym9266@sym92662 жыл бұрын
  • I just use sequences, set timers by events and collapse all other excess code into functions.

    @noahbrewer2476@noahbrewer2476 Жыл бұрын
  • 0:43 be careful with sequence, especially with timings as it will not flow correctly and be out of sync

    @philzan3627@philzan36272 жыл бұрын
    • You mean when using a delay, timeline or something along those lines with a sequence? Yeah I should have mentioned that, thank you!

      @CobraCode@CobraCode2 жыл бұрын
    • @@CobraCode it's also problematic for asynchronous operations (like calling an API), as one operation can "end" (reach the end of the call) before it actually resolves (usually by triggering a callback function). Basically, much trickier once you have callbacks.

      @michaelybecker@michaelybecker Жыл бұрын
  • Step by step tutorial to solve world hunger. step 1: become a beginner to unreal engines bps again. step 2: make a procedurally generated backrooms game in bp. if you finished the tutorial you should have solved world hunger.

    @DoctorOPlays@DoctorOPlays3 ай бұрын
  • Best move I ever made with Unreal was diving into C++. Now when I do use Blueprint node graphs for certain things, it's AMAZING how much cleaner they are. I anyone reading this is serious about Unreal development and hasn't picked it up yet, I can't recommend it enough. I won't say there's no additional learning curve, but if you can write code in Blueprint then you're entirely capable of writing code in C++ (at least as far as Unreal goes). Your node graphs will be cleaner, your games will run more efficiently, there are still things you'll be able to do that you can't do in Blueprint, and you'll generally just gain a much better understanding of how the engine works under the hood.

    @zackakai5173@zackakai5173 Жыл бұрын
  • Just buy Blueprint Assist plugin

    @SteelRob21@SteelRob21 Жыл бұрын
  • tip 1: learn to code

    @koyima@koyima2 жыл бұрын
    • tip 2: Realize that even when you write c++ your code won't magically be clean and you still have to stick to certain principles to make it readable and re-usable tip 3: Realize that you will never be able to ship a game if you spend 80% of your time looking through documentation to see which headers you need to import and wait for your code to compile tip 4: Get frustrated and start working with Blueprints after all tip 5: Realize that c++ and blueprints were supposed to be used together anyway and complement each other tip 6: Come back to this video and learn how to clean up your blueprints

      @CobraCode@CobraCode2 жыл бұрын
KZhead