HD-2D Style in Godot 4.1

แชร์
ฝัง
  • เผยแพร่เมื่อ 6 ม.ค. 2025

ความคิดเห็น • 130

  • @kplays_6000
    @kplays_6000 ปีที่แล้ว +73

    Some tips for people following this:
    - The player animation should have both feet on the ground between each step, or should not show that frame at all whilst walking
    - Maybe slow the player down a little - he seems to be walking a little too fast for it to look right in a larger scale project
    - Move the camera up a little - whilst your player should be the centre of attention, you should still be able to see what's in front of him
    Great tutorial!

    • @gamedevaki
      @gamedevaki  ปีที่แล้ว +4

      thanks for the great tips!

  • @bryansmith508
    @bryansmith508 ปีที่แล้ว +11

    I love your videos on HD2D! I appreciate how you walk through an entire scene, not just one aspect of the scene. It allows me to understand exactly how you went from scratch to the final product!

  • @Gatitasecsii
    @Gatitasecsii ปีที่แล้ว +3

    This has helped me kickstart my project so much!! I thank you from the bottom of my heart!

  • @Casseous
    @Casseous ปีที่แล้ว +87

    I advise beginners to not use this tutorial as it does gloss over some finer details on creating this from scratch. Otherwise, it's a good tutorial for more seasoned devs.

    • @catcactus1234
      @catcactus1234 11 หลายเดือนก่อน +11

      Also the walk animation code is pretty bad. You can achieve the same thing just by checking the input axis value for all 4 directional inputs, then playing the correct animation based on the number it returns. If no input is detected, stop the animation. There’s no reason to manually update the frames when you can just call .play(“animation_name_” + direction) method on your animation player mode. It’s unnecessarily complex and weirdly limiting.

    • @cromazac
      @cromazac 10 หลายเดือนก่อน +13

      What tutorial should we use ;-;

    • @cromazac
      @cromazac 10 หลายเดือนก่อน

      ​@@catcactus1234 explain it in code form so I can ̶c̶̶o̶̶p̶̶y̶ ̶a̶̶n̶̶d̶ ̶p̶̶a̶̶s̶̶t̶̶e̶ ̶i̶̶t̶ understand it better

    • @cromazac
      @cromazac 10 หลายเดือนก่อน

      ​@@catcactus1234 can you explain it in code form so I can c̶̶o̶̶p̶̶y̶ ̶a̶̶n̶̶d̶ ̶p̶̶a̶̶s̶̶t̶̶e̶ ̶i̶̶t̶ understand it better

    • @casentinex1339
      @casentinex1339 5 หลายเดือนก่อน +5

      @@catcactus1234 Can you give a more in depth explanation, or point to a video that explains what you are talking about regarding checking the animations based on axis value?

  • @ShadowOverflow
    @ShadowOverflow ปีที่แล้ว +4

    Your content is amazing! Your editing, speed, and style is top notch!
    Thank you for all of the effort you put in.

  • @angryybot6367
    @angryybot6367 ปีที่แล้ว +12

    You can simply mark the UV as triplanar instead of setting its coordinates to 3, 2 ,1.
    the checkbox for this is right below the UV scale and offset

    • @gamedevaki
      @gamedevaki  ปีที่แล้ว +4

      that's cool, thanks for the tip!

    • @triskaideka13
      @triskaideka13 11 หลายเดือนก่อน +2

      you angryybot are a scholar and a gentlebot

  • @yusarimahubara
    @yusarimahubara 11 หลายเดือนก่อน +1

    Dude wtf, this is top notch quality tutorial, keep going bro!

  • @lagmaronchim1435
    @lagmaronchim1435 ปีที่แล้ว +5

    great 2.5d tutorial, thanks!

    • @gamedevaki
      @gamedevaki  ปีที่แล้ว +1

      glad that you like it!

  • @user-tp1fy3sp5c
    @user-tp1fy3sp5c ปีที่แล้ว +2

    Thank you very much for your tutorial, I have been looking for it and I had given up on this type of 2D to 3D format and it came out recommended, keep it up (if by chance you see spelling errors or misspelled words, I used a translator.).

    • @gamedevaki
      @gamedevaki  ปีที่แล้ว

      Thanks for the kind words! Glad you find this helpful and good luck on your project!

  • @bluzenkk
    @bluzenkk ปีที่แล้ว +32

    Suggestion:
    add a normal map on the 2D sprite so it react with the light dynamically.

    • @gamedevaki
      @gamedevaki  ปีที่แล้ว +6

      Thanks for the tip, going to research about that next!

    • @ohiasdxfcghbljokasdjhnfvaw4ehr
      @ohiasdxfcghbljokasdjhnfvaw4ehr ปีที่แล้ว

      nah that always looks ugly

    • @longtranha8695
      @longtranha8695 ปีที่แล้ว +3

      If you draw a pixel art of something and you have to spend time to make a normal map of it -> A lot of time -> Solution : draw pixel with shadow cast same direction with 3D direction light

    • @neozoid7009
      @neozoid7009 ปีที่แล้ว

      but how to enable shadow for the sprite ? my spite3D is not casting shadows

  • @revidev
    @revidev ปีที่แล้ว +4

    Awesome!🎉 . I'm eager to see combat mechanics from your game. Keep the good work!

    • @gamedevaki
      @gamedevaki  ปีที่แล้ว +1

      Thanks for the kind words! You're in for a treat, I'm currently planning the combat mechanics for my game!

  • @SaharatOfficial
    @SaharatOfficial 7 หลายเดือนก่อน +3

    Instead of incremental turns, the easiest method for turning is just if Input.is_action_pressed: "move_left" rotation.y += 1 x delta. (-= if your going right.)

    • @PopViewsPh
      @PopViewsPh 4 หลายเดือนก่อน

      What code if I add animations? I'm still a beginner but I want to learn more

  • @AsatteGames
    @AsatteGames 11 หลายเดือนก่อน

    This really helped me a lot! Thank you for the video :)

  • @Ah2o5b
    @Ah2o5b ปีที่แล้ว +2

    Great tutorial as always

    • @gamedevaki
      @gamedevaki  ปีที่แล้ว +1

      Thanks for the constant support!

  • @quesia7663
    @quesia7663 2 หลายเดือนก่อน +1

    how do i make this game without spritesheets? (my animations images are too large for godot, like one frame is 720 x 150px)

  • @TEDDeng
    @TEDDeng 9 หลายเดือนก่อน

    Really learned a lot from this video, much appreciate.

  • @meteorogames9523
    @meteorogames9523 ปีที่แล้ว

    This is exactly what I was looking for, thank you sir!

    • @gamedevaki
      @gamedevaki  ปีที่แล้ว

      Thanks for the kind words, glad that I could help!

  • @casesolia7356
    @casesolia7356 7 หลายเดือนก่อน

    Fantastic video! Thank you so much.

  • @ebooooooy4249
    @ebooooooy4249 ปีที่แล้ว +2

    This is fire, I've been looking for a HD-2D Style tutorial on Godot but almost all videos teach it on UE5. Do more videos about HD-2D Style and can you explain everything step by step. I'm a total beginner.

    • @gamedevaki
      @gamedevaki  ปีที่แล้ว

      Glad that you find this useful. Sure, think I can make a video for a total beginner.
      Curious which parts you find difficult to follow in this video so I can improve them

    • @ebooooooy4249
      @ebooooooy4249 ปีที่แล้ว

      For example at min 3:12 you typed some code for the animation, where do I type it? is it a script attached to the animation?Honestly your videos are very informative but for absolute beginners the pace might be fast. Also there is another ytuber who posts similar 2DHD tutorials for UE5, you can probably grow your channel by doing the same thing for Godot. his channel is CobraCode incase you wanna get some ideas.@@gamedevaki

    • @gamedevaki
      @gamedevaki  ปีที่แล้ว

      Cool, thanks for details. CobraCode looks cool, thanks for the recommendation!

    • @Zahuranecs
      @Zahuranecs 4 หลายเดือนก่อน

      My sprite sheet is completely different, so I'm having a bit of trouble coding that for facing, but this video is a start! (Maybe explaining how the script updates the actual sprite chosen?) Either way, great tutorial

  • @grayfox_yt
    @grayfox_yt ปีที่แล้ว

    Fantastic video!

  • @KevinNijmeijer
    @KevinNijmeijer 7 หลายเดือนก่อน +5

    Claiming HD-2D doesn't work on web is completely false, it's the shaders that you use in the scene that don't work. HD-2D as a visual style can 100% work on Web / mobile.

  • @HE360
    @HE360 ปีที่แล้ว +1

    I might adapt some of these ideas to Godot 3.5 since I probably won't be switching to Godot 4.0+ just yet.

    • @gamedevaki
      @gamedevaki  ปีที่แล้ว

      Good idea! Might need some tweaking though, especially in WorldEnvironment

  • @pipeliner8969
    @pipeliner8969 ปีที่แล้ว

    thanks a lot, great video

  • @Vercidium
    @Vercidium ปีที่แล้ว +2

    I love this pixel-art HD style! Do you have a Twitter or Discord where we can talk about game dev?

  • @fridyrogide8752
    @fridyrogide8752 ปีที่แล้ว

    Well, that's quite a tutorial there !
    Fantastic

    • @gamedevaki
      @gamedevaki  ปีที่แล้ว

      Thanks, glad you like it!

    • @fridyrogide8752
      @fridyrogide8752 ปีที่แล้ว

      @@gamedevaki Just show everything then loll

  • @GXR-TRADING
    @GXR-TRADING 10 หลายเดือนก่อน +1

    I absolutely need this moving environment folllowing the camera of the character like you made with trees! Is that possible in Unreal Engine 5?

    • @GXR-TRADING
      @GXR-TRADING 10 หลายเดือนก่อน

      I need this tutorial in Unreal Engine :/

    • @gamedevaki
      @gamedevaki  10 หลายเดือนก่อน +1

      ah sorry, I don't have experience with Unreal Engine.
      I didn't really do anything crazy in this tutorial so it should be applicable to Unreal Engine 5

  • @quesia7663
    @quesia7663 2 หลายเดือนก่อน +1

    PLSSSS PART 2 WE WILL ALL SUPPORT YOU PLSSSS 😭😭😭🙏🙏

  • @DestusG
    @DestusG ปีที่แล้ว

    Thanks learned a lot

    • @gamedevaki
      @gamedevaki  ปีที่แล้ว

      Glad to hear that!

  • @misguidedcouch
    @misguidedcouch 4 หลายเดือนก่อน

    I have a simple movement with one frame, how would I update this code to properly execute?

  • @Chareidos
    @Chareidos ปีที่แล้ว +1

    Nice Tutorial. To the point.
    Unfortunately I have to look for another approach for implementing my 2D Character with Skeletal Animations into a 3D World.
    Bodyparts are using 2D Sprites (with 6 Frames for Directions).
    I do not think that it will work with Sprite3D?
    Maybe I need to look for some Tutorials with viewports in mind.
    But the video was overall useful and I still got plenty to take with me to make a 3D World rather quick and easy.
    Thank you for the Tutorial

  • @richardlitter6956
    @richardlitter6956 ปีที่แล้ว +1

    I'm playing around with making something like this so I'll ask here and see if someone recognizes my issue if that's alright? I can see the invisible parts of my sprite when it moves. It blurs whatever's behind it so you can clearly see the edges of the sprite frame. Any idea what could have caused this? It's not even animated yet, it just happens when the player moves. I have the spritesheet imported the way you did it and I can't really find anyone else who's got this issue and it's driving me nuts :P

  • @Снеговикхочетвассожрать

    3:57 what value does "facing" represent?

  • @SaharatOfficial
    @SaharatOfficial 7 หลายเดือนก่อน

    Umm anyone realize the walking code is in Vector2? I debugged this for 30 mins to realize i needed to have direction.z instead of direction.y to move up and down.

  • @GadotLearner
    @GadotLearner 11 หลายเดือนก่อน

    Wow, keep these awesome videos coming! What a relief to find someone who gets to the point, and also has great taste. Plus, you are the only tutorial maker I have yet to come across who does not sound castrated. For real: so much content I won't access because I can't bear hearing the eerily common soy tone - and often ESL (English as a Secondary Language) pronunciation. It all results in sounding like fingernails scratching across a chalkboard. Thanks for being different!

  • @Lexipumpkin783
    @Lexipumpkin783 4 หลายเดือนก่อน

    could you try doing this in cyclops editor for godot?

  • @neozoid7009
    @neozoid7009 ปีที่แล้ว +1

    I can't find the sprite sheet for download

    • @Lilfishowo
      @Lilfishowo 5 หลายเดือนก่อน

      You can use any free on don't worry

  • @Yalloriess
    @Yalloriess ปีที่แล้ว +1

    Sad we didnt get to at least see the result at the end of the video

  • @Garretlike
    @Garretlike ปีที่แล้ว

    Should the SpringArm3D be bound to the player character? Shouldn't it be used in the level scene and the level scene inherits the player character? sry, i'm new to game development and just trying to think about structure a bit for my project as well. Hence, for some reason my animations for moving forward, back, left and right don't seem to work correctly. i think i did everything as according to the video. The sprite seems to orientate the specific frames at least in the directions it should look, but then is stuck on the one frame animation instead of doing the rest of the 6 frames for the specific direction it is facing. Anyone having a similar problem?

    • @gamedevaki
      @gamedevaki  10 หลายเดือนก่อน

      I'm mainly using the SpringArm3D to control the camera in relation to the player, that's why I bind it to the player.
      That way, when the player moves to different stages, it will still have the same SpringArm3D and Camera attached to it.

  • @anomalyaces9204
    @anomalyaces9204 5 หลายเดือนก่อน

    Sorry to necro this a bit, but how did you figure out the UV trick... it has saved me soo much time! Thanks!

    • @gamedevaki
      @gamedevaki  5 หลายเดือนก่อน

      I remember reading about it somewhere in Godot 3.5 documentation. Can't seem to find the link now.

  • @Garretlike
    @Garretlike 11 หลายเดือนก่อน

    i have the problem that th players feed are like inside the tiles from a y direction with collision detection, is there some kind of offset so that the sprite does not seem to have its feet cut off from the block tiles?

    • @gamedevaki
      @gamedevaki  10 หลายเดือนก่อน +1

      I usually offset it based on the position of my tile. e.g. if my floor tile is on default position (0,0,0) and has a height of 1, I'll offset it by 0.5

  • @CHnailer
    @CHnailer ปีที่แล้ว

    And if you want to add animations to attack moves Animation of storage position Do I have to draw another picture png and do it all over again?

    • @gamedevaki
      @gamedevaki  10 หลายเดือนก่อน

      Yeah, you need a separate animation for attacks.

  • @triskaideka13
    @triskaideka13 11 หลายเดือนก่อน +1

    How do you get the trees to sway?

    • @gamedevaki
      @gamedevaki  10 หลายเดือนก่อน +1

      I've made a video to go through the tree sway here - th-cam.com/video/g17C_EXna3M/w-d-xo.html

    • @luisquintero9998
      @luisquintero9998 3 หลายเดือนก่อน

      ​@@gamedevakiit's a private video

  • @benjaflinston
    @benjaflinston 7 หลายเดือนก่อน

    My character's sprite is blured. How I fix this?

    • @The_Omnipotent
      @The_Omnipotent 5 หลายเดือนก่อน

      go to the sprite animation or animation player and on the right side yo will see flags in there you choose nearest as the texture filter
      let me know if this helped

  • @michealsfriendtrevor9761
    @michealsfriendtrevor9761 ปีที่แล้ว

    can you make a video on how to flip the sprite of an enemy or other npc correctly so that they always face the player when you rotate the camera? My code only works when I am not rotating the camera. In my code, I make the enemy calculate the distance vector3 between it and the player when it is agro and normalized it, then I make the enemy choose to flip sprite or not based on the x axis of it. It worked fine before I saw your video and decide to add the rotate camera to the game like don't starve.

    • @gamedevaki
      @gamedevaki  10 หลายเดือนก่อน

      off the top of my mind, I'm thinking of using RayCasting to identify the camera position relative to the players to decide on the flipping and facing.

  • @collinvisser7108
    @collinvisser7108 ปีที่แล้ว +1

    Very good video - nice and detailed but not going into lot of details - very good pacing.

    • @gamedevaki
      @gamedevaki  ปีที่แล้ว +1

      Thanks for the kind words, glad that you enjoy this video!

  • @grayfox_yt
    @grayfox_yt ปีที่แล้ว

    I feel like a dithered shadow shader would set this off.

    • @gamedevaki
      @gamedevaki  10 หลายเดือนก่อน

      thanks for the great idea, let me try figure that out!

  • @NexusBaum
    @NexusBaum 6 หลายเดือนก่อน

    how is your project going?

  • @TheSaiphWorkshop
    @TheSaiphWorkshop ปีที่แล้ว

    I Just have a question, how i can make the facing code? Like i should make a "onready var"?

    • @gamedevaki
      @gamedevaki  ปีที่แล้ว

      Sorry, I don't quite get the question you are asking. Do you mind giving me more context?

    • @TheSaiphWorkshop
      @TheSaiphWorkshop ปีที่แล้ว

      ​​@@gamedevakii'm sorry for the delay, i got an error in the code: 'The identifier "facing" isn't declared in the current scope.' I use godot 3.5 because i cant use godot 4

    • @TheSaiphWorkshop
      @TheSaiphWorkshop ปีที่แล้ว

      I'm still new at godot

    • @gamedevaki
      @gamedevaki  ปีที่แล้ว

      thanks for the context. yes, you need to define the variable through something like "var facing = 0"
      it's been a while since I've last used Godot 3.5, so I don't remember the intricacies but you would need to make sure facing is usable by the entire script, not just the function.
      you should be able to do that by placing "var facing = 0" outside of all functions

    • @TheSaiphWorkshop
      @TheSaiphWorkshop ปีที่แล้ว

      @@gamedevaki ok!!! Thank you!

  • @glitched_code
    @glitched_code ปีที่แล้ว +2

    -Animating a sprite sheet like you described in the first part of the video is a bad idea. When you eventually will need to edit those animations it will quickly become an unmantainable mess, especially if you do it in code. It's better to use AnimationPlayer instead, since it has way more built in functionality and is easier to use for people that don't usually code, like animators, designers and sprite artists.
    -Did you dub this video using an AI voice model?

    • @gamedevaki
      @gamedevaki  ปีที่แล้ว +1

      Thanks for the good point.
      In my opinion, animation player is ideal for complex animations like cut scenes or battles.
      I would prefer my approach for homogenous animation - imagine having to set the same key frames for 100s of sprite. Of course, it is up to each developer to make the judgement call.
      Yes. Using Tortoise TTS model.

  • @danielantonioreyesarmas359
    @danielantonioreyesarmas359 ปีที่แล้ว

    Te amoooo!!!!

  • @casul-4891
    @casul-4891 ปีที่แล้ว +1

    Do you have any plan to make a game in steam?

    • @gamedevaki
      @gamedevaki  ปีที่แล้ว

      That's like the dream! Not sure how long it takes for me to get there though.

  • @ararashi8967
    @ararashi8967 ปีที่แล้ว

    If i make it in mobile renderer, ¿ who are the parameters i need to change ?

    • @gamedevaki
      @gamedevaki  ปีที่แล้ว

      mobile renderer would need some tweaking in the Depth of Field and bloom settings for greatest impact. World environment and light settings also need some tweaking for minor improvements.

  • @UZPvNUCaaQdF
    @UZPvNUCaaQdF ปีที่แล้ว +1

    This really isn't showcasing bloom or DoF very well (to be fair, a lot of Octopath players feel the effect is too strong in that game). I think you should build another scene and reassess whether your shaders are working as intended

    • @gamedevaki
      @gamedevaki  ปีที่แล้ว +1

      Thanks for the feedback. Agree that I failed to give bloom or DoF the showcase it deserves.
      Let me work on another video focusing on those effects across multiple scenes for a better showcase.

  • @KeegansLife
    @KeegansLife 2 หลายเดือนก่อน +1

    You're charging money for free assets. You realize that is illegal and against the license agreement of the free assets you're using right?

  • @zitronekoma30
    @zitronekoma30 8 หลายเดือนก่อน

    4:45 this code makes my skin crawl, please never do this. initiate all your stuff first, then make the if statements which just set a variable to either +PI/2 or -PI/2, then tween. this is so much needless code duplication.

  • @sasdasu00dfsdfardo
    @sasdasu00dfsdfardo 7 หลายเดือนก่อน

    after godot completely failed to load and properly displays basic 3d models I also tried to use the 2.5d aproach but after I noticed godot is bugged even to load a bunch of images I just went back to unity

  • @NexusBaum
    @NexusBaum 10 หลายเดือนก่อน

    🙏

  • @CanalTVCP
    @CanalTVCP 6 หลายเดือนก่อน

    Are you alive?

  • @AppMaker728
    @AppMaker728 5 หลายเดือนก่อน

    Too much ideas I keep getting about making video games godot I'm getting too many ideas of what game to make I never had many game ideas with unity like with Godot and Unreal

  • @AppMaker728
    @AppMaker728 5 หลายเดือนก่อน

    It's too much too much ideas of what game to create

  • @lynic-0091
    @lynic-0091 ปีที่แล้ว

    Your previews are way too short, show off what you've made for longer! Lol

    • @gamedevaki
      @gamedevaki  ปีที่แล้ว

      thanks for the feedback, I'll try adding longer previews in the future. curious what do you think is a good length for the end results showcase?

  • @notSoAnonyymus
    @notSoAnonyymus ปีที่แล้ว +3

    Recommendation: remove the AI voice use your own or ask a friend to read the line.

    • @gamedevaki
      @gamedevaki  ปีที่แล้ว +11

      thanks for the feedback, being an Asian with English as my second language makes this a little challenging.
      not to mention the hate I've gotten from my old videos for my accent and grammar mistakes
      making videos is just a hobby for me, so I rather just use an AI voiceover so I don't need to deal with the haters lol

    • @temp_text7728
      @temp_text7728 ปีที่แล้ว +7

      I appreciate the current voice settings used. It's clear and not hard to listen to like other AI voices. Better to be able to understand what is being conveyed clearly. I have struggled to follow some other tutorials where the mic used is not very good quality or there's no voiceover at all, so this is very helpful. Thank you OP!

    • @engame1702
      @engame1702 ปีที่แล้ว

      do you know what ai voice did he use? i've heard mostly in yt shorts?

    • @sergey_a
      @sergey_a 4 หลายเดือนก่อน

      I do not even know which voice you are using, because I use neural networks to translate and voice over into my native language

  • @TentacleShark
    @TentacleShark 7 หลายเดือนก่อน

    is...this voice an AI?

  • @ven7306
    @ven7306 ปีที่แล้ว

    why you charge for source code?

    • @Ah2o5b
      @Ah2o5b ปีที่แล้ว +5

      It is his code he can do whatever he wants with it. Support other devs youtube ads don't pay the bills

    • @kplays_6000
      @kplays_6000 ปีที่แล้ว +1

      if you don't wanna pay for it, follow the tutorial

    • @standardLit
      @standardLit ปีที่แล้ว +1

      It's marketing trick and nothing wrong with it

  • @ven7306
    @ven7306 ปีที่แล้ว

    unsub because you sell out, why no free code? greedy.

    • @casul-4891
      @casul-4891 ปีที่แล้ว +5

      ​@@iFruit9iXven dude is hilarious 😂. He's the epitome of "beggar asking too much"

    • @Ah2o5b
      @Ah2o5b ปีที่แล้ว +6

      It is his code he can do whatever he want with it don't be an 8 years old and grow up.

    • @lynic-0091
      @lynic-0091 ปีที่แล้ว

      Lol you're pathetic

    • @kplays_6000
      @kplays_6000 ปีที่แล้ว +3

      or take the time to follow the tutorial and learn from it, and you'll end up with the source code without having to pay. Get a grip

    • @Cretaal
      @Cretaal ปีที่แล้ว +4

      Oh no, and here I was excited to see your asset flip on kickstart. Shame...