Aggregate OOP With Message Passing

The "components contain code, use message-passing to communicate" approach to ES design

Split your monolthic GameObject class into many small classes, each containing both source code and data.

Use a Message-Passing system for the small classes (Components) to invoke methods on each other, without becoming statically bound to one another.

Implementation

(someone needs to fill this in)

Examples

[Nebula 3 open-source engine]