Quote:



Imagine you have another class that needs a position, a move method or similiar, but isn't in any way linked to your actor class so deriving is not an option - that'd lead to a lot of duplicated code.



actually this is the main advantage of component based game engines " over traditional game engines
You attach to an entity just the methods / variables which are strictly needed

The weak point of "components" is the interaction between entities
As I said in my first post, you would accept that it is more elegant to write :

Actor john = new Actor()
Actor Bill = new Actor()

distance = John.position - Bill.position

Rather than in John's script

GameObject Bill = GameObject.Find("Bill")

distance = transform.position - Bill.transform.position

3DGS in principle use components
Have you never been fighting with those bloody void pointers ?
This is typic of components