Enemy AI, Card Actions and Gameplay | How to Make Roguelike Deck Builder | Part2

  Рет қаралды 8,700

DeveloperEzra

DeveloperEzra

Күн бұрын

Пікірлер: 74
@ezthedev
@ezthedev 5 ай бұрын
I'm having so much fun! Hope everyone is following along happily!
@FeiryStorm
@FeiryStorm 5 ай бұрын
I just wanted to say "thank you". Your videos are very helpful and I learn a lot from them! So THANK YOU for the good and inspiring work, please keep it going.😊
@ezthedev
@ezthedev 5 ай бұрын
@@FeiryStorm omg that means so much to me! I'm so happy to hear that I can produce something fun and inspiring! Happy dev'ing!
@RGDmusekthingy
@RGDmusekthingy 4 ай бұрын
Amazing video! I definitely recommend making more videos like these full guides, maybe guides on RPGs or Roguelikes! I love the in depthless of your videos as well! Keep it up!
@ezthedev
@ezthedev 4 ай бұрын
@@RGDmusekthingy thank you so much! i really hope to get around to all the other genres eventually (sooner than later!) thanks for watching!
@RGDmusekthingy
@RGDmusekthingy 4 ай бұрын
@@ezthedev No worries! Love your stuff. Do you have a discord server to join?
@Jeff_Auger
@Jeff_Auger 5 ай бұрын
Only about 45 minutes in and this is extremely enlightening! I see so many videos talking about composition vs inheritance and show a script saying it's easy to follow and end the video. You finally explain the code and funny enough you never said composition or inheritance! Your two videos make me understand the code rather than just show the code. Also I'm pleased to find a prototype coder instead of code snob Thanks and cheers!
@ezthedev
@ezthedev 5 ай бұрын
Haha prototype first coding has always felt more intuitive and efficient for me personally! Thanks for watching! I'm glad this video has been enlightening/entertaining for you!
@xyzengranzel4611
@xyzengranzel4611 24 күн бұрын
Hello, gonna say I'm loving these tutorial videos and the way its presented. The workflow and idea process is raw and I am able to absorb how to approach things when working on a game. I am currently trying to make a card game but its field based. But I do am getting points based on this tutorial. For now, I'll try to follow the tutorials and hopefully I can translate these into functionalities like placing cards on a field or summoning entities on a field. Looking forward to more of your videos!!! ( as of writing these, theres 2 videos that i havent watched yet) xD
@ezthedev
@ezthedev 23 күн бұрын
Thanks for following along! I know things get messy and crazy as I find things out on thisn"tutorial" but I'm glad people are having a good time learning and seeing the real process! I do hope to make a cleaner, "now I've done it once and learned let's try it again better and faster."
@AgriasOaks99
@AgriasOaks99 5 ай бұрын
Hey, another episode is finally here
@ezthedev
@ezthedev 5 ай бұрын
It is here! Thanks for watching haha
@lv99redchocobo37
@lv99redchocobo37 5 ай бұрын
honestly this journey you're on is very inspiring. i appreciate all the honesty, any mistakes you make, the basis of all of this is incredibly helpful. and even your uncertainty with it, is helpful because i go through this as well. when i watch any tutorials talking about math and such, i wonder to myself if maybe i'm too dumb to make it through this because i really don't understand a lot of the math that's going on.
@ezthedev
@ezthedev 5 ай бұрын
I love that sharing my mistakes and process is encouraging to others! And yea even for me there are moments where I feel stupid for not getting the math and logic in tutorials. However, over time by slowly learning and building up knowledge I know you can get there! Thanks for following my journey! And hope you follow along and succeed too!
@GuiCmo
@GuiCmo 3 ай бұрын
It's so satisfying to get to the end of the tutorial because it really is a journey following you through all the problems and everything. Thank you very much, keep helping us.
@ezthedev
@ezthedev 3 ай бұрын
Thank you so much for following along in this journey! I'm so gad that you are able to experience the satisfaction of completing and seeing the result
@dnoate
@dnoate 4 ай бұрын
I've never been one for long videos, but as a game dev very much in the beginner phase, it's really helpful looking at how the process really looks like, in comparison to tutorial vids just telling you what to do.
@ezthedev
@ezthedev 4 ай бұрын
Im so glad to hear that you found this helpful! Thanks for watching!
@getkawedbythecrow2524
@getkawedbythecrow2524 4 ай бұрын
Ill be following along with my younger sibling this week. They understand coding concepts easier than I do so I figure our combined efforts will make us unstoppable! I am excited to have a project we will both enjoy! Thank you.
@ezthedev
@ezthedev 4 ай бұрын
That's so awesome! Hope you and your brother get to make a game you can be proud of! Let me know if anything is too confusing or need more explanation and I'll do my best to answer! Good luck game dev'ing!
@jueue2964
@jueue2964 5 ай бұрын
Hey, found you a bit ago but just moved so a bit busy. Excited to follow along, i like the way you present your vids.
@ezthedev
@ezthedev 5 ай бұрын
Thanks for the comment! I hope it's a meaningful and fun follow along for you!
@baitcarp
@baitcarp 5 ай бұрын
been looking forward to this!
@ezthedev
@ezthedev 5 ай бұрын
Aww that makes me happy! Thanks for watching!
@blrwllm4357
@blrwllm4357 5 ай бұрын
Great first 2 videos on this. Appreciate it a lot
@ezthedev
@ezthedev 5 ай бұрын
Thanks for watching!!
@Edward-Not-Elric
@Edward-Not-Elric 5 ай бұрын
These are super useful and entertaining, thanks for making these!
@ezthedev
@ezthedev 5 ай бұрын
Thank you so much for the support ! This means so much to me! :)
@abdotique4026
@abdotique4026 4 ай бұрын
Thank you, please don't stop😄
@ezthedev
@ezthedev 4 ай бұрын
thanks for watching! I will not stop! haha taking a little time to get next few videos lined up so I can begin uploading more regularly, but I will be back with them soon!
@abdotique4026
@abdotique4026 4 ай бұрын
@@ezthedev This is amazing❤
@virtual__
@virtual__ 5 ай бұрын
I JUST finished watching EP 1!!
@ezthedev
@ezthedev 5 ай бұрын
What a perfect timing!
@fernandoiraira6926
@fernandoiraira6926 5 ай бұрын
First of all, English isn't my first language, so it's pretty difficult for me to express my thoughts in a message, but hopefully, you will understand me lol. This is by far one of the best tutorials I have ever followed. I'm really thankful for all the effort you put into it. I'm halfway through this tutorial, and it's a delight to see you working! I did some things differently, for example, I used resources for types of cards, different types of cards, etc. Thank you so much for this, and I hope you get the popularity you deserve!
@ezthedev
@ezthedev 5 ай бұрын
Wow what a high praise! Thanks so much! This means so much to me and makes me happy! And yea haha definitely should be using custom resources for better structure and typing too! I'll probably do a clean up session at the end!
@lisaarmenteros8323
@lisaarmenteros8323 4 ай бұрын
I absolutely love the way you go through everything. As a programmer, I do have some times where I question the method to your madness, but you often times think ahead about the questions that may arise and answer them. I appreciate how you think out loud, your workflow is similar to my own, and you have a pace which is great for learning. I don’t think you over-explain (this is also in response to the first video) and prefer it when the thought process is explained. One edge case I am not sure you accounted for was being able to use cards during an enemy’s turn. I don’t believe it’s technically possible just due to the speed of the enemy turn but if you ever prolong it for animations, it will be more evident.
@ezthedev
@ezthedev 4 ай бұрын
Haha It's great to hear that my chaotic method is eventually addressed through my "thinking ahead" explanation! I often find that pausing too long to decide the "best" way often leads to halted progress for things that would have been changed anyways.. so I learned to trust my ability to fix things in the future! On that edge case! it's true I haven't thought about "reacting to enemy move," but I think it would be as simple of a solution as adding "reacting" state and a careful decision on how to "enter" and "exit" that before enemy turn is over! I will definitely address this as I go further into this project and further break down the states (since i was planning on sub-dividing the states I decided on this video later). Thanks for watching and commenting! Happy game dev'ing!
@ezthedev
@ezthedev 4 ай бұрын
Unless of course, the mechanic is not turn based but rather "reacting in mid action" like an action game! Then yea, as you mentioned handling user input during enemy turn animation would do it!
@lisaarmenteros8323
@lisaarmenteros8323 4 ай бұрын
@@ezthedev very true! I should develop that myself. I often get preoccupied on overthinking and it halts me from doing.
@computersciencestudentriverbat
@computersciencestudentriverbat 5 ай бұрын
KZbin didn't notify me of your new video, I even have the bell clicked and everything. Regardless, great video as always! Keep doing your thing man! Also I just noticed the Gloomhaven in the background, love that game.
@ezthedev
@ezthedev 5 ай бұрын
Haha youtube notification is so random and unreliable sometimes... anyways thanks for watching! And yea I love gloomhaven! I just can't seem to get consistent group to finish :(
@Notreal76
@Notreal76 4 ай бұрын
Great tutorial. Thank you for your time and effort.
@ezthedev
@ezthedev 4 ай бұрын
thank you for watching!
@CaiooliveiraRAWR
@CaiooliveiraRAWR 4 ай бұрын
You're doing a fantastic job, and I'm excited to learn more from you. Keep up the great work!
@ezthedev
@ezthedev 4 ай бұрын
Thanks so much!
@remingten
@remingten 4 ай бұрын
Hey Ezra, your videos are excellent, thanks for all of your help. Please continue this series.
@ezthedev
@ezthedev 4 ай бұрын
Thank you @remingten for watching! I'll do my best to continue putting out contents for this series and other useful contents like this for you! haha
@sanyi9667
@sanyi9667 5 ай бұрын
this looks so cool! do you plan to implement a save system as well? I'm really struggling with that
@ezthedev
@ezthedev 5 ай бұрын
Thanks for watching! And yea! Save and load should definitely be part of it!
@nickjunes
@nickjunes 4 ай бұрын
I prefer the term “limited state machine” to just “state machine” because technically all software is a state machine but the only real distinction is having a smaller more manageable number of outcomes. Otherwise software no software can produce output outside its maximum number of values.
@ezthedev
@ezthedev 4 ай бұрын
Agreed! I always say basically everything is a "state machine". When I in schoole we called it "finite-state machine" which translates to what you call "limited " nicely haha
@nickjunes
@nickjunes 4 ай бұрын
@@ezthedev Thanks! This makes me feel less crazy. Also thanks for the videos I'm learning a lot!
@ZiosNeon
@ZiosNeon 5 ай бұрын
great videoooo
@ezthedev
@ezthedev 5 ай бұрын
Thank youuuuuuu
@nickjunes
@nickjunes 4 ай бұрын
As more of a functional programmer I’m yelling at the screen telling you not to put game logic in your cards, but that’s up to each person to decide. Personally I think visual objects should be dumb and all the important logic should happen in controllers where you have access to all the data. This method seems a lot more organized and flexible to me since you can perform any complex transformations on the data using any data in the game and then push visual updates to your dumb components at the very end, but people trained on the idea that code is a “mirror of the world” tend to think objects should contain running state and do things on their own which can lead to unpredictable outcomes. At the end of the day do you want a bunch of messy objects around with meaningful state hidden all over the place or do you want powerful controllers with access to a single source of truth for game state. That’s up to each person.
@ezthedev
@ezthedev 4 ай бұрын
I do constantly go back and forth in my personal projects between powerful controller model based on more MVC approach and the style of object knows their own thing (like shown on this video series) I do agree there's a huge benefit in organization expectation of where what is. However, there's the headache of moving around gamestate variables between different components and the problem of that "gamestate" being a bloat that end up being too much information for some use cases. I tend to try focus on more of MVC approach when it comes to strongly UI type of interaction vs. Core game logic.. still learning and experimenting and shaping what I feel most comfortable haha. I really appreciate this comment and the kind of conversation and thought it is spawning! Thanks for that and thanks for watching!
@nickjunes
@nickjunes 4 ай бұрын
@@ezthedev Sure I mainly work with web apps and serverless backends now, but even though I've been programming for 20 years my thoughts on all of this have never stopped evolving. Lately I like the idea of having very flat databases that are easy to query and make indexes on and then everything else starts as an event that gets processed by some controller for that event and then makes and alteration to data. Then the data change triggers a ui update. I have not made a game yet, but your videos are giving me ideas how I want to organize my game. I don't know if there is anything like an in-game database, but I like the idea of keeping all the current state data in one place and then pushing it out to the objects. It might not even need a database. A few dictionaries might be fine. Then also you could save all the game events and actually recreate any game based on just the events. Then you could rewind and fastforward the replays. Also no data is truly lost as the event log is immutable. Anyway I'm really excited to make my first game. Everyone doesn't need to do things the same way and maybe I'll find that the way I'm imagining needs to change. That will be part of the fun.
@ezthedev
@ezthedev 4 ай бұрын
@@nickjunes I'm excited for you and your game! Your exploration of idea of "main database of events/data" reminds me of this one approach that I've seen people do. There's a way to setup a "global" script where it's almost like Game level static (singleton) object. It's accessible ANYWHERE in the game code without any injection. I've seen people use this for gamestates and configuration. Maybe I can explore that! As an aside, I have been also trying to read up on the design intention of Godot as an engine and what people have been finding useful / effective! So hopefully I can share my findings on my future videos for more discussions like this! Thanks!
@nickjunes
@nickjunes 4 ай бұрын
@@ezthedev Thanks! I'm looking forward to more of your videos.
@rock_covers_and_then_some
@rock_covers_and_then_some 2 ай бұрын
Honest question: in a turn-based card or board game, why do you use _process() to determine which state the game is in? As the game advances only after an action (such as selecting a card) which can be handled by emitting a signal that all scenes can pick up to act accordingly.
@ezthedev
@ezthedev 2 ай бұрын
And you are right! In saying, for the most part state only progresses on action, and performance and "sync" wise that maybe more convenient. Personally, I like the process loop keeping the state action because it is more flexible to take in any type of "sub states" that maybe animation/timing dependent in the future. When working on games, I often find myself needing to switch over to less action/turn dependent state changes as the game matures, so I made a habit of starting the implementation like this!
@SirBartolomew
@SirBartolomew Ай бұрын
I believe that the importance of following best practices grows with the scale of the project and the amount of people working on the project, but they impose a cognitive cost on the individual developer that hinders their ability to work fast and focus on what really matters. In small projects like this it's best to take a little bit of time to adjust and clean up your code every once in a while instead of worrying about best practices at all times.
@ezthedev
@ezthedev Ай бұрын
Agreed!
@Ryöken17
@Ryöken17 4 ай бұрын
both function to spend mana and take damage will just only work one way, can't you change "int hp" and "int mana" to a certain amount depending on the card use ?
@ezthedev
@ezthedev 4 ай бұрын
That is perfectly valid way to try and manipulate those values! From my experience... because you may add some sort of passive effects that gets added (due to item gain or curse), sometimes you want to separate the implementation for gain versus loss. For example, you may have effect that happens only on life gain. And I don't think it's enough to say "if incoming change is positive, interpret it as gain" since those values can be further altered depending on how rest of the game is implemented! Hope this answers your question, but once again my way is only ONE of the ways to do this, and your suggestion is perfectly valid as well!
@Ryöken17
@Ryöken17 4 ай бұрын
@@ezthedev yeah, it's true if you need later on to play around gain or loose hp in the gameplay mecanics, your way is better.
@dotaportalvideo
@dotaportalvideo 4 ай бұрын
Subbed :)
@ezthedev
@ezthedev 4 ай бұрын
Thank you!
@PsychodelicKitten
@PsychodelicKitten 3 ай бұрын
Did u just teach us how to use a vending machine lol
@ezthedev
@ezthedev 3 ай бұрын
Best knowledge is unexpected and unwanted knowledge! Lol... yes..
@MrRed2611
@MrRed2611 5 ай бұрын
I really enjoing this serie. But i have some questions: 17:00 why you don't import the node with @onready and you do instead the ($node as node) thing? why you do not use custom resources for the cards'data? ps: I really like your approach. I often has decision paralysis when I'm working on a project and your "I'll do it later if it needed" approach is very helpfull
@ezthedev
@ezthedev 5 ай бұрын
thanks for watching! and i'm glad my way of prototyping is helping with your struggle with decision paralysis! haha For your questions: 1. I tend to bias towards ($node as node) in-line when I'm trying to use a component that I'm not familiar with since I'm just trying to quickly test and see what "methods" are available for the class. It's more of a device i use to not break the flow. Whenever I need to touch that $node again in the code, I usually go back to using @onready var.. since that's just overall better! 2. For this particular case, I didn't think going through the works of creating custom resources for the card and then loading that on a unique card scene necessarily helps me enough to bother with it. In my head I thought, "well I will have a resource file representing the card data, and the scene file representing the card.. why not flatten it out to simplify." However, I do intend to create custom resource for game state eventually at least! if you prefer custom resources for cards, that's 100% fine too! Hope this answers your questions.
The Most Valuable File Format You've Never Heard Of
15:33
Acerola
Рет қаралды 516 М.
How to Make a DECK BUILDER on Godot | ep4
1:49:01
DeveloperEzra
Рет қаралды 2,1 М.
СОБАКА ВЕРНУЛА ТАБАЛАПКИ😱#shorts
00:25
INNA SERG
Рет қаралды 3,9 МЛН
How Much Tape To Stop A Lamborghini?
00:15
MrBeast
Рет қаралды 200 МЛН
Hoodie gets wicked makeover! 😲
00:47
Justin Flom
Рет қаралды 128 МЛН
Миллионер | 3 - серия
36:09
Million Show
Рет қаралды 1,7 МЛН
Why Unreal Engine 5.5 is a BIG Deal
12:11
Unreal Sensei
Рет қаралды 563 М.
Programming a tactical strategy game in Godot 4
14:50
The Shaggy Dev
Рет қаралды 21 М.
How To Make a FIGHTING GAME In Godot! [Complete Course]
29:00
What Makes A Good DECK BUILDING Roguelike?
23:33
PepperHead
Рет қаралды 58 М.
Godot Scripts I add to Every Game
12:34
Aarimous
Рет қаралды 43 М.
Creating a window - Software from Scratch
1:04:12
Muukid
Рет қаралды 132 М.
The embed package is a lot more useful than I originally thought...
16:56
Game Design Documents - a Minimalist Approach 🧘🏽
37:44
Indie Game Clinic
Рет қаралды 41 М.
Add Enemies and Traps to your GAME (Godot beginner tutorial)
21:55
every step to actually make your dream game (then sell it)
24:27
СОБАКА ВЕРНУЛА ТАБАЛАПКИ😱#shorts
00:25
INNA SERG
Рет қаралды 3,9 МЛН