If you’re reading this, there probably aren’t very many posts yet. But don’t worry, you can be the first! Either create a new post or just reply to this one to say ‘hi’.
Hey y’all, this is the diagram I drew out upon initially watching the video to help me make sense of the relationships of everything that was having to do with the current special ability system to use as reference. Hope it helps! If I got something wrong feel free to let me know.
This looks awesomely cool. The use of scriptable objects to create configurable behaviours is brilliant. I really look forward to following the next few lectures where we implement this stuff. I also like having an overview of where you are going with this and why.
Awesome job drawing and sharing this.
Okay so i am at a bit of an advantage here as i have played mmorpgs and rpgs as long as a i remember so i have a rough idea how things may have worked behind the scenes. Playing with mud code probably helped with these.
I did wonder if scriptable objects were going to make another appearance here as it was the only way i could image doing it without over complicating it or having to repeat scripts for each ability (Bad coder bad!)
I can see a LOT of thought had to be put into this not just the system but on how best to get the learning over and i think you have done an excellent job.
I am just loving how basically plug and play it seems to be at a glance for the designer point of view so i bet Rick loves this.
I’m keen to find out how to do this, it all sounds pretty neat and modular, which should be great for all of us making new projects in the future!
Here are the notes I was taking while watching the lecture. Who knows if they are actually correct
Interesting abilities system - uses a freaky type of scriptable object that attaches the MonoBehaviour using it to the hosting gameObject.
Scriptiable object abstract base class.
Impementation of the base class is a config with baseline properties, custom properties, and an AddComponent method.
The AddComponent method attaches a corresponding behaviour class to the hosting game object like “Player” or “Enemy”
e.g. PowerAttackConfig adds a PowerAttackBehaviour component to player.
AddComponent will also set the configuration of the behaviour by passing itself
e.g. behaviourComponent.Setconfig(this);
The monobehaviour being added has an interface ISpecialAbility that requires a Use() method (guess the SetConfig isn’t mandatory but could be listed in the interface if we wanted to)