KobeDev
KobeDev
  • 59
  • 128 918
Make a Main Menu in Godot in under 10 minutes!
Easy and step by step tutorial on how to make a main menu in Godot (I used version 4.2 here). I will explain some key points so you know how to take this knowledge into your own games too!
➤ Code: github.com/kobeDevStuff/2D-Procedurally-Generating-with-unloading/tree/main
➤ My Discord Server! discord.gg/wCj8yT2Ztf
➤ Buy me a coffee! buymeacoffee.com/kobedev
Chapters:
00:00 Intro
00:40 Tutorial
09:00 Test it out!
09:19 Outro
#ui #menu #godot
game development,game dev,godot,tutorial,godot 4.1,godot 4.2,easy,beginners,how to,godot 4.3,godot 4,main menu,main menu tutorial,godot main menu tutorial,godot ui tutorial,godot menu tutorial
Переглядів: 653

Відео

These Game Developers Are LYING To You...
Переглядів 3,4 тис.3 місяці тому
These UA-camrs are LYING to you. Game Dev behind the scenes isn't what it seems from the outside. In this video I'll talk about my journey through game development and share what really happens. ➤ My Discord Server! discord.gg/wCj8yT2Ztf ➤ Overscoped! www.youtube.com/@TheOverscopedPodcast ➤ Buy me a coffee! buymeacoffee.com/kobedev 🎵 Music used: Amos Ever Hadini - Lascado Zelda's Lullaby - a l ...
How to Make a Volume Settings Menu in Godot!
Переглядів 1,5 тис.5 місяців тому
Easy and step by step tutorial on how to make an audio settings menu in Godot with sliders (I used version 4.3 here). I will explain some key points so you know how to take this knowledge into your own games too! 🗒️Code: github.com/kobeDevStuff/2D-Procedurally-Generating-with-unloading 🎨 Check out the amazing artwork by Lily Zejlee: lilyzejlee Connect with me on social media: Twi...
This Guy Pissed Me Off, So I Did Something About It...
Переглядів 6417 місяців тому
Hate comments or just harsh criticism is certainly a difficult thing to deal with, and the ugly truth is that everyone is going to run into it at some point in their life. In this video, I'll share my experience with "hate comments" and how you can twist it around to help your personal growth. Channel art - lilyzejlee Twitter - kobeDevStuff Instagram - k...
EASY Godot First Person Controller Tutorial for Beginners!
Переглядів 9568 місяців тому
EASY Godot First Person Controller Tutorial for Beginners!
Make a Pause Menu in Godot in 5 Minutes!
Переглядів 26 тис.9 місяців тому
Make a Pause Menu in Godot in 5 Minutes!
I Had No Money for 3D Models, so I Made Them MYSELF...
Переглядів 3 тис.9 місяців тому
I Had No Money for 3D Models, so I Made Them MYSELF...
How Did I Not Think of Adding This SOONER…
Переглядів 28310 місяців тому
How Did I Not Think of Adding This SOONER…
How I Turned my Godot Game from 2D to 3D!
Переглядів 2,6 тис.10 місяців тому
How I Turned my Godot Game from 2D to 3D!
I Ranked the Top 17 Game Engines on a TIER LIST!
Переглядів 10 тис.11 місяців тому
I Ranked the Top 17 Game Engines on a TIER LIST!
Programming Slander
Переглядів 88711 місяців тому
Programming Slander
How to Make SMOOTH Top Down Character Movement in Godot!
Переглядів 16 тис.11 місяців тому
How to Make SMOOTH Top Down Character Movement in Godot!
These Are the STRANGEST Programming Languages!
Переглядів 66311 місяців тому
These Are the STRANGEST Programming Languages!
PROCEDURAL Terrain Generation (with Unloading) in Godot!
Переглядів 20 тис.11 місяців тому
PROCEDURAL Terrain Generation (with Unloading) in Godot!
Why These Programming Languages Are TERRIBLE!
Переглядів 1,6 тис.Рік тому
Why These Programming Languages Are TERRIBLE!
Building a Realistic Physics System for my Indie Game!
Переглядів 215Рік тому
Building a Realistic Physics System for my Indie Game!
Adding A SAVE GAME and Multiple CARTS to my Game!
Переглядів 157Рік тому
Adding A SAVE GAME and Multiple CARTS to my Game!
Can ChatGPT Code a Game For my Lazy Ass?
Переглядів 170Рік тому
Can ChatGPT Code a Game For my Lazy Ass?
I Learnt Godot the HARD Way (so you don’t have to)
Переглядів 925Рік тому
I Learnt Godot the HARD Way (so you don’t have to)
Is Unity DEAD? Game Developers Furious as Unity Engine Announces New FEES
Переглядів 809Рік тому
Is Unity DEAD? Game Developers Furious as Unity Engine Announces New FEES
I Added an UPGRADE System for My Indie Game!
Переглядів 77Рік тому
I Added an UPGRADE System for My Indie Game!
How to Make a PARRALAX Scrolling Effect for GODOT in 1 min!
Переглядів 1,5 тис.Рік тому
How to Make a PARRALAX Scrolling Effect for GODOT in 1 min!
Making a CLEAN UI For My Strategy Game!
Переглядів 330Рік тому
Making a CLEAN UI For My Strategy Game!
How to Get Started in Game Development For BEGINNERS!
Переглядів 1,3 тис.Рік тому
How to Get Started in Game Development For BEGINNERS!
My Indie Game SUCKED, so I FIXED it!
Переглядів 204Рік тому
My Indie Game SUCKED, so I FIXED it!
Adding A MONEY + UPGRADE System To My DREAM Game!
Переглядів 183Рік тому
Adding A MONEY UPGRADE System To My DREAM Game!
Creating My DREAM Game's Inventory System!
Переглядів 175Рік тому
Creating My DREAM Game's Inventory System!

