Brett Makes Games
Brett Makes Games
  • Видео 46
  • Просмотров 353 075
Displaying Text with Labels | Godot 4 Quick Tip
Donate as a way to say thank you: www.buymeacoffee.com/brettchalupa
Check out my games: brettchalupa.itch.io/
Subscribe to my newsletter: www.brettchalupa.com/newsletter
#Godot #GodotQuickTip #GrowingWithGodot #Godot4
Просмотров: 26 957

Видео

Essential Godot 4 Project Settings Explained
Просмотров 4,6 тыс.Год назад
Godot 4 projects have a ton of settings you can configure. This can be a little overwhelming when you're new to Godot, so I go through the most important ones and explain them so you can better understand what they do. Donate as a way to say thank you: www.buymeacoffee.com/brettchalupa Check out my games: brettchalupa.itch.io/ Subscribe to my newsletter: www.brettchalupa.com/newsletter Chapters...
How to Switch Scenes in Godot 4
Просмотров 33 тыс.Год назад
Godot games are composed of scenes, whether it's levels or your main menu or whatever, and you'll need to switch between them as your player interacts with the game. There are a few different ways to switch scenes in Godot with code. This video goes through some easy ways and then the more advanced, recommended way to go about scene switching. Source code: gist.github.com/brettchalupa/1c68e37d2...
Composing Scenes with Instances of Scenes in Godot 4
Просмотров 8 тыс.Год назад
Games created with Godot are made up of scenes of various types of nodes. As you make more complex games, you'll be wondering how you can organize your nodes into reusable chunks. Godot lets you save node branches as scenes, which you can then instantiate and use throughout your game. This video shows how to take a few simple nodes and extract them into a Player node which can then be added to ...
Easy Health Bars in Godot 4
Просмотров 20 тыс.Год назад
Progress bars, whether for health or mana or time remaining, are such a nice way to give your players feedback about how much of something remains. Godot makes it really easy to add health bars and update them in your game. Source code: gist.github.com/brettchalupa/31e3408a92166bbfeb3785718a1919d8 Donate as a way to say thank you: www.buymeacoffee.com/brettchalupa Check out my games: brettchalu...
Playing Sounds Effects and Music in Godot 4
Просмотров 22 тыс.Год назад
Sound makes a game feel so much better. Godot makes it easy to use AudioStreamPlayers to play one-off sound effects or looping music. This screencast walks through how to do both of those with ease and then shows how to pause and resume music. Tools I use for audio creation in games: Sound effects: Jsfxr (sfxr.me/) Music: 1BitDragon (1bitdragon.itch.io/1bitdragon) Source code: gist.github.com/b...
Six Months of Game Dev Progress
Просмотров 2,1 тыс.Год назад
I decided I want to make video games in October 2023. I've been trying to take it seriously and make consistent progress. Here's what I finished over those first six months. I have a full-time job and a family, so my time is quite limited. But I think the time constraint has helped me focus and not waste time. I've really focused on making small, finished games, sharing what I learn, and cultiv...
Complete 2D Platformer in Godot 4 Tutorial - Zero to Shipped Game for Beginners
Просмотров 55 тыс.Год назад
This tutorial covers how to make a complete 2D tile-based platformer in Godot 4 from scratch. It covers everything from building levels to exporting and uploading to itch.io. Perfect for those new to game development and Godot. Play what you'll be building: brettchalupa.itch.io/godot-2d-platformer View the completed source from the video: github.com/brettchalupa/godot_2d_platformer/tree/8a77682...
GDScript @onready var Explained | Godot 4 Quick Tip
Просмотров 8 тыс.Год назад
GDScript has an easy shorthand to initialize variables in the _ready() callback when defining them. This quick videos shows how to do so and talks about some of the times when you may want to do it. Source code: gist.github.com/brettchalupa/cb42c399d82e2af549317f3fc35fb4c2 Donate as a way to say thank you: www.buymeacoffee.com/brettchalupa Check out my games: brettchalupa.itch.io/ Subscribe to ...
My Git Workflow with Godot | Essential Git Commands for Game Development
Просмотров 973Год назад
Git isn't the easiest program to learn, but I think it's essential when developing any kind of software, especially games. This more advanced video shows how I approach working with Git with Godot, the commands, and the workflow. I start with the command line and then show the same steps using GitHub Desktop. Thanks to entikai for the feedback and suggestion! Previous Git Godot video: ruclips.n...
Godot 4 Exports Explained & How to Publish on itch.io
Просмотров 18 тыс.Год назад
When you're ready to share your game with the world, you need to export it from Godot. This lets you distribute your game on various platforms like PC, web, and mobile. This screencast walks through the export interface in depth, showing how to set up exports and then upload your game to itch.io. It can be a bit overwhelming at first, so I'm hoping this helps. View the exported game from the sc...
Using Enums in GDScript for Better Code in Godot 4
Просмотров 12 тыс.Год назад
Enums in GDScript are a great way to manage state and limited options for variables. This video goes over how to define them, use them, and work with them in the Inspector in Godot 4. The concept is illustrated by adding a fire state to a play that handles firing one bullet or two. An anti-example is provided, then the code is refactored to show the value of enums. Source code: gist.github.com/...
Saving and Loading Game Data in Godot 4
Просмотров 10 тыс.Год назад
Loading and saving data from your player's session is present in almost every game, from high-score tracking to complex RPG party levels and equipment. The foundations are the same for all: you need to write data to your player's file system and then load that data. This screencast goes over how to use Godot's FileAccess to easily write data and read that data to keep track of high-score in a s...
How to Get and Limit Frames Per Second in Godot 4
Просмотров 9 тыс.Год назад
Did you know that new projects in Godot 4 run with an uncapped frame rate? I go over how to set max frames per second (FPS), get the current frames per second, and add a dropdown to change between to give players choice dependent on their needs. Source code: gist.github.com/brettchalupa/4dd3107163da29a8158c3cdb4974d521 Donate as a way to say thank you: www.buymeacoffee.com/brettchalupa Check ou...
Reading Files from Disk in Godot 4 with FileAccess
Просмотров 13 тыс.Год назад
When making games Godot where data comes from outside of main engine editor, you'll often want to be able to read files and utilize what's within them. You can easily read JSON, plain text, and more in GDScript. This video covers how to read text from a file and put it in a Label node. This video is focused on reading text from res (Resource) space. An upcoming video will handle reading from us...
Godot 4 Player Input with Keyboard+Controller & Input Map Explained
Просмотров 9 тыс.Год назад
Godot 4 Player Input with Keyboard Controller & Input Map Explained
What happens when 13 devs make a game one week at a time?
Просмотров 631Год назад
What happens when 13 devs make a game one week at a time?
Minimal Survivors Prototype Gameplay
Просмотров 407Год назад
Minimal Survivors Prototype Gameplay
Godot 4 Timers Explained
Просмотров 20 тыс.Год назад
Godot 4 Timers Explained
Godot Skeleton v1.1 Overview
Просмотров 2,5 тыс.Год назад
Godot Skeleton v1.1 Overview
Godot 4 Signals Explained
Просмотров 14 тыс.Год назад
Godot 4 Signals Explained
24 Hours of Learning Godot
Просмотров 1,2 тыс.Год назад
24 Hours of Learning Godot
Dipping My Toe in 3D Game Dev | Godotypes Phase II Devlog
Просмотров 691Год назад
Dipping My Toe in 3D Game Dev | Godotypes Phase II Devlog
Godot 4.0's One Major Issue: Web Exports
Просмотров 1,4 тыс.Год назад
Godot 4.0's One Major Issue: Web Exports
How to Read the Docs in the Godot Editor | Godot 4 Quick Tip
Просмотров 2,6 тыс.Год назад
How to Read the Docs in the Godot Editor | Godot 4 Quick Tip
Using Git with Godot 4
Просмотров 12 тыс.Год назад
Using Git with Godot 4
Enable GDScript Type Hints for Better Code | Godot 4 Quick Tip
Просмотров 7 тыс.Год назад
Enable GDScript Type Hints for Better Code | Godot 4 Quick Tip
Godot 4 Editor Explained & 2D Workflow Basics
Просмотров 3,5 тыс.Год назад
Godot 4 Editor Explained & 2D Workflow Basics
Using Godot Debug Mode to Make Game Dev Easier
Просмотров 4,7 тыс.Год назад
Using Godot Debug Mode to Make Game Dev Easier
Effective Time Management for Hobbyist Game Developers
Просмотров 1,5 тыс.Год назад
Effective Time Management for Hobbyist Game Developers

