I watched some tutorial videos epic made about component design architecture and it also linked to some great articles about different component design patterns as well as the Entity Component System structure.
If I understand correctly, it seems that ECS is very possible with blueprint and in a simple way - the confusion is just that some terminology is conflicting.
What we call a actor component in unreal wouldn’t need to be used. Instead, “components” would just be structs.
Systems can just be an actor class or some logic that lives on something like the game mode class.
Since systems could not easily find actors that implement a struct, that problem is simple enough to get around - just add an associated tag with each struct, or otherwise you might have an actor who uses a struct component report itself to the system upon being spawned.
I suppose this is not a 100% true ECS because something like an actor does have some inbuilt logic - it’s more than just an ID - but I think practically speaking, you might get the same benefits of modular, flexible code to use a system like this for certain situations.
It seems most appropriate for “classic games” where you are likely to make wild, imaginative changes to the game rules just for the sake of fun over the course of your development, so setting up a system that allows you to easily swap functionality between classes is going to benefit that.
But this system does seem like a lot more setup and requires more mental energy per decision that you make involving the system, because you have to filter everything through a lens of maximum flexibility, so in some cases - like a game where the rules are known before production and they won’t change - then I think there must be no benefit to using a framework like this.
Well, just wanted to share some thoughts after digging into this a bit. I see a lot of people tout ECS like the second coming of christ, but I haven’t found much talk about it beyond theoretics.
This was a helpful video and it also has some links to some great, practical examples:
Component Design Choices - Breaking Down the Components of Gameplay (epicgames.com)