Site icon Gamadu

The Artemis Framework: Entity and Component Game Design

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 each element’s information.

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 lead the components and entities. A ‘System’ is just an item that updates and reads the information in any related parts. 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, taking the lead in the field’s entertainment apps.

Instead of the game upgrading each in turn and iterating through all the things, the systems require 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. The following are several reasons why I consider it’s a Really Good Thing. Naturally, you can only really value the details, so I’ll attempt to keep the discussion at a high degree.

The magic of systems is they have in obtaining multiple kinds of the element at a time with no bookings. The systems compose the communicating between parts that are connected to the elements that don’t want to. Systems usually process one thing of interest, and within each thing, however they like, without structural side effects, they can 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 will not necessitate an alteration in the behavior of another system.

Exit mobile version