It was very helpful! Thank you very much! I am planning to make a game using this system for a game contest. Are the materials available for download from this project copyright free? Sorry if it's hard to read in Google Translate.
I think what you are asking is forking. Forking gives you a copy of the repository, you can both make changes and receive updates from the original creator
This looks like a very organized way to do it. I just throw all of the states in a switch function in my player’s script, and each state gets its own function, and then each state’s function has logic for the other states it can switch to… I like this idea though!
@@ForlornU sorry for lack of context in my comment, it throws me error in 2:58 part in statemachine main script in func _ready > initial.state.Enter() i guess i missed something.
This was really useful, thanks! I just have one question... Where do you use the Exit function? I was looking for an example of it in your GitHub and didn't find.
Good code, but bad video. I managed to understand the algorithm only after opening the source. If only the video has shown more than two lines at a single time, so that I could get the bigger picture.
Very high quality video ! Awesome ! I was wondering how to do a localized "time bubble" where time would slow down for every object that enters. Maybe you would have some ideas?
You can't change timescale for that since that would affect everything, this is more complicated and you have to track each objects custom timescale, manually update controller animation speed, variables etc. It requires you build an entire system for it I think
Any tips on how to combine this with composition (stuff like making components and composing entities from them, like VelocityComponent, HealthComponent, WanderAroundComponent, etc)
Is this the same as Finite State Automata? Where you have a Deterministic Finite Automaton, DFA, a Non Deterministic one, NFA, an Epsion Non Deterministic one, e-NFA, and you work on reducing whatever automata you have into a minimal deterministic one? I took this as part of an introductory course to compilers and it seems awfully similar
This video is structured as something in-between a step-by-step, follow along tutorial and a devlog. I apologize for the confusion, i recomend anyone interested in the project to get it straight from the source rather than following along the video, download here: github.com/ForlornU/Fishy-example-game
Thank you for your honesty, this takes courage and you definitely get respect points for this. If you have the energy and time, it could be possible to still make the video usable as a tutorial by adding a few overlays to the video to add what is missing or clarify what is vague. I guess at worse it was a learning experience in tutorial video making 😃
amazing video, but i feel it's definitely important to show and explain how to use state_transition and explain what it does, and how it connects the scripts. great otherwise though, i needed someone to explain FSM to me like i'm 5 lmao
How would you get AI and objects to be attracted toward the center of the planet rather than just a character controller? Like imagine, pushing a box around the planet and the box doesn't fly off into space or fall off
I should have shown this more clearly, one of the controllers in the video is a rigidbody just like a physics object and it works the same way. Create a rigidbody, turn off its gravity and add the same code to have it be attracted towards the planet but without the forced rotation. For AI you would have to write a custom pathfinding script I suppose, but then they should work just the same as the player here
I'm only 12 minutes into this video and I find the tutorial extremely frustrating to follow. There's a lot of jumping around and often changes are made to the script, nodes, or options without being said in the narration and if you're not focused like a hawk you might miss it. Feels almost like a devlog instead of a tutorial. This is my 3rd or 4th Godot tutorial, and I don't think I'm going to finish this one, which is unfortunate.
I'm sorry for the confusion caused by the video's structure, it doesnt really work as a step-by-step despite being made like one. I'll make sure to clarify this with a stickied comment. Thank you for the feedback
Unironically i have a personal project like feeding frenzy I’ll be working on(already started and have a fsm for moving animation kinda) after the game jam im in.
Gosh this was a real lesson for me! The lesson was mostly good but there were some parts that were *so* hard to follow, you tend to click around the screen so quickly it I guess it implies that I'm meant to know where those things are... the screen settings at 21:36 or when you changed the gradient I had to actually slow down the speed of the video to see what you were doing (and you started doing it before you started talking about it) so that was really hard to follow, I haven't been able to finish the whole thing and I think I'm going to have to finish this just by myself and using chat gpt because there are too many things that when I copied your code exactly they just do not work in the same way, I think there are a few instances where things were changed/ renamed outside of the tutorial, overall it is good and when you explain things they are clear, the whole segment with the spawner was great, but I wasn't able to follow beginning to end unfortunately and I tried really hard!! I'm very new to godot this is my second video that I'm following.
Wonderful job with the video. Love your coding style and appreciate you going into the code and explaining why you chose to do what you did. You also go into topics your typical engineer would immediately think of such as not hardcoding everything. Very nice! I wouldn't know for sure but I think the way you explain it may even help those who don't code for a living understand.
I’m mainly using this as a way to get the basics in my own project set up, and there’s a few things like the enemyfish scripts init_fish is supposed to be just init, and I’m stuck at like 40:46 where the inheritance argument for fish for the init_fish func in the fishspawner makes it an invalid function type as it’s not a node2d and it’s a characterbody2d (Could be likely due to my wanting to do composition instead of strictly inheritance), but still should be possible to fix, albeit me wanting to smash my head into my keyboard