Комментарии

  • @05anonymous50
    @05anonymous50 5 дней назад

    I’m a beginner so forgive me but can someone explain why the index of an enum value would ever be needed if enum values are constant and hard coded? When would I ever not reference it by name? Also follow up question: wouldn’t directly setting the integer value (do you even call it the index?) functionally turn your enum into a dictionary of constants? Edit: kind of realizing the nature of my question is really just what use the integer values have? This video is immensely helpful but it only contains an example of using enums as mini state machines and I can’t help but feel there’s more to them, possibly?

  • @chargames7365
    @chargames7365 9 дней назад

    I LOVE YOU

  • @KevinQuillen-m4o
    @KevinQuillen-m4o 18 дней назад

    Thank you! simple and to the point.

  •  26 дней назад

    You saved my evening. I can't use the start in scripting 😓 but my cells generator has a new brick. Thanks

  • @brmaddox
    @brmaddox Месяц назад

    Third option is the only viable one if you're loading in and out of the same scene (eg: intro and game, from an infinite runner), otherwise you run into a circular reference null error. If you still want to use PackedScene - which is very handy and artist-driven - just do: SceneSwitcher.switch_scene(next_scene.resource_path) #next_scene is a PackedScene variable, @export it so you can define it in the editor

  • @jimEther
    @jimEther Месяц назад

    Thank you so much.

  • @elenatres
    @elenatres Месяц назад

    Thanks! Very helpful

  • @guuiswere
    @guuiswere Месяц назад

    ty

  • @chistonebovec
    @chistonebovec Месяц назад

    How I can use it together with CanvasLayer? I need to have health bar fixed at the screen, but it crashes with *Invalid set index 'value' (on base: 'null instance') with value of type 'int'*..

  • @lukerose9926
    @lukerose9926 Месяц назад

    Hi Brett! I saw your game website and saw myself in you. Just wanted to say I'm already a big fan and I hope you someday return to this channel! You seem really cool.

  • @HanyElsafty-sn9oc
    @HanyElsafty-sn9oc Месяц назад

    I finally understood enums thanks to you

  • @HeIsTheBluesCat
    @HeIsTheBluesCat Месяц назад

    Great tutorial! However I've been experiencing problems when I was making my platformer game and every time I try to press the key I assigned the sound in a jumping function, the whole project crashes.

  • @FrostyGamer160
    @FrostyGamer160 Месяц назад

    didn't work :(

  • @juicyjerry3699
    @juicyjerry3699 2 месяца назад

    Thank you for the tutorial man. However I noticed this recommended method by Godot official using SceneSwitcher introduces like 1sec delay in my case. I am testing it on my main land, and when player enters a house, i want to show the interior. if i use this: get_tree().call_deferred("change_scene_to_packed", door_scene) the scene switch itself has no delay and new scene got rendered in no time. But using SceneSwitcher.switch_scene("res://scenes/house_interior.tscn") there is like 1 sec delay. Does anyone have any idea why is it the case?

  • @Sibtainali-g8q
    @Sibtainali-g8q 2 месяца назад

    I really like your click game... and your teaching style..

  • @Sibtainali-g8q
    @Sibtainali-g8q 2 месяца назад

    yes Sir...

  • @Seraph120
    @Seraph120 2 месяца назад

    Thank You for showing this. You mad it informative and easy to get

  • @Slipy61
    @Slipy61 2 месяца назад

    Bonus points for teaching me about Ctrl+D

  • @jasonfanclub4267
    @jasonfanclub4267 2 месяца назад

    Will you make videos again? You are very good with explaining

  • @635574
    @635574 2 месяца назад

    I already saw somewhere "%0.2f" % damage when trying to round and and stringify the value, buy IDK why that works for 2 decimals.

  • @michaborczyk6870
    @michaborczyk6870 2 месяца назад

    this is so unbelievably helpful! i almost gave up coding several times just becuz i couldn't figure out how to make imputs and or change the Y/X axis :P

  • @welcometomathy
    @welcometomathy 2 месяца назад

    1:30 here Im running at 2800 fps xD lets learn how to max it

  • @piplupmaster3703
    @piplupmaster3703 2 месяца назад

    Hello good video, but im getting the error message that the root HealthLabel and HealthBar don't exist while they do in my code any idea how to fix this?

  • @andysouthwell7399
    @andysouthwell7399 2 месяца назад

    Thanks a lot once again, Brett! I really appreciate these natural, down-to-earth walk-throughs! They're clearly very well thought-out, fluid and informative. I'm keeping my eye on new material you produce on Godot going forwards! 🙂

  • @rhnirsilva652
    @rhnirsilva652 2 месяца назад

    kinda messy but great info, thanks

  • @rbryanold
    @rbryanold 2 месяца назад

    You know a tutorial is good when it gets straight to the point, and is less than 5 minutes long.

  • @charliecharliewhiskey9403
    @charliecharliewhiskey9403 2 месяца назад

    A good thing about doing it this way, is that you can expand the list - *backwards*. That is, imagine you have firetype double and triple, and only later decide to have a single-shot fire type too; you can put it in the enum list, *before* the double, and because everything is using the enum, it breaks nothing at all. You can also do things like have an enum and an array at the top of your file that are in parity, and use the enum as an index for the array, so that you can always just quick-access the correct array element from another class no matter whether you've changed things. I found that really useful when making some temporary debugging tools.

  • @jademonass2954
    @jademonass2954 3 месяца назад

    i was missing the ""_to_file" in that line, ty!

  • @CookieJarRaider
    @CookieJarRaider 3 месяца назад

    this is the sort of tutorial ive been looking for. too many are "just copy paste my stuff" cause they only show snippets of code without context, or just dump all their code into a two-three files

  • @AppMaker728
    @AppMaker728 3 месяца назад

    I'm inspired every more inspired to use Godot for all of my games

  • @AppMaker728
    @AppMaker728 3 месяца назад

    I care about computers and phones too all of my games going to be for PC and Android and iPhone I'm not publishing to console

  • @AppMaker728
    @AppMaker728 3 месяца назад

    I like open source because of I don't have to pay anything to use Godot that is why I chose Godot

  • @andysouthwell7399
    @andysouthwell7399 3 месяца назад

    Thank you so much! I've been Googling all over and couldn't find what I needed: my _process() wasn't being called after changing scene, and I couldn't figure why. It turned out that I'd completely misunderstand that the association between scenes and scripts is completely manual - so I hadn't got my script attached to the scene, hence why _process() wasn't being called. Such a simple thing, but hard to grasp without watching a thorough walk-through like yours. Cheers! 🙂

  • @probinertasks6087
    @probinertasks6087 3 месяца назад

    Thanks

  • @andysouthwell7399
    @andysouthwell7399 3 месяца назад

    Very inspiring - thank you! And... good luck!

  • @andysouthwell7399
    @andysouthwell7399 3 месяца назад

    Thank you very much for this - I really appreciate your thoroughness in going through how the workspace UI is constructed. I've been very, very confused by the interface. My big issue was understanding the hierarchy of the various panes. On the top-left is the current Scene, but I really couldn't figure where the parent tree of this was. When opening one of the demo sample games, I closed the scene and then it looks as though I'd deleted everything - so I couldn't then understand why the game still seemed to run! I really hadn't figured out that the 'res' list was effectively this top level in the tree; I assumed that resources were just artefacts to be referenced in the main project - and didn't expect them to form part of the hierarchy. Thank you!

  • @RisingWanabe
    @RisingWanabe 3 месяца назад

    this is useful for non game stuff too

  • @VHenrik007
    @VHenrik007 3 месяца назад

    Thanks, this was useful!

  • @kingshahzad78
    @kingshahzad78 4 месяца назад

    Thanks Dear

  • @vizionthing
    @vizionthing 4 месяца назад

    I found enum a few days back, using it for game state, really needed to know how to access it globally across scenes - thanks. I now know class_name :)

  • @Mr.Jupiter-e2f
    @Mr.Jupiter-e2f 4 месяца назад

    Super simple and to the point. Got a UI progress bar in less than 5 minutes! Thanks a ton for this tutorial!

  • @parkourbee
    @parkourbee 4 месяца назад

    The Thinkpad + PopOS is classic 😂

  • @Ranamo_
    @Ranamo_ 4 месяца назад

    Do i need to download 750megabites of something i forgot every time i want to export a game?

    • @brettmakesgames
      @brettmakesgames 4 месяца назад

      Nope, just once before your initial export. If you upgrade your Godot engine version, you'll have to redownload the export wrapper for that version of Godot.

    • @Ranamo_
      @Ranamo_ 4 месяца назад

      @@brettmakesgames thx!

  • @benwitte928
    @benwitte928 4 месяца назад

    Wow this is enormously helpful, I've spent a couple hours trying to rig together some janky progress bar behavior with polygon2d shapes when this is an option 🤣😭 Thanks for the tutorial!

  • @TehNinjaFlute
    @TehNinjaFlute 4 месяца назад

    Thanks for this tutorial. I was using change_to_packed_scene before but I decided to update to the call_deferred method. I still wanted to use PackedScenes, though, so I modified the code a bit. Here's how I did it if anyone is interested (so far it works just fine): func switch_scene(pscene: PackedScene) -> void: call_deferred("_deferred_switch_scene", pscene.resource_path) # pscene.resource_path grabs the path to the provided PackedScene and returns a string func _deferred_switch_scene(scene_path: String) -> void: current_scene.free() var new_scene = ResourceLoader.load(scene_path) current_scene = new_scene.instantiate() get_tree().root.add_child(current_scene) get_tree().current_scene = current_scene

  • @RedMoon814
    @RedMoon814 4 месяца назад

    Thank you so much for this video! It helped a lot :)

  • @Cameo221
    @Cameo221 5 месяцев назад

    I'm anchored from a professional game dev trying to make my own personal project, and my biggest personal problem is distraction, so the "ruthless focus" point makes so much sense to me. I'm confident in my skills, but my time management is in the dumps. Watching YT vids with food, finishing vids, getting asked out of the room for a chore, dealing with getting DMS and responding, posting content, distraction by media when looking for music or anything else on the internet. Though I don't play many games in recent years, I watch too much content on YT of people playing games instead. It even leaks into my full time job efforts too. It's brutal. I end up taking out time I could have put from my personal project into job work so the job work is done on time 😅

  • @gengatuberofficial7009
    @gengatuberofficial7009 5 месяцев назад

    How change text into int at Label?

  • @laoAnGame
    @laoAnGame 5 месяцев назад

    Quite a good job.

  • @HadesiorOfficial
    @HadesiorOfficial 5 месяцев назад

    I started learning godot and counting time was the wall i hit, i looked for scripts similar to what i wanted but timers there were in code and were more complex, i coudnt also find any explanation in my native language(not english) i stopped learning for like half a month but it turned out that i was idiot and there was a timer node that wasn't so complex. Thanks for this video, it set me back on track.