I have a feeling this kid lives down the street from Brackeys
@jappyproductions4429 Жыл бұрын
Lmao
@Rovsau3 жыл бұрын
The algorithm really needs to appreciate your 10/10 video format. These are the tutorials we are looking for. Great job!
@zazha813 жыл бұрын
Brief explanation, decent edit, & clear voice. You simply awesome bro. Subbed. Here's love from Indonesian gamedev
@antoine_9667 Жыл бұрын
it makes more sense I think to make the Ability class abstract as you can never have just an, ability and it would allow you to declare abstract method for activate and startCooldown which is cleaner than declaring an empty method implementation and would be overriden the same way; besides that great video ! keep up the good work
@Simon_Laserna2 жыл бұрын
Great content, and fantastic format. You show everything, explain it, and you do it quickly while highlighting important things with editing. Great work. Good luck with your future, and thank you for the video!
@TheOlajos3 жыл бұрын
10/10 for making scriptable objects make sense. I've watched 8 of these and couldn't implement what I wanted to until now.
@timberdev3 жыл бұрын
I'm very glad, that I could help you so much!
@arsenbabaev10223 жыл бұрын
I never thought that scriptable object can inherit from base class. This is amazing solution. Before i had ability scriptable objects with 30+ varibles (most of them unused for particular ability). P.S. Im impressed with editing and video quality for your small channel, for sure keep it up.
@crashcabinet8 ай бұрын
Thank you so much this is actually the best video on KZbin for this exact topic. Been pulling my hair out a few days now within 90% of an rpg alpha and no idea how I was gonna do abilities!!!
@kboltiz2 жыл бұрын
love the code architecture! It's what I look for in tutorials, and you provided!
@ghmoviesandseries10572 жыл бұрын
THIS TUTORIAL REALLY WORKS I AM FROM PHILIPPINES! THIS MAN DESERVES A SUBSCRIPTION!
@imheretosleep3 жыл бұрын
I found a masterpiece, much love from Philippines 🇵🇭💕
@ginnvan48972 жыл бұрын
It worked for my 64-bit PC. Thanks a lot.
@dibaterman2 жыл бұрын
What I like about this is the simplicity, I can expand on this which is very nice.
@davedaddy1012 жыл бұрын
This video really solved a lot of problems thanks. You’re so smart!
@LegendKopper3 жыл бұрын
Amazing tutorial, nice to hear a german explaining it so clearly
@timberdev3 жыл бұрын
Thanks :D
@s1eepy0130 Жыл бұрын
Thanks for the tutorial, you explanation was clear and good enough, which really helps a lot even tho for a beginner like me.
@anuragbhatt282 жыл бұрын
Thank you very much, this video helped me solve a problem on which I was stuck for days!!. Keep Growing!
@Banaaani2 жыл бұрын
This is really good way of doing ability system. I am so thankful that this kind of stuff is available for free. I will also create similar system for passive abilities, that don't need activations or cooldowns.
@thegaminggrizzly67212 жыл бұрын
Thank you for the tutorial. Now I just need to figure out how to make it work with the next input system.
@DJSchuhKay2 жыл бұрын
Find das System sehr gelungen und versuche es gerade anzupassen. Hab vorhin "How To Make Your Game Feel Better" reingespült bekommen, auch ein Top Video - man erkennt den Twist in deiner Stimme tho. Ich habe absoluten Respekt für sowohl die Knowledge, deine Englischkenntnisse und dann auch noch die Qualität und das Arrangement deiner Videos. Alles auf den Punkt, kompakt und professioneller als die meisten anderen Tutorials die man so findet. Würde ich als gegeben hinnehmen, guter KZbin-Kanal eben, aber wenn man dann noch das jung anmutende Alter in Betracht zieht.. ich bin mir selbst ja zu Schade, diesen Kommentar auf englisch zu verfassen.. Hochachtung, danke für die Videos, weiter so :)
@Mimikyu9468 Жыл бұрын
Verdammt gut und Informativ. Holy Shit. Just clicked on a newer Video and the Voice just flashed me xD
@Swiss_Gamification_Academy2 жыл бұрын
Very clean and crispy tutorial. Thank you
@NeverEvi6 ай бұрын
A great tutorial! Well done!
@tylerheenan93932 жыл бұрын
Excellent! Super simple and powerful implementation!
@ahmetkuru082 жыл бұрын
Fantastic video bro, legend.
@noahcolangelo27182 жыл бұрын
Amazing video and tutorial! Used it as a base for an ability system I am working on.
@rarefushion2 жыл бұрын
If you change a variable value on runtime it stays that way because it is a scriptable object. Having to redo my skill system because I didn't know that. this is a great video
@lofivoyagermusic19993 жыл бұрын
amazing your content is very niche and usefull keep posting
@csr38462 жыл бұрын
Great tutorial. Would love to see how you would make this into a flexible buff/ability system with UI and several cooldowns running.
@tenj Жыл бұрын
Very clean video
@adilelhafidi93162 жыл бұрын
Thanks for sharing your valuable experience.
@Aproppo2 жыл бұрын
This is an incredible and concise video, it swiftly and correctly explains concepts that many beginning game designers struggle to comprehend. Great job, glad I found the channel.
@berkerdemirer79823 жыл бұрын
Amazing work, thanks for sharing this knowledge.
@SheCreatesGames2 жыл бұрын
Many thanks for this video, it really helped me out
@iliaschymas18513 жыл бұрын
Very nice tutorial bro. Keep it up
@filipkuzmicz81273 жыл бұрын
that was exactly what i was seraching for since a whole week! such a good videowit good explenations. thx for this
@timberdev3 жыл бұрын
I'm glad I could help you!
@gamedevbaiyi9362 жыл бұрын
Thanks for your good content. It's also very easy-understanding.
@Churagawa2 жыл бұрын
Wow, that switch case with input inside will lead to huge spaghetti code.
@karlbeats4026 Жыл бұрын
how about when you add more abilities? with different cooldowns
@ayaansdraws3062 жыл бұрын
that was exactly what I needed , thank you so much
@QuocNguyen-kb1kn2 жыл бұрын
Take a drink every ti he says “to stay super organized “
@kurrandor Жыл бұрын
Bruder sehr gutes Tutorial, danke :D
@Benjabenjaaaa3 жыл бұрын
Great video
@unluckypanda54483 жыл бұрын
wow that's content! you deserve as many viewers as btp or something
@Arcann_bhp Жыл бұрын
My brain blew up mid tutorial
@tughloksiddiquee1714 Жыл бұрын
Can you show a show how to make a movement script, your player's movement looks so smooth
@ChinLingPingАй бұрын
Does anyone know how I would have multiple abilities on one manager?? This is a great tutorial I am just unsure how to expand upon it!
@hellfactory2575311 ай бұрын
If I want to use a function inherited from the MonoBehaviour class in script DashAblity, do I need to change it to create a variable on the Field to receive a value that is a ScriptableObject?
@stjepandrenski54862 жыл бұрын
Great video. Keep it up
@tughloksiddiquee17142 жыл бұрын
Can you please show how to make a damaging ability, like shooting homing missiles when a key is pressed
@jaybehl756711 ай бұрын
Fantastic Video but what if you want to create, lets say, 100 abilities. You will have to create each cooldown/active time for each and everyone, right? Is there a workaround for this issue?
@yowhatitlooklike9 ай бұрын
If you are expecting cooldown/active time to be roughly the same for all or most abilities, you can set default values for those variables in the ability script. Or maybe another solution is to keep a static class holding the cooldown/activetime as different constants and have the SO pull the values from that when empty... that way you can group cooldowns into different "default" values instead of being stuck with just one
@nightyonetwothree2 жыл бұрын
if you can skip GetComponent, then it'll be great tutorial, but currently you allow newcomers to learn some bad habits alongside with new practices of scriptable objects
@timberdev2 жыл бұрын
Yeah, it's certainly not the cleanest approach possible but It's not that easy to find a workaround for GetComponent. You could pass a component to the ability instead of just the gameObject. This would avoid the GetComponent part. But the tutorial is mainly about the basic scriptable object ability system. I'm unsure if it is the best way of implementing changable abilities. But for me this is the best way I found. If you have an idea to improve this, please let me know. I would love to learn more :D
@nightyonetwothree2 жыл бұрын
@@timberdev usually you know which classes will use abilities and what abilities can potentially use, so you can cache component in ability_user class and make GetComponent func or propety etc. Also, passing "this" instead of gameobject. So ability class can get it by asking user.GetComponent() or kinda like. Even if your abilities can be used by multiple classed, it's better them inherit from same AbilityUser class or IUseAbilities interface which contains functions/properties or kinda like. It's can go very complex, but for this lvl of tutorial it will be enough for AbilityUser script to have public cached component as B&B solution.
@nightyonetwothree2 жыл бұрын
@@timberdev overall you video was nice to watch with nice dynamic and good easy to understand &clean implementation
@timberdev2 жыл бұрын
@@nightyonetwothree Your absolutely right on that! Thanks for the heplful feedback :D
@noorgalyy7 ай бұрын
what do i do if i want to attach prefabs, but i cant do it because of the scriptable objects
@SuperHot-x1y Жыл бұрын
Thanks you from Korea
@Basil13ful Жыл бұрын
could be nice to set abstract Ability and its method Activate, to force the implementation of the method in its child scripts
@chriso31893 жыл бұрын
This will be very helpful
@Rioni2 жыл бұрын
But, if more than two entities has the same reference to the ability scriptable, Are both getting the velocity boost?
@imdublin44313 жыл бұрын
Amazing video and also what font are you using in the video?
@annosurkjau31073 жыл бұрын
Good Video
@DavTalks.2 жыл бұрын
I'm very new to coding and unity in general ,so I know this question might be dumb.So my question is how do I add animations specifically for this type of an ability and does this type of ability apply to making projectiles just with some minor changes to the code?
@TheSlowProgramer2 жыл бұрын
i think you should explain more since for example i had no idea what the heck a enum is so it made the turorial impossible for me to understand.
@jarusca39332 жыл бұрын
just search for it, bro. You have internet
@peterhe2872 Жыл бұрын
Tried setting state to cooldown as default but it always switched to active automaticly, which is so odd
@dibaterman2 жыл бұрын
The downside to this system is you are going to make as many CS files as you have abilities... sort of. Any unique ability needs to have a new CS file while any similar abilities but with augments can just adopt those changes. So for instance a dash with y movement could just be setup through the movementInput. I like how simple this system is but it's a bit.
@oh-facts2 жыл бұрын
For small games, sure it can be annoying to have these many scripts. But for something bigger, it's better to have separate scripts because what if you eventually decide to have effects unique to your dash? What if there's a very specific particle that is emitted, or some other shader effect made specifically for dashing? Maybe when you dash, you want to have some invincibility frames too. Having abilities decoupled from other systems would be much better for scalability.
@backflipbro7902 жыл бұрын
Just straight up doesn't work for me. I'm doing a platformer so maybe that's why, but when I click the assigned key, it doesn't do anything, even when I turn the velocity up.
@Ghost13-3 жыл бұрын
that was very nice
@reynielmahinay70282 жыл бұрын
hi! how can Instantiate an object that follow enemy im having problem about "transform does not exits in current context"
@antoninmalon72253 жыл бұрын
Nice tutorial :)!
@self38072 жыл бұрын
Genial vídeo, super simple y efectivo.
@totallyprofessionalfilmreviews3 жыл бұрын
Great stuff, keep it up!
@davidepicchiotti99892 жыл бұрын
How is it possible that your ball moves at linear speed when in the FixedUpdate of PlayerMovement you are constantly adding to the velocity?
@shoxxie Жыл бұрын
Hey, thanks for the tutorial! How would you go about having multiple hotkeys for multiple spells at the same time, using the AbilityHolder script?
@halivudestevez2 Жыл бұрын
While it's great for inspiration, I will rather analyze and design my requirements. The only thing I see reason for a SO is, that you can set it an Icon - visual representation. Otherwise I see a static class, or an xml for data seems better to me. Now thinking....
@cameronfisher17862 жыл бұрын
Don't know if you'll ever see this, but how would I go about giving the player multiple swappable abilities? My plan is to make a menu where they can choose their abilities and then hit an apply button that sets their abilities to the ones they selected. Any help is appreciated, thanks.
@skichoow2 жыл бұрын
Maybe use some kind of collection for abilities and based on the index of chosen ability assign it to the player :)
@norvinshaqlintag92142 жыл бұрын
Was this mean that for every ability, I need to create another script that will inherit the Ability Class?
@Xelfist2 жыл бұрын
Will there be an error if you remove [CreateAssetMenu] after making the scriptable object? I havent gotten one yet but I want to avoid major errors before hand...
@sadsadsad50002 жыл бұрын
great video! but how does it work exactly? why would a class that inherits from ScriptableObjects behave like a Monobehavior? (be able to use methods like Update())
@karficzfrizack2711 Жыл бұрын
Thanks!
@chairchair12312 жыл бұрын
what if you dont know how long the ability will last but you know the condition for when the ability is finished and cooldown can start?
@iR3dyOfficial10 ай бұрын
Tie it into the animation time if I’m understanding correctly. So instead of ability duration having a hard set amount of time, you could say if my animation is finished then the ability is finished now start cooldown. But if the animation is not finished wait to start cooldown until animation finished.
@MaxIme5552 жыл бұрын
Do you like eat the blocks' channel by any chance? :D
@skichoow2 жыл бұрын
I will use this! :D
@theexiledone57422 жыл бұрын
Would you expand it by putting more and more Ability holder on the player or using a list? If using a list, how would you do that? I tried it but it doesnt work for me
@shockingchris9809 Жыл бұрын
Not that it matters anymore, but if you wanted multiple buttons to work for multiple abilities, you could just add other abilities and have them keyed differently. Having the key check in the update is just for simplicity sake. The way I implement multiple abilities is that I can only really use one ability at a time so I just have a UI way to switch them out. Right clicking on a new spell or using a button to bring up a menu where you can click the one you want to use. It will make it so the ability you choose is in the ability variable and therefore uses its functions.
@weforit54352 жыл бұрын
Thanks to you
@sadaroni2 жыл бұрын
Awesome tutorial but I’ve been wondering can you visualize the cooldown? And also can you make the ability follow your mouse and not the direction that your character is moving?
@timberdev2 жыл бұрын
Yes, it's possible to visualize the cooldown. The AbilityHolder could have a reference to an UI Slider. On Update the Slider value can be set to cooldownTime / ability.cooldownTime. If the dash should go in direction of the cursor, the ability needs to get movement.directionToMouse(for example) instead of movement.movementInput. Hope that answered your questions :D
@sadaroni2 жыл бұрын
@@timberdev Thanks, Im so grateful that we have people like you it restores my faith in humanity!
@amirhawasly90242 жыл бұрын
I figured out how to do everything up to the actual dash ability script with the new input system. Any ideas on how to make the dash ability script work with the new input system? having a lot of trouble
@Samael282411 ай бұрын
Well this is a pain in the butt for a more complex movement system.
@luckyducky78193 жыл бұрын
This is such a great video! But how would I create an ability that summons a shield or shoots a raycast?
@timberdev3 жыл бұрын
Thank you! I would create a shield ability by just instantiating (Object.Instatiate) a shield game object where ever you want it to be. And for raycasts the same thing. Just create a raycast and save its hit data as a variable and do what ever you want.
@JFKTLA3 жыл бұрын
Why won’t my unity highlight ScriptableObject as green? Basically when I type it in it does not reference anything
@timberdev3 жыл бұрын
Do you mean when you write ScriptableObject after the "Ability : "? Probably your Unity project files haven't loaded in correctly. If you are using VS Code, you may have to wait for a bit until your project name is shown in the bottom left corner in VS Code. Then the project files are loaded and VS Code can recognize what you are writing. But if you don't use VS Code or that doesn't work for you, I sadly don't know how to solve the problem.
@pechy283 жыл бұрын
I'm very thankful for your video! However, I am having an issue. Whenever I get into my dash ability script, a red squiggle appears under normalized. It says bool does not contain definition for normalized. Is there a way to write this dash ability not using the normalized function? we used a verticalMovement bool using key presses
@timberdev3 жыл бұрын
Thanks! The problem is that you have to convert the bool vertical Movement into a Vector, so you can normalize it. Normalizing is quite important so the dash has the same amount of speed in every direction. I don't know how your code works with a bool as your input but you should be able to turn your input in a vector.
@massidelloscientifico Жыл бұрын
Idk why but it doesnt disable the ability, my player keeps moving really fast...
@Youngdeff13 жыл бұрын
Im having issues where my script cant access the player movement script because of its protection level(error CS0122)
@timberdev3 жыл бұрын
The script can't access the whole player movement script? That's weird. Maybe you are trying to access a private variable in the script. Then you just have to make it public.
@brownsamuel70172 жыл бұрын
Hey bro! I need soone who know After effects. Can you help?
@fkeyzuwu3 жыл бұрын
hey man nice video! i was wondering if u have a link to download your color theme? is it regular vs or vs code? thank you
@timberdev3 жыл бұрын
Hi, I am using VS Code and the theme is named "One Monokai". I hope that helps you!
@fkeyzuwu3 жыл бұрын
@@timberdev yep, thank you!
@egekalay43183 жыл бұрын
How would you modify AbilityHolder so it accommodates multiple abilities, in terms of holding the cds and whatnot?
@timberdev3 жыл бұрын
I would not modify the AbilityHolder but rather add multiple AbilityHolder Components on the same gameobject. But it would be possible to modify the script to manage multiple abilities. If you really want that, you could make a list of abilities, cooldowns and so on. And In the Update function you would have to loop through the hole list and manage all ability specific variables.
@egekalay43183 жыл бұрын
@@timberdev that's what I ended up doing, thanks a lot for the reply :)
@egekalay43183 жыл бұрын
@@ThePro-ng4yt That's right, you take the cooldowns/active time from the ScriptableObject and create an Ability[] array and put your ScriptableObjects in there.
@coolkrit18683 жыл бұрын
@@egekalay4318 I'm asking late, but could you please show me what the code looks like?
@markoviik33243 жыл бұрын
Hey im getting the error cs1061 in the Dashability with the movement.movementInput part and cant find out what i shoulds do?
@timberdev3 жыл бұрын
You probably don't have a movementInput variable or you just typed it incorrectly. The error cs1061 appears when you try to access something like a function or variable that doesn't exist.
@Ordelos3 жыл бұрын
If i wanna give my player multiple abilities, do I have to give him multiple AbilityHolder-Scripts or can I somehow combine it in one big AbilityHolder-Script?
@timberdev3 жыл бұрын
You can do either of them if you want to. But it would be simpler and also more clean if you add multiple ability holder scripts.
@Ordelos3 жыл бұрын
@@timberdev thats the way i have done it Right now. One of my skills is shooting a Fire Ball. I am instantiating the Fire Ball throuh script like in your dash script. The Best way to handle its behaviour is through a second script attached to the fireball prefab, Right?
@timberdev3 жыл бұрын
@@Ordelos Yeah, a monobehaviour script on the fireball is probably the best solution.
@xXKIKOXx03 жыл бұрын
:D very helpful vid ty u !!!
@xXKIKOXx03 жыл бұрын
im excited to see more videos : )
@redinternet98933 жыл бұрын
What is the software are you using to typing script
@timberdev3 жыл бұрын
I use Visual Studio Code.
@redinternet98933 жыл бұрын
@@timberdev i like your vs font color,can you export your setting for us?
@xanarihstudios29973 жыл бұрын
Im trying to get this to work with Unity's new third person controller, but the dashability script doesnt seem to be referencing the script for Unitys movement... Any suggestions? also very nice video man im subbed
@timberdev3 жыл бұрын
I sadly can't help with that because I don't know anything about the third person controller. But I hope you find a solution! And thanks for the sub :D
@michaelstimpfl98142 жыл бұрын
Its a great tutorial, but my movement is extremely laggy. Does anybody know how to fix it?
@ВасилийМигулин-т1й2 жыл бұрын
Use fixed update
@redinternet98933 жыл бұрын
can i get your theme to use in visual studio
@timberdev3 жыл бұрын
The theme is named "One Monokai".
@redinternet98933 жыл бұрын
@@timberdev can i use it in visual studio?i didnt scripting in vs code,so if i can use the same theme in vs,it would be great
@timberdev3 жыл бұрын
@@redinternet9893 As far as I know visual studio has no option to change color themes.