- 40
- 286 217
Bacon and Games
United States
เข้าร่วมเมื่อ 23 ต.ค. 2023
Approachable Godot tutorials and tales of publishing with a smile. Hello! 👋 My name is Sean. I've been making games all my life, professionally for 20 years. I spent 2016-2023 at indie publisher Armor Games and helped dozens of developers ship over 50 titles on every platform. Whether you're just starting out in game development, coming down the stretch, or are somewhere in between... I can help. And if I can't, I'll be happy to introduce you to someone who can.
[Be kind to yourself and be kind to others]
[Be kind to yourself and be kind to others]
Godot Joints by Example: Just What You NEED to Know
The first 500 people to use my link skl.sh/baconandgames01251 will get a 1 month free trial of Skillshare!
Joints are an important part of the Godot physics engine but they can be a bit confusing. Well, never again. Here are several practical examples of Godot joints in the wild so you can skip the documentation and get straight to making cool stuff.
th-cam.com/video/YPZQM6w7rlI/w-d-xo.htmlsi=hPbwgu-XvKhEJoMg
th-cam.com/video/Bwgj-6Xp6_8/w-d-xo.htmlsi=uEUbt7YuULVJNNBm
Project files available on itch for free here:
baconandgames.itch.io/godot-joints-playground
0:00 - Intro
0:20 - Physics Bodies
1:35 - PinJoint2D
3:56 - Example
5:05 - GrooveJoint2D
7:07 - Example
9:15 - DampedJoint2D
12:36 - Example
13:39 - Steve
Art assets in this video by @KenneyNL ❤️
kenney.nl/assets/physics-assets
#godottutorial #godotengine #gamedev #gamedevelopment #gdscript
uppbeat.io/t/hey-pluto/heatwave
License code: KLQZOV76C6F61WKJ
This video is sponsored by Skillshare
Joints are an important part of the Godot physics engine but they can be a bit confusing. Well, never again. Here are several practical examples of Godot joints in the wild so you can skip the documentation and get straight to making cool stuff.
th-cam.com/video/YPZQM6w7rlI/w-d-xo.htmlsi=hPbwgu-XvKhEJoMg
th-cam.com/video/Bwgj-6Xp6_8/w-d-xo.htmlsi=uEUbt7YuULVJNNBm
Project files available on itch for free here:
baconandgames.itch.io/godot-joints-playground
0:00 - Intro
0:20 - Physics Bodies
1:35 - PinJoint2D
3:56 - Example
5:05 - GrooveJoint2D
7:07 - Example
9:15 - DampedJoint2D
12:36 - Example
13:39 - Steve
Art assets in this video by @KenneyNL ❤️
kenney.nl/assets/physics-assets
#godottutorial #godotengine #gamedev #gamedevelopment #gdscript
uppbeat.io/t/hey-pluto/heatwave
License code: KLQZOV76C6F61WKJ
This video is sponsored by Skillshare
มุมมอง: 3 069
วีดีโอ
Boost Your Productivity with One TINY Change 📈
มุมมอง 6Kหลายเดือนก่อน
The first 500 people to use my link skl.sh/baconandgames12241 will get a 1 month free trial of Skillshare! Staying productive and motivated is hard. After 20 years of working from home, this is the mental tool I use to build momentum and carry it into the next day. It helps me stay productive for long stretches, which leads to a happier and more fulfilling week :) You don't need to buy any new ...
This Godot Shader Simplified My Workflow
มุมมอง 2.5K2 หลายเดือนก่อน
The first 500 people to use my link skl.sh/baconandgames11241 will get a 1 month free trial of Skillshare premium! This simple Godot color replacement shader (by @godotneers ) can be used a bunch of ways to give you more control over your sprites without having to make multiple versions of the same sprite. Godotneers covered HOW this shader works better than I ever could. In this video, we'll l...
This Script Brought My Game to LIFE
มุมมอง 3.5K2 หลายเดือนก่อน
EasySS is a free node for Godot games (GDScript) that adds juice to your game in seconds. The source is up on itch for FREE as part of my Bacon Juice pack (WIP). 0:00 - Intro 0:35 - Effect 1:36 - Walkthrough 2:15 - Parameters 3:29 - The Code 5:20 - Inspiration 6:00 - Bacon Juice EasySS code: baconandgames.itch.io/bacon-juice-for-godot Play the prototype: www.nowwhatdowedo.com Discord: discord.g...
Godot Scripting Shortcuts I Can't Live Without 🥰
มุมมอง 2.1K4 หลายเดือนก่อน
There are a bunch of handy keyboard shortcuts in the godot script editor that aren't well documented but they save me a ton of time. Let's break down each one so you can save some time too :) Godot Keyboard Shortcuts docs.godotengine.org/en/stable/tutorials/editor/default_key_mapping.html 0:00 - Intro 0:21 - Select Multiple 1:10 - Cycle Strings 1:39 - Insert Multiple Cursors 2:44 - Cursors w/ K...
10 Godot Features Hidden in Plain Sight 👀
มุมมอง 13K4 หลายเดือนก่อน
10 useful Godot 4.3 features that are easy to miss if you don't look closely enough. 0:00 - Intro 0:18 - 1. Group 0:35 - 2. Instantiate Here 1:02 - 3. Add Here 1:17 - 4. Move Here 1:45 - 5. Zoom 1:55 - 6. Play This Scene 2:22 - 7. Math! 2:40 - 8. Favorites 3:20 - 9. Goto Method Declaration 3:57 - 10. Scripting Window 4:18 - 11. Line Move 4:39 - Outro #godot4 #godotengine #godottutorial #godot #...
Create Amazing Effects with this FREE Godot Addon
มุมมอง 4.1K5 หลายเดือนก่อน
Create hundreds of styles with this free Godot addon. No shader knowledge needed. Shader Video 👇 th-cam.com/video/cObwzagwgmA/w-d-xo.html Korin's Post Processing github page 👇 github.com/ItsKorin/Godot-Post-Process-Plugin 0:00 - Intro 0:40 - Sample FX 1:15 - Installation 1:56 - Creating Effects 3:10 - Palette Swap FX 5:25 - FX via Code 7:00 - List of Properties 9:00 - Save as Resource 11:00 - T...
Take Control of Godot Text Input with RegEx (easy)
มุมมอง 1.5K6 หลายเดือนก่อน
Since Godot does not offer input restriction out of the box, let's make some. We're going to listen to the change event of a LineEdit node and scrape characters from it that we want to disallow. Godot Game Template (FREE 😀) th-cam.com/video/tNqFLmbWW-Y/w-d-xo.html 0:00 - Intro 0:20 - The Problem 1:20 - How it Works 3:05 - Manipulating the Cursor 5:40 - Game Template Update RegEx (in 100 seconds...
Simple Godot Shader I Use in EVERY Game (now)
มุมมอง 11K6 หลายเดือนก่อน
This is a sneak peek at a Godot shader I'll be adding to my Godot game template. It generates a scrolling background and has some in-editor settings that let you make beautiful tiled backgrounds in just a couple of seconds. It's perfect for making your game jam beautiful without burning time and can also work for shipped games. Double stars, everybody wins! 0:00 - Intro 0:50 - Game Prototype 1:...
Is Pausing Really THIS Simple?
มุมมอง 3.4K7 หลายเดือนก่อน
Allowing the player to pause your game is an essential feature. Believe it or not, Godot makes it pretty darn easy... 0:00 - Intro 0:31 - Example 1:01 - The Code 2:43 - Notifications 4:09 - Process Mode #godot4 #godotengine #godottutorial #gamedev #gamedevelopment
5 Handy Signal Uses You Might Not Know
มุมมอง 9K7 หลายเดือนก่อน
Most people know how to use signals in their Godot projects but here are a few methods you might not be familiar with. Or maybe you are? Let me know in the comments how many you knew. th-cam.com/video/pJZpkdo3YLk/w-d-xo.htmlsi=Mn0lzbNmd2-fRC1J th-cam.com/video/U53wf7ybnIs/w-d-xo.htmlsi=TPx4ZFeDv7bFetQ1 th-cam.com/video/2uYaoQj_6o0/w-d-xo.htmlsi=4wPpi9A4g6Xa7VWa 0:00 - Intro 0:29 - Why Use Signa...
People Seem Split on This New Godot 4.3 Feature
มุมมอง 34K8 หลายเดือนก่อน
Godot Tilemaps are going away and being replaced by Tilemap Layers in Godot 4.3, which seems like an improvement to me. What do you think? th-cam.com/video/U53wf7ybnIs/w-d-xo.html Developer looking for support? baconandgames.com/consultancy/ #godotengine #godottutorial #godot4 #gamedevelopment #gamedevtutorial 0:00 - Intro 0:33 - Deprecation 1:40 - Converting TileMaps 3:49 - TileMap Layer 5:50 ...
I Bet You Don't Know This Godot Feature
มุมมอง 23K8 หลายเดือนก่อน
Godot 4.0 TileMaps do all sorts of stuff, including this lesser known feature that lets you add scenes directly into your TileMap alongside sprites 0:00 - Intro 0:22 - Standard TileMaps 0:38 - Scene Collections 1:57 - Scene Thumbnails 3:40 - Tradeoffs 5:25 - Grid Snapping 6:30 - Outro Check out some of my other videos: th-cam.com/video/tNqFLmbWW-Y/w-d-xo.html th-cam.com/video/P7AQLUU3xKk/w-d-xo...
Godot Collision Layers and Masks… the EASY Way
มุมมอง 14K8 หลายเดือนก่อน
Godot Collision Layers and Masks… the EASY Way
I Made a Godot Template So You Don't Have To
มุมมอง 14K9 หลายเดือนก่อน
I Made a Godot Template So You Don't Have To
This Godot SceneManager Does even MORE now!
มุมมอง 8K10 หลายเดือนก่อน
This Godot SceneManager Does even MORE now!
Gamedev in 2024: Lessons from Flash Games - jmtb02
มุมมอง 49910 หลายเดือนก่อน
Gamedev in 2024: Lessons from Flash Games - jmtb02
Make an ENTIRE Godot Game in 1 HOUR (GDScript)
มุมมอง 9K11 หลายเดือนก่อน
Make an ENTIRE Godot Game in 1 HOUR (GDScript)
This FREE Godot Plugin Makes Me a BETTER Developer
มุมมอง 10K11 หลายเดือนก่อน
This FREE Godot Plugin Makes Me a BETTER Developer
Do These 4 Things to Write Fewer Bugs
มุมมอง 2.5K11 หลายเดือนก่อน
Do These 4 Things to Write Fewer Bugs
Godot Debugging Techniques EVERY Dev Should Know
มุมมอง 33Kปีที่แล้ว
Godot Debugging Techniques EVERY Dev Should Know
Watch this BEFORE You Negotiate with a Game Publisher
มุมมอง 640ปีที่แล้ว
Watch this BEFORE You Negotiate with a Game Publisher
Change How You Make Games FOREVER in just 15 mins
มุมมอง 4.5Kปีที่แล้ว
Change How You Make Games FOREVER in just 15 mins
3 Keys to Your First Call with a Game Publisher
มุมมอง 441ปีที่แล้ว
3 Keys to Your First Call with a Game Publisher
Game Devs: Watch This Before You Pitch to Publishers
มุมมอง 1.5Kปีที่แล้ว
Game Devs: Watch This Before You Pitch to Publishers
Don't Make These Mistakes When Pitching to Game Publishers
มุมมอง 1.7Kปีที่แล้ว
Don't Make These Mistakes When Pitching to Game Publishers
5 Fun Challenges to Level Up Your Godot Programming Skills
มุมมอง 1.4Kปีที่แล้ว
5 Fun Challenges to Level Up Your Godot Programming Skills
Do THESE 5 Things when Emailing Game Publishers
มุมมอง 1.7Kปีที่แล้ว
Do THESE 5 Things when Emailing Game Publishers
Saving a High Score: Godot 4 Snake Tutorial
มุมมอง 3.3Kปีที่แล้ว
Saving a High Score: Godot 4 Snake Tutorial
I spent an hour with this not working because Godot's UI is counterintuitive. Instead of filling up the space in the properties section to show more layers, there is a gap and TINY arrow that shows a larger list of layer numbers. Someone had ticked layer 16.
That’s frustrating
Just 40 seconds in and just that sentence between what a collision layer is and a mask layer is made it all click finally, thanks!
👏 awesome!
what if you have a staticbody, that you want to have it do something when something collides with it? Say you have your sign, and when something physically bumps it you want to do something to it? You cant use an Area2D because you would not trigger the OnEntered, because the staticbody prevents the overlap. Staticbodys dont handle collision either that i can tell its all on the thing that is moving. To remedy this i thought making it a characterbody2d would work, but they only check for collision if they are moving.
You should be able to handle the logic on the side of the moving object, a rigid body or a char body. When a collision occurs you check what it collided with and then call the method whenever that exists, which could be on the moving body, a singleton, or even on the static body - you can check the data type of the static body (which might extending that class to add whatever methods you need and thus you know has a particular method) or even use has() to check any number of static bodies that might have a method you want to call. Does that make sense? Sorry - tapping this out on my phone AFK
@@baconandgames yea that makes sense, but that was what i was trying to avoid, because then anything that can trigger the method has to connect to something, rather than just having a staticbody be able to detect collision. Thank you, ill just have to have things connect to the staticbody.
@Frazer213 I’m sure there are other ways to do it. I’m traveling but I’ll have a more thoughtful look at it when I get back to my office.
@ So how im currently doing it is what ever i collide with, i have the player script check to see if it has a method called OnPlayerCollision, then i call that. Still feels wrong but at least this way i dont have to connect a bunch of nodes manually and check for ref timings.
That's a pretty common design pattern in Godot, so I don't think it's "wrong" per se. I don't particularly love that either because I come from an OOP background and expect to know more about and object before interacting with it. But this sort of "duck typing" is expected in Godot. An alternative might be to use groups, but again you're still checking the collision for whether it's in a group, which really isn't any different than "does the object implement method X". Generally speaking, getting data from a physics collision and acting appropriately is, I think, pretty standard so no matter what solution you end up you're likely going to doing some form of that. Where the code that gets run as a result of an identified action probably allows far more room for interpretation (is it the collider, the collidee, a singleton, a Static class, etc... who executes the code that needs to run)? At the end of the day, unless you're building something that you expect to be working on with a large team or updating for years to come, I'd say if it works... move on. At the end of the project you'll have a lot more context for the choice you made and may elect to stick with it in future projects and if not, you'll have a better set of data for choosing your next solution.
This video is very helpful, thank you!
You're so very welcome, Popeye! 🙏 (this is going to be a very confusing comment to read if you ever change your profile pic 🤣)
@@baconandgames I will never change Popeye picture😂.
@hussain_abdullah 😅
_"Oh, Steve!"_ 😂 Love the ending. … Well, I also enjoyed the rest of the video, no worries. Thanks for your videos. I like them although I am not really into making 2D games. 🤔 Lately also not into 3D games (which I usually prefer because I am a better 3D artist in Blender than I am with whatever paint tools in 2D) or to say it more generally: I am not into making games at all these days. More interested into building non-game apps with Godot recently. Anyways. I like to educate myself with stuff that I most likely won't do (especially if it's related to Godot). Keep up! 😘👍
Well that’s was a ride 😬 I find myself bouncing around a lot too but also continuing to learn whatever interests me. You never know when the mood might strike. What kinds of non-game things might you want to make in godot?
Oh, and thanks for the kind words!
still, how to connect using a code? for example, to make bouncing balls stick to each other.
That’s a much bigger question than I can answer here, I’m afraid. In theory you should be able to instantiate joints on the fly. You have to detect a collision, instantiate the joint node, and then likely queue adding it into the simulation between physics ticks. But this is off the top of my head, I’d have to look at the API to see whether these can even be created on the fly and assigned A/B nodes. Never tried that before.
@@baconandgames thanks for the reply. I also didn't figure out how to do this using Node PinJoint. for some reason, I can't set Node A and Node B from the code. Anyway, it was interesting to watch your video.
@DT-80 I peeked at the API and I don’t see a way either, but I didn’t drill in too deep. There would be other ways to do this without using joints at all but that’s definitely out of scope for a YT comment 🤣
It looks like this thread is about what you're describing. If you get it working, please drop by our Discord and let us know :) forum.godotengine.org/t/creating-and-destroying-joints/51676/4
@@baconandgamesI haven't tried instantiation but I have used joints with an empty node b as a "grabber" to allow a rigid body to stick to something, GD script doesn't love assigning the nodes and I recommend coding in setting the self body as node a and not just assigning it in the inspector (because sometimes it just de-assigns itself at runtime...) But yeah all you have to do is use Joint.set_node_a()/ node_b()
Thanks for sharing. Loved this video, also the icons for illustration helped me better piece together the information being told at 4:33.
That’s great to hear! I realized late in the game that since I didn’t show myself making that bridge that it might not be clear which parts were which… slotted those icon in at the end. 😰 If anything else was unclear, the sample project is up on itch. Thanks for the kind words!
Amazing tutorial. High quality teaching.
🥹
These are interesting nodes. Thanks for the video :D
Thanks for watching and for the nice words
This tutorials are so great they should be in the documentation
As a person who has written a lot of documentation in his day… there is no higher compliment ❤️
Good stuff Sean!
Thank you my friend! If you’re reading this, go check out Matt’s game Pixel Washer. ❤️
Your videos are truly amazing man. It's special to have a professional game developers perspective for tutorials now in the community. I've been making games as a hobby for 5 years and have consistently struggled with node/scene structure and best practices when it comes to save-load systems, settings/audio, scene transition etc. and you have helped tremendously in understanding not only how to do it, but WHY. There are plenty of books on patterns and code structure for regular coding, but it's hard to find resources like that for game dev. I truly appreciate it!
I… I don’t know what to say. 🥹 Thank you for the kind words. If you ever want to come by our discord and share what you’re working on, I’m sure everyone would love to see it. Man, and they say TH-cam comments are mean. Not this one ☝️ ❤️
that's was help me ! thx and get sub
I’m glad it helped. You made my day 😁
Great video. Steve is oddly terrifying.
I appreciate the kind words. Poor Steve…
Very well made video
Thank you so much 🙏
motor please
Noted! That would be a fun video to make, I think :)
Does it matter where you place the pin joints in the scene since they are A -> B? Are they always center-of-mass?
If I'm understanding you correctly - it doesn't matter. The joint will obey center of mass, object masses, and motion (if the bodies are moving) and it will move (if it can) relative to where it started based on the sim. If I'm misunderstanding the question, LMK and I'll try again. The nice thing about these is that although the UI and properties are a little unintuitive, once you get past that it's pretty easy to run a few tests to see exactly how they behave.
The first 500 people to use my link skl.sh/baconandgames01251 will get a 1 month free trial of Skillshare!
lol the robot joke made my day
🤣 just keeping myself entertained- glad it worked on you too 🤣
Hello thanks for the tutorial, i just have one issue, in the start_screen and Door i get an error that says "cannot call non-static function" refering to the load_new_scene and other function in the scene_manager. Would apreciate some help. Thanks!
Did you download the latest project from itch and try it out before adding your project? I haven't looked at this in a bit - it's possible something broke with the latest version of Godot. I'd start there. If mine works as intended (without adding your code) then you can compare the two. Let me know what you find.
It's always the small things that make you happy.
Isn’t that the truth 🤜🤛
Great Articulation, I will never need another explanation of Collision and Mask Layers. Thanks!
That's great to hear! Thank you for the kind words!
Id love theone off video on scene management you mentioned. Great tutorial!
Hey there, thanks! I did a couple videos since then that have to do with what you're talking about. The first 2 (part of a series) are specifically on managing scenes: SceneManager 1: th-cam.com/video/2uYaoQj_6o0/w-d-xo.htmlsi=9GK4gj6xj814WKQV SceneManager 2: th-cam.com/video/nXYQ7smVSQM/w-d-xo.htmlsi=4J_6nnqw9gZJROZZ My scene manager is now part of my Godot game template which I covered here: th-cam.com/video/tNqFLmbWW-Y/w-d-xo.htmlsi=o07BlWuyemifMKnW Hope you find these helpful. Thanks for the kind words 🙏
Thank for for a clear explanation of a basic and critical but kind of confusing element.
That’s really kind of you. Thanks 🙏
Really good video but I'm having an issue where It's printing "game over" from func _on_tail_collided whenever I move instead of when I run into myself. Is there any way to fix this? also, when I write var gameover_menu:GameOver I get a parse error that says it cant find type "GameOver" in the current scope
Sounds like you have a couple of wires crossed. I don't think I can debug that from here but it sounds like you have logic in the wrong place. I'd suggest downloading the completed project from itch and comparing yours to it. Since there isn't a ton in this project it shouldn't be too hard to find the difference.
I'm preparing to pitch my first game to publishers. It's on the pre-alpha / vertical slice stage. I will be performing an alpha with the community (around 100 ppl) the next month. Your videos are very helpful right now because I'm suffering from performance anxiety in my head xD
Making games is incredibly difficult, no matter the scope of the game. Remember to take it easy on yourself and keep in focus why you chose this over all the other ways you might spend your time :) Good luck and thank you so much for the kind words!
I never knew about the remote scene tree....
Just bear in mind that in some larger projects it can cause lag. So as your project grows, keep that in mind while testing. I suppose this is why the default is what it is. My projects have never gotten large enough to run into this issue.
@@baconandgames Thanks for the heads up, but when I develop stuff, I tend to sandbox a level before I introduce it into my game world...still great video and thanks, I did learn something :)
@nowherebrain smart! I’m glad you got something out of it. Otherwise what the heck am I doing 😳🤣
Very cool and helpful
🙏
Good stuff!
Glad you liked it! 🙏
Would like to know the check list software you use at the end of this video.
That’s Notion: www.notion.com/
Good work mate. Good to see an older man like my self developing games!
Been at this a while 🤓
numeric keypad on the right, keypad 1 zoom in 100%, 2 zoom in 200%, 3, 4, 5
Oh dang, nice!
excellent tutorial!
Thank you 🥹
Absolutely loved this tutorial. I have been struggling with scene transitions and found this video luckily. It's a bit hard for me as I'm new to development and game stuff. However, I got it to work and fixed all of the errors. Only thing I'm still struggling with is the orient function, which I'm unsure as to why but not too big of a deal, it works. Great video man!
Thanks so much! I haven’t looked at the code in a minute, but if you have a specific question you want to run through please drop by the discord and we’ll get you sorted. ❤️
Thanks for the insight :) I would just add that when deciding which tasks to do first you should do the most difficult one first as this then helps motivate you to complete the rest (and you'll have more energy).
Oh that’s an interesting thought! I often do a less complex one early to make it easier to start and build momentum - but I can see it working you way as well. ❤️
very useful, thank you!
You’re welcome!
Plan a maximum of 2 tasks a day A task can be either a day long or a half a day long Make tasks High level The rest is filling Reading emails Is filling Updating the kanban Is filling Waiting a good commit message Is filling This really works well only if you work alone or in a very small team
Excellent points! Keep things simple 👏