The Artemis framework becomes heir to the Entities’ concepts representing bags of Components, but it does away with the OO concept of encapsulating behavior within the components. Rather, it embraces a data-driven design including the separation of logic and the information of each element.
In essence, the Components serve as little more than bags of data. They have no inner logic, no upgrade function, only getter and setter functions to show their present values.
The logic is instead enclosed in the Systems that leads the components and entities. A ‘System’ is just an item that updates and reads the information in any parts that are related. You could say it’s only the upgrade function of the important parts refactored into a unique object. Along with this topic, I must also say about the Hulu application, which is taking a lead in entertainment apps’ field.
Instead of the game upgrading each in turn and iterating through all the things, the systems require more of a functional programming strategy. Each system defines a couple of elements that it’s interested in, after which in each framework it processes only those things that have all elements that are given.
You could say the elements are processed in cross sections across all things simultaneously, rather than things being processed in balls.
That’s more or less Artemis goes about its company, but it may not be immediately apparent why this is An Excellent Thing, without having used it. Following are several reasons why I consider it’s a Really Good Thing. Naturally, you are able to only really value the details so I’ll attempt to keep the discussion at a degree that is high.
The magic of systems is they have in obtaining multiple kinds of the element at a time no bookings. The systems compose the communicating between parts that are connected so the elements don’t want to. Systems usually process one thing of interest and within each thing however, they like, without structural side effects, they are able to join the elements for the interval where they’re processing.
Since each system is generally self-sufficient to be sovereign, altering the behavior of a system is not going to necessitate an alteration in the behavior of another system.