How I Fan 3D Cards in Godot 4

I've spent a month adding a demo card game to my Godot 4 course. As a result, I wanted to dive into a cool logistical solution to fanning a hand of cards with the Curve resource.
📰 Check out my Godot 4 course here! bramwell.itch.io/godot-4-begi...
✨ Socials ✨
🐦 Twitter: / bramreth
💬 Discord: / discord
☕ Buy me a coffee: www.buymeacoffee.com/bram
🎮Games: bramwell.itch.io/
🕺TikTok: / bramreth
🤖 The 12th alpha release for Godot 4 I used in the video is here:
downloads.tuxfamily.org/godot...
Chapters:
00:00 Introduction
01:45 Making 3D cards
02:08 The hand node
02:35 Spreading the cards horizontally
05:00 The Curve resource
07:22 Spreading the cards vertically
08:24 Rotating the cards
09:22 Closing words
#Godot4 #GodotEngine #Gamedev

Пікірлер: 57

  • @tamerxero
    @tamerxero8 ай бұрын

    This is a great video! If anyone is wondering, in the new GDScript instead of the interpolate() function there's a sample() function instead for curves. Took me a minute of exploration and research to get to, so hopefully this speeds up the process for the next person.

  • @kiinii-pixel

    @kiinii-pixel

    6 ай бұрын

    was looking for this comment, thanks!

  • @Carkoon
    @Carkoon Жыл бұрын

    I found it really useful that you explained your thought process so well. The illustrations really helped in that regard.

  • @Crisisdarkness
    @Crisisdarkness Жыл бұрын

    Wow this is amazing, I didn't know you were doing a course to create a card game, oh this looks fun, I think I'll be encouraged these days to buy your course

  • @yukku121
    @yukku121 Жыл бұрын

    This is probably one of the best tutorials I have ever seen. Thank you! Not a beginner, but seriously considering getting your course now, I'm sure I can learn great stuff there.

  • @lionkingmerlin
    @lionkingmerlin Жыл бұрын

    Thanks a lot. I found another tutorial which was way to complicated using multiple sinus and cosinus function. Your solution is way easier to understand and easier to compute.

  • @sawyheartgames2161
    @sawyheartgames2161 Жыл бұрын

    Beautiful. Your code is always so clean and clear

  • @coucoul38

    @coucoul38

    10 ай бұрын

    He doesn't show to what nodes the script is attached and what some variables are, that's not very clear for a beginner 😢

  • @bwah9481
    @bwah94817 ай бұрын

    Love the visuals. Thank you for sharing and taking the time to put this together!

  • @rluders
    @rluders Жыл бұрын

    This was beautiful to watch. Very elegant solutions.

  • @stefoto7577
    @stefoto7577 Жыл бұрын

    This is such a good video, it helped me in specific how to go along making a drawing program work even with quick and long strokes

  • @haydenap
    @haydenap Жыл бұрын

    What a stellar video. Your editing and video composition is of really high quality. Not to mention your clear method of explaining the subject matter.

  • @JackKell100
    @JackKell1005 ай бұрын

    Extremely good video format! I like how you breakdown the problem and describe what you are trying to achieve first and then build on top of the problem incrementally.

  • @MarkWilds87
    @MarkWilds87 Жыл бұрын

    Very clear and nice editing

  • @richardmcilwain7125
    @richardmcilwain712510 ай бұрын

    Very clean & concise tutorial. The effort put into the editing really payed off.

  • @BramwellWilliams

    @BramwellWilliams

    10 ай бұрын

    Thankyou so much! This was easily my hardest video to put together 😊

  • @CCranio8
    @CCranio8 Жыл бұрын

    Very helpful, thank you!

  • @andrerenajf
    @andrerenajf3 ай бұрын

    Your content is in another level of production

  • @wukerplank
    @wukerplank Жыл бұрын

    So well done with the animations in between. It's obvious that you put a lot of time and effort into this!

  • @gorilabyte
    @gorilabyte Жыл бұрын

    Now this is *crazy* good as a tutorial.

  • @mersonkrazyTV
    @mersonkrazyTV4 ай бұрын

    Can someone please make a more detailed version of this process? I've been trying to get this to work but it just hasn't

  • @andrekling
    @andrekling Жыл бұрын

    great video, very well explained. very happy that i got the course, looking forward to more material. keep up with the great work.

  • @3hourgames

    @3hourgames

    2 ай бұрын

    Hi @andrekling , what did you think of the course? Were you able to complete it?

  • @andrekling

    @andrekling

    2 ай бұрын

    @@3hourgames unfortunately haven't had time yet, life gets in the way...

  • @PumpkinPanda-
    @PumpkinPanda-11 ай бұрын

    Awesome tutorial!

  • @ProjetoSaga
    @ProjetoSaga Жыл бұрын

    really cool and helpful, thanks! :)

  • @slecornu
    @slecornu Жыл бұрын

    Great video x

  • @marioroberti
    @marioroberti10 ай бұрын

    HOLUP......You have a course?! I loved your dragging camera example in Godot 3. I just bought your course. Can't wait to dive in!!

  • @Benpaste
    @Benpaste4 ай бұрын

    xenagos was the first planeswalker i ever pulled. brought a tear to my eye... hope youre doing well friend

  • @TheFantatier
    @TheFantatier Жыл бұрын

    so good!

  • @DillBee
    @DillBee Жыл бұрын

    WOOOO BRAMWELL!

  • @GamingBossez
    @GamingBossez7 ай бұрын

    Criminally under viewed video. Amazing work

  • @bc6292
    @bc62924 ай бұрын

    This was great! I've also found your Udemy Godot tutorials incredibly helpful.

  • @thomasparas5668
    @thomasparas56686 ай бұрын

    Gruul player spotted. Thanks for this

  • @deoduar9108
    @deoduar9108 Жыл бұрын

    Subscribed!

  • @user-ul2mr7cy3f
    @user-ul2mr7cy3f26 күн бұрын

    Great tutorial, BUT that is not a reason why we use 0 as first index. We do so because index is an offset from the pointer to array to the element we want to use. That makes more sense in languages that have raw pointers. Here is example in C, where arr is a pointer to an array: arr[index] is equal to *(array + index). Edit: At 3:46 you can see an explanation. The same one I wrote before.

  • @NarekAvetisyan
    @NarekAvetisyan Жыл бұрын

    I hate card games, but this was a fantastic and visual lesson. Great job!

  • @bjja264
    @bjja264 Жыл бұрын

    Hi!, you got more tutorials on how to develop card games?

  • @FranciscoSanchez-ut3uz
    @FranciscoSanchez-ut3uzАй бұрын

    (I am spanish, sorry if my english is rusty). This is one of best tutorial videos that I saw by so far! ❤ Thanks for sharing! Please if you can continue explaining how to do tcg games. I think we can learn many things related, like creation of huds and menus, animation of opening cards envelops, creation of custom decks and online batlles against another players. I'll keep watching the videos in case you upload new stuff :)

  • @LocdnessMomster
    @LocdnessMomster8 ай бұрын

    If I wanted to build a deck of "traditional" 4 suit cards, would I have to build each one individually or can I build the pieces of the card and a function to create a version of each with a different color for each of the suits that I have ? Just started Godot yesterday so grateful for any guidance offered and thanks for this video! I was starting with 2d not even knowing what I actually wanted to build was 3d

  • @BramwellWilliams

    @BramwellWilliams

    8 ай бұрын

    Totally ^^ you can add export variables saying the suit and number of the card, and in its ready() function update the cards labels and textures to match those exported variables

  • @LocdnessMomster

    @LocdnessMomster

    8 ай бұрын

    @@BramwellWilliams thank you so much for this info!

  • @deftmute
    @deftmute4 ай бұрын

    Just enough information to frustrate. A great advertisement, I guess, since I'll have to pay to see the rest of the owl.

  • @Tosek2010
    @Tosek2010 Жыл бұрын

    Looks awesome. I have 2 questions: 1) What can I await from your course? (Is this a video tutorial as in udemy?) 2) Just for interrest: With which tool do you make the illustrations/ animations in your youtube video?

  • @movies-xr2sc
    @movies-xr2sc8 ай бұрын

    I too love Magic: The Gathering :)

  • @louisgjohnson
    @louisgjohnson3 ай бұрын

    Instead of the curve for the spread, couldn't you just use a lerp function since you're only interpolating between two points? x = lerp(a, b, t)

  • @dexmonth751
    @dexmonth7518 ай бұрын

    i keep getting "Invalid call nonexistent function interpolate in base curve" and i couldnt find a solution. I tried replicating this in 2d( im new to godot, recently switched from unity)

  • @dexmonth751

    @dexmonth751

    8 ай бұрын

    nevermind i got it to work with sample() instead of interpolate, amazing tutorial tho!!

  • @reax5526
    @reax55269 ай бұрын

    you should make an updated version, this doesn't work anymore in the newer godot 4 versions

  • @gulce9651
    @gulce9651 Жыл бұрын

    In which vfx software did you animate the illustrations that explain your process? They are very impressive.

  • @Pabloquerock
    @Pabloquerock Жыл бұрын

    Does your course has video lessons or is just the source code?

  • @Kio_Kurashi
    @Kio_Kurashi Жыл бұрын

    Your degree rotation numbers seem swapped (shouldn't it be -15 on the left, and positive on the right?), and also there was at one point where you made both the 4th and 5th cards have the value of 1.0 instead of 0.75 and 1.0 respectively. It doesn't change what you were explaining, but it does make it confusing for people actually watching the visuals.

  • @hidemat5141
    @hidemat5141 Жыл бұрын

    Hello. Would you share how you setup your sprite 3d so that it doesn't look washed out? Edit: oh nvm you make 3d models.

  • @edgyneer
    @edgyneer4 ай бұрын

    good tutorial, yet i wish you were more clear about what goes where :/

  • @nowhyareyouputtingmynamehere
    @nowhyareyouputtingmynamehere Жыл бұрын

    Watching this video with this in the background fit amazingly well. kzread.info/dash/bejne/aY6L1Mefm6yYk8o.html

  • @JakubSK
    @JakubSK3 ай бұрын

    If you make KZread videos about the hand you’re “making”, it’ll never be released.