This came at just the right time. I was trying to figure out a system for modularizing the conditions and effects for a story event system. Still a lot of details to work through on my end, but this helps a lot.
@sadiqabbaszade47897 ай бұрын
I have made my own PolymorphList. It works like a list, but under the hood it has serializereference attribute on the filed. When you press the + button, dropdown menu shows up to choose the type of the new object (that inherits from T) to add to the list. That way you can dynamically add any type of object to your list and serialize different types of data in the same object! Pretty neat if you want to for example serialize data for different CharacterSkill-s in the list of usable skills
@elyastigre98677 ай бұрын
That sounds awesome ! Would you want to share it ? :)
@MarushiaDark3167 ай бұрын
Interestingly, git-amend dropped a similar video the same day as this, showing how to make your own serializable types in the Inspector from scratch, complete with a dropdown. So in theory, you could also use that and apply it to the systems you describe here.
@CamperEater7 ай бұрын
I'm too broke to build games atm but this channel has always been a inspiration for me
@MrOmega-cz9yo7 ай бұрын
As long as you have a PC that runs you should be coding and learning. There's an amazing amount of things you can do with free stuff these days. Just watching tutorials isn't enough. You need to develop (anything!) to learn all you can. Hopefully we'll see a game you develop in the future.
@Hietakissa7 ай бұрын
@@MrOmega-cz9yo yeah, you can totally do game dev without paying a dime! (Unless you count app credit fees to even publish your game etc. And obviously provided you already have a PC to do said dev on). All software I use is free and all tools I use are either built-in or made by me, so also free.
@Nebulaoblivion7 ай бұрын
as long as you have a computer (doesn't have to be an expensive high end one) you can make games for free.
@________-by2px7 ай бұрын
I'm using an almost identical system in my current project and IMO it's a great choice if you want a modular system that's simple to implement yet powerfull enough for most uses. I also use [SerializeReference] with a "ValueGetter" class that has an T Evaluate(context) method. I use it instead of most int and float fields, allowing for more customisation (random range, power increase/decrease depending on conditions etc.).
@spacelabgames7 ай бұрын
Great video, this will definitely be useful in my future projects...good stuff 👍
@agustintorres62467 ай бұрын
What's the equivalent of this in Odin ?
@goldone016 ай бұрын
This may be a bit late, but I just tried this myself. It works simply when you have SerializeReference added. It does the rest automatically
@benjaminlehmann7 ай бұрын
Really helpful. Thanks, Jason.
@chriwee529711 күн бұрын
Hey there, great tutoria, and I am using it for my magic effect system. I am curious though, how your Health Pool works. Are you using a seperate Scriptable Object for each character stat?
@dbweb.creative7 ай бұрын
What's your opinion on this: I've made a CustomEffectSO where I can put string name of a function that is contained in a static class of effect functions (I cache reflection after the first call). The reason I essentially made a static library of effect functions is for those non-generic functions for which I don't really see a point in making a separate scriptableobject class. Or should I still make a separate class for each effect, even though it's basically nearly hard-coded effect (ofc there is src/target parameter, but other than that it's same every time). Is there any architectural no-no, or security against doing this?
@nuin99377 ай бұрын
What if the method name changes what will you do?
@dbweb.creative7 ай бұрын
@@nuin9937 why would it change? of course you'll need to update particular CustomEffectSO instance that holds that name, which is basically a single SO instance. But really, as I said, this kind of reflection call is for those non-generic one-of-a-kind effects. I just don't see a point in making a menu entry for creating just a single instance of a scriptableObject asset. ScriptableObjects are about generic parameter-based instances. However, to feed the one-of-a-kind functions into effects pipeline - this is the way I did it.
@nuin99377 ай бұрын
@@dbweb.creative What if someone changes the name of the method lol
@nuin99377 ай бұрын
@@dbweb.creative Just map your effects to an enum or something
@dbweb.creative7 ай бұрын
@@nuin9937 when? during development? runtime? what do you mean? Or do you mean if someone edits/cheats memory at runtime?
@rutchjohnson7 ай бұрын
Why Task and not Ienumerator?
@SharifTariq7 ай бұрын
Coroutines rely on MonoBehavior. Task doesn't require that.
@DoubleBob7 ай бұрын
Please stop pushing Odin. Their 200k+ cost per seat makes it unusable for most gamedev companies.
@MarushiaDark3167 ай бұрын
Why would he stop pushing a tool he uses and enjoys and that many others enjoy, especially after he just made a video saying Unity should outright buy them and incorporate it as standard for everyone?
@DoubleBob7 ай бұрын
@@MarushiaDark316 Cost. Devs that rely on it will have trouble using it in a job due to cost.
@nuin99377 ай бұрын
@@DoubleBob Yeah I liked it at first but I now just make my own attributes and stuff when I need them. No point building a crutch