This Week in Amethyst 1

News from Jan 11, 2016 – Jan 18, 2016

Hello and welcome to the first official issue of This Week in Amethyst, a blog bringing you the latest changes and updates regarding the Amethyst game engine every week. If you have any suggestions or ideas, feel free to call me out on Gitter.

One major pull request landed this week.

What’s cooking on master?

Notable additions

New issues

New contributors

No new people have joined this week!

Other announcements

Right now, there are some experiments being done on the ecs branch combining the traditional entity-component-system with tomaka’s suggested MVC-with-parallelism design..

Clearly, the World struct containing our entities and components is analogous to the model in MVC. But systems typically require mutable state for strictly read-only operations, so they don’t fit into either views or controllers, nor are they easy to parallelize.

However, there are two possible ways to remedy this issue.

  1. Systems are split into separate traits: Updaters and Viewers. The Viewers only require read access to the World, so they can run in parallel. Updaters request mutable access to the World and submit a list of changes they want to make to the content. These changes are applied serially according to a predetermined priority.
  2. Systems are kept as one unit (perhaps renamed to “Processors” for clarity), and they all read the World struct in parallel but can optionally submit changes to the World which are applied serially once everyone has finished reading.

What do you think about these approaches? Leave your thoughts in the Gitter chat.