КОМЕНТАРІ

  • @baloch98764
    @baloch98764 5 днів тому

    the code isn't efficient you could use Input.get_vector instead and move_and_slide underneath it use a velocity var which is gonna be velocity = direction * speed and the Input.get_vector is gonna be the in the direction variable

  • @K11D_
    @K11D_ 5 днів тому

    can you tell me how to make the mirroring be on top and not on the right?

  • @Synthverge
    @Synthverge 7 днів тому

    i am working on a 3d first person horror game. i used this tutorial to implement a pause menu, however i can no longer move my camera or see my mouse whilst within the menu. how would i go about fixing this? still love the tutorial tho

  • @K.E.S.D
    @K.E.S.D 10 днів тому

    Great tutoriel thanks

  • @diligencehumility6971
    @diligencehumility6971 17 днів тому

    This is the more correct way of doing pause in Godot. Saw another tutorial doing timeScale = 0, but that doesn't pause the game, it still read inputs etc, and it might mess with your existing code that manipulates timeScale. Use GetTree().Paused, and set the mode on the things that should not pause, just like this video

  • @wizardscrollstudio
    @wizardscrollstudio 17 днів тому

    Explain why Godot is S. Barely has the features of a serious game engine. Is B at best.

  • @Mr_Beagle
    @Mr_Beagle 18 днів тому

    Excellent tut, well done! 👏 Newb question... if I wanted to trigger one of 8 movement animations (up / up-left / left / down-left / down / down-right / right / up-right), would I just use a series of conditionals on the x / y vector values to fire the appropriate walking animation?

  • @Skipwayy
    @Skipwayy 19 днів тому

    tysmmmmm bro

  • @miikemanX
    @miikemanX 19 днів тому

    0:39 The part that Nobody wants to show.

  • @ariB65
    @ariB65 20 днів тому

    Why would we use a sprite node over an animated sprite node? I’m very new to Godot and curious how choosing or the other might impact making the player.

    • @Whhatt
      @Whhatt 20 днів тому

      I got the same question maybe because animated sprite is more customizable?

    • @avanti488
      @avanti488 19 днів тому

      @@Whhatt I think choosing an animated sprite would mean you can add frames and animation to the character

    • @ariB65
      @ariB65 17 днів тому

      I understand that adding in an animated sprite would allow for adding animation, my question is why would that not be used here? In other tutorials I have seen the same Sprite2D node used over the AnimatedSprite2D, I am curious if that is because it has other wider implications for coding or programming other than being able to add animation frames.

    • @Whhatt
      @Whhatt 17 днів тому

      @ariB65 using animated sprite 2d is better most of the time if you plan on animating later

  • @lox_07
    @lox_07 Місяць тому

    My pause menu disappears immediately after showing up. I suspect its the animation resetting but I am not able to figure out how to fix it. Does anyone have any ideas?

    • @lox_07
      @lox_07 Місяць тому

      nvm my dumb ass was using && between the if conditions, javascript habit worked by adding this -> if Input.is_action_just_pressed("escape_menu") and !get_tree().paused:

  • @Just_AnotherGameDev
    @Just_AnotherGameDev Місяць тому

    I have an issue. when I pause my game I cant unpause it. I can press esc and it pauses fine but when I press it again nothing happens.

  • @Flamebamboo
    @Flamebamboo Місяць тому

    Cool Stuff!

  • @Flamebamboo
    @Flamebamboo Місяць тому

    Thanks Man! Amazing tutorial helped alot

  • @dylan8236
    @dylan8236 Місяць тому

    How do i add like animation to it like left, right, up, down animation

  • @thygrrr
    @thygrrr Місяць тому

    Unity has not supported JavaScript (correctly: UnityScript) and neither Boo in many years.

  • @Nado_89
    @Nado_89 Місяць тому

    thanks mate VeryCool Poggers Usefull Save Absolute Chad SavedMeAfterABadTutorial AbsolutlySavedMyGame PoggersBlur AbsolutePauseSaver

  • @AnamuraUniverse
    @AnamuraUniverse Місяць тому

    I got it working but I'm running into an issue. I try to explain as best as I can. I only set 1 button to return to main menu. I skipped the blur animations. I press ESC, all fine, I can use pause button, then press ESC to go back to game but I can't control the player, it keeps moving by itself (I'm using a 3rd person player prefab). I press ESC again and this time I can't interact with pause menu button. I press ESC again and now I can control the player. Then this repeats... I press ESC, all fine, etc... Also, I press ESC, all fine, but then I press the button to go back to main menu, then the buttons of the main menu don't work. I think there must be something that is not reseting properly?

    • @jameslionbreath
      @jameslionbreath Місяць тому

      Ok I found a solution for half of it You do need the get_tree()paused = false if you switch from one scene to the other But on the animation you need to make it on second 0 not visible And on second 0.001 make it visible This should be done to the top node and it's so you can click buttons

  • @beholdthegoober
    @beholdthegoober Місяць тому

    ngl dani wasnt fun to watch at all anyways, in my opinion. his content and many other's happen to be way too overedited, overstimulating, and try way too hard to be quirky. its basically brainrot before brainrot became a trend.

  • @undefeated2555
    @undefeated2555 Місяць тому

    I don't want to commit 18 minutes to a video, unless it is possible to use this to create chunks in 3d, I've been looking everywhere for tutorials, but I cannot find anything on 3d chunk generation.

  • @SoapGamingStudios
    @SoapGamingStudios Місяць тому

    It completly broke

  • @CodeBridge-v8c
    @CodeBridge-v8c Місяць тому

    im using icon svg(8x8) as my placeholder tile . So if i set width to 128 i get 16 full icons or (16x(8x8)) Code is pretty much same but if i keep numbers low and run on full screen i get some trailing like tiles because its drawing another tile above current one just after moveing 1 tile so unless i move to required distance it keeps on drawing those chunks above each time creating snake like pattern. And sometimes chunk doesnt disappear even after moving to other side of screen and sometime it trails few tiles after the chunk behind while moving(In just running program once not chaing any value). Tried keeping timer and everything help !!!!! extends Node2D @onready var player = get_node("player") @onready var tileMap =$TileMapLayer @export var width : int = 64 var Map_size = Vector2(width,width) const LAND_CAP = 0.3 const chunk_unload_distance : int = 48 var noise = FastNoiseLite.new() var loaded_chunks = [] func _ready(): var player_tile_pos = tileMap.local_to_map(player.position) noise.seed = 1 generate_chunk(player_tile_pos) #randi() #generateWorld() # func _process(delta: float) -> void: var player_tile_pos = tileMap.local_to_map(player.position) generate_chunk(player_tile_pos) unload_distance_chunk(player_tile_pos) #func generateWorld(): #print("gen world") #var noise = FastNoiseLite.new() #noise.seed = 1 #randi() #noise.frequency = 0.01 # #var cells : Array = [] #for x in range(0,Map_size.x): #for y in range(0,Map_size.y): #var a = noise.get_noise_2d(x,y) #if a<LAND_CAP: #tileMap.set_cell(Vector2(x,y),0,Vector2(x%8,y%8),0) ##cells.append(Vector2(x,y)) #else: #tileMap.set_cell(Vector2(x,y),1,Vector2(x%8,y%8),0) ##tileMap.set_cells_terrain_connect(cells,0,0,true) func generate_chunk(pos): for x in range(Map_size.x): for y in range(Map_size.y): var noise_at_xy = noise.get_noise_2d(pos.x - (Map_size.x/2)+x,pos.y - (Map_size.y/2)+y) if(noise_at_xy < -0.25): tileMap.set_cell(Vector2i(pos.x-(Map_size.x/2) + x,pos.y - (Map_size.y/2)+y),1,Vector2i(x%8,y%8),0) else: tileMap.set_cell(Vector2i(pos.x-(Map_size.x/2) + x,pos.y - (Map_size.y/2)+y),0,Vector2i(x%8,y%8),0) if Vector2i(pos.x,pos.y) not in loaded_chunks : loaded_chunks.append(Vector2i(pos.x,pos.y)) func unload_distance_chunk(player_pos): var unload_dist = chunk_unload_distance*2 for chunk in loaded_chunks: var dist_to_player =dist(chunk,player_pos) if dist_to_player > unload_dist: clear_chunk(chunk) loaded_chunks.erase(chunk) func clear_chunk(pos): for x in range(0,Map_size.x): for y in range(0,Map_size.y): #tileMap.set_cell(Vector2i(pos.x-(Map_size.x/2) + x,pos.y - (Map_size.y/2)+y),-1,Vector2i(-1,-1),0) tileMap.erase_cell(Vector2i(pos.x-(Map_size.x/2) + x,pos.y - (Map_size.y/2)+y)) func dist(p1,p2): var r = p1-p2 return sqrt(r.x ** 2+r.y ** 2) #func _on_timer_timeout() -> void: #var player_tile_pos = tileMap.local_to_map(player.position) #generate_chunk(player_tile_pos) #unload_distance_chunk(player_tile_pos)

  • @chubutburger
    @chubutburger Місяць тому

    unhiged tutorial

  • @Iamtruerat
    @Iamtruerat Місяць тому

    Rage engine deserves S

  • @jameslionbreath
    @jameslionbreath Місяць тому

    on 0:52, process should be always but the container should be when paused because if not they overlay permanently in the middle of the screen even if invisible, so a player could click the quit button even if not there visibly minor edit: If your making a button that goes to start/controls (Basically any scene) be sure to add this func _ready(): get_tree().paused = false pass That way the buttons work And i think you could just change the user interface node with a canvas layer, that way you have 1 less node in the other scenes

    • @AnamuraUniverse
      @AnamuraUniverse Місяць тому

      I had a feeling this could be my issue but sadly I add this and I don't see any difference :(

    • @jameslionbreath
      @jameslionbreath Місяць тому

      @@AnamuraUniverse what kind of issue are you having?

    • @AnamuraUniverse
      @AnamuraUniverse Місяць тому

      @@jameslionbreath I asked it as my own comment but I copypaste here as I can't quote other comments... hopefully you have any idea about how to fix it? I only set 1 button to return to main menu. I skipped the blur animations. I press ESC, all fine, I can use pause button, then press ESC to go back to game but I can't control the player, it keeps moving by itself (I'm using a 3rd person player prefab). I press ESC again and this time I can't interact with pause menu button. I press ESC again and now I can control the player. Then this repeats... I press ESC, all fine, etc... Also, I press ESC, all fine, but then I press the button to go back to main menu, then the buttons of the main menu don't work.

    • @jameslionbreath
      @jameslionbreath Місяць тому

      ​@@AnamuraUniversewell idk why it doesn't work fully so ail just post the code extends Control func _ready(): $AnimationPlayer.play("RESET") func resume(): get_tree().paused = false $AnimationPlayer.play_backwards("blur") func pause(): get_tree().paused = true $AnimationPlayer.play("blur") func testEsc(): if Input.is_action_just_pressed("esc") and !get_tree().paused: pause() elif Input.is_action_just_pressed("esc") and get_tree().paused: resume() func _process(delta): testEsc() func _on_resume_pressed(): resume() func _on_quit_pressed(): get_tree().quit() func _on_restart_pressed(): resume() get_tree().reload_current_scene() pass # Replace with function body. func _on_home_pressed(): ##optional #get_tree().paused = false get_tree().change_scene_to_file("res://Menus/StartScreen.tscn") pass # Replace with function body.

  • @angie064
    @angie064 Місяць тому

    i can still click on the buttons with a mouse when the menu is away, so how do i fix that ?

    • @kobedev
      @kobedev Місяць тому

      Make sure you set the visibility to false

  • @BastuGubbar
    @BastuGubbar Місяць тому

    At around 2:31 I am getting the error message ''Cannot find property ''get_action_strength'' on base ''vector2'' and I dont understand what that even means.

    • @kobedev
      @kobedev Місяць тому

      You need brackets because get_action_strength() is a method not a property. The error is basically saying you are trying to access a property of a vector2 (a property is like a variable at the top such as ‘x’ or ‘y’) but a method is something you need to call so we need the brackets to make sure we’re calling a method and not accessing a property

  • @mariomanchevsky
    @mariomanchevsky 2 місяці тому

    Hey Kobe. I followed your guide and created the same player movement you're showing here. WASD works great. But when I incorporate MarcoFazio's Virtual Joystick add-on from the AssetLibrary (following WisconsiKnight's tutorial, a fellow Godot UA-camr), the movement feels a little wonky, especially when attempting to drive in any direction that's not the 0, 45, 90, 135, 180, 225, 270, 315 or 360 degree of the joystick, if that makes sense. Could you help us incorporate the joystick into Godot? Or perhaps make our own? :')

    • @kobedev
      @kobedev Місяць тому

      I’m not too sure how the plugin works but I would try to get whatever the vector is of the joystick direction is and then I would apply a force is in that direction (you can do this by normalising the vector)

  • @Poly_Knight
    @Poly_Knight 2 місяці тому

    Just when I needed a menu! Thanks! 🗡🍕

    • @kobedev
      @kobedev 2 місяці тому

      ur welcome :)

  • @Beets_Creations
    @Beets_Creations 2 місяці тому

    I need to actually pick a game engine to use lol

    • @kobedev
      @kobedev 2 місяці тому

      TTS on top

    • @Beets_Creations
      @Beets_Creations Місяць тому

      @@kobedev haha for sure, maybe i should start with it's scripting language

  • @geomdev
    @geomdev 2 місяці тому

    scaling ui always breaks the game but this bout to fix it 🔥

  • @archwhynot
    @archwhynot 2 місяці тому

    😧

  • @KeithMakesGames
    @KeithMakesGames 2 місяці тому

    Furst

  • @cyrusgolden4766
    @cyrusgolden4766 2 місяці тому

    You are a headache

  • @estonball4076
    @estonball4076 2 місяці тому

    u skipped through crucial spots and forgot to mention u need to add the animation player as a unique name as well as u never explained how to make the menu show and disappear from the esc key and stating u left all your code in the description is not helpful as beginners aka what this video tailors to would not know where to look a 5 minute video has waisted 3 hours of my time trying to figure out what u diddnt edit into the video u also went from paused == false over to pause: pause() without saying a word about it? how is this helpful im still on ur stupid fucking broken tutorial hours later

  • @Beets_Creations
    @Beets_Creations 2 місяці тому

    I used chat gpt for a lot of google sheets scripting and after effects finctions as well. It really is pretty crazy

  • @hiraeth5534
    @hiraeth5534 2 місяці тому

    static function get.action_strenght() not found in base "GDScriptNativeClass"

  • @connerolson9618
    @connerolson9618 2 місяці тому

    How did you move the character to the tile map scene?

  • @Beets_Creations
    @Beets_Creations 2 місяці тому

    Crazy how many game engines there are available compared to what there used to be

  • @Beets_Creations
    @Beets_Creations 2 місяці тому

    Looking good!!

  • @ptaha3109
    @ptaha3109 2 місяці тому

    Thank you so much for the tutorial, but I have one question. What if I want the camera of the player to collide with the edges of the scene? I mean, if player reaches the corner of the map, how do I make the camera stop and not go through the borders?

    • @kobedev
      @kobedev Місяць тому

      I think there is a setting in the camera called something like damping or maybe clipping

  • @breadanimtions
    @breadanimtions 2 місяці тому

    not working

  • @ITT59Gamer
    @ITT59Gamer 2 місяці тому

    i remember i found danis channel when his 6 months of game development was like 5 months

  • @HighImHorizon
    @HighImHorizon 2 місяці тому

    lmao ive been struggling on making a restart screen for my game for so long because no matter what i did the button just wouldnt activate . thank you for saying to enable "always" in the process section early on in the video because that was why mine wasn't working lol

  • @Professor_Sick
    @Professor_Sick 2 місяці тому

    3d please 3d gen

  • @khebre6032
    @khebre6032 2 місяці тому

    I feel you man❤

  • @Debianz
    @Debianz 2 місяці тому

    Why do a tier list on Game Engines you have clearly never used and have done almost no research on. Clearly a wanna-be game dev that hasn't touched a code based larger than 2000 lines of code. Half this stuff is just 100% made up, inaccurate, or complete non-sense.

  • @savagemonster6373
    @savagemonster6373 2 місяці тому

    How do you disable the gravity?

    • @kobedev
      @kobedev 2 місяці тому

      It’s in the editor settings, select floating under motion mode

    • @kobedev
      @kobedev 2 місяці тому

      You might be using the wrong node type

  • @goldenwattle7863
    @goldenwattle7863 2 місяці тому

    Add borromean rings

  • @juxiified8681
    @juxiified8681 2 місяці тому

    you are the bestest