Originally Posted By: AlbertoT
]
Ok but you can not write, for example
John.Animate()
or
bill.LookAt(john)

On th contrary the class Actor contains everything you would expect from an actor ( a character )
same as he class Camera or light or terrain etc

This makes the code much more intuitive and clean


You are absolutely right in that regard - there's no member methods in 3dgs, because lite-c is not an object oriented language. Still nothing to do with components though.
The approach you seemingly prefer sits between 3dgs and Unity - classes with encapsulation, but with deep hierarchies instead of aggregation.
That used to be the common approach (3dgs doesn't have something like this because it's horribly outdated), until game engines went mainstream, and today, component based approaches are the common way because they empower the non-programmer as creator, be it an amateur using Unity or an artist or game designer at a triple A studio. Most of the time, the people who write gameplay code simply are no educated programmers, so those who are create systems and architectures that enable other people to create stuff without having to struggle with low level code.

I do apologize for this last offtopic post. tongue