While we were restructuring our project and analyzing our characters, their similiraties and differences, we figured that it would be great if we used bunch of modular single-purpose components that we can attach to the character instead of letting the character had a lot of code considering all kinds of stuff. (Of course, we didn’t immediately add bunch of code to character, it just happened along the way when adding various features. :D). For example, we wanted to have a component that will handle all the damage doing and receiving. We usually add components through Blueprint Editor, by selecting the Add Component button and that way we can edit the default values.
However, when we tried to do that, we noticed that certain characters actually should have specific implementations of those components. Now, we know characters can’t override methods from their components, but we thought that we can at least inherit the component’s base type, override methods and set the character’s component to be of the subtype instead. That way, character has the “same” component, just a bit more specific, and we can still keep the functionality of editing default values.
Basically, it would be great if there was an “Use Component’s Subclass” option when we right click the inherited component. We know that the alternative would be in C++ to dynamically create components of certain subclasses which are stored in variables, which values we can edit in Blueprint Editor. However, we wouldn’t like to do that, since adding components through Blueprint feels more natural, we get a better overview and can change component’s default values if needed.
If there are any other possible solutions, we would appreciate reading them. Sorry for the long post.