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?
- State transitions are finished in the pushdown automaton code!
- Official vision for the Amethyst project has been codified in the
README.mdfile, along with a multitude of links.
- Issue labeling has been codified for all issue trackers in the Contribution Guidelines.
- Issue #1 for Amethyst-CLI has been resolved. Cargo output now prints in real-time.
- Redesign GPU state management (issue #7)
- Code name for 1.0 release (issue #8)
- Write unit tests for state machine (issue #9)
No new people have joined this week!
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.
- 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
Worldand submit a list of changes they want to make to the content. These changes are applied serially according to a predetermined priority.
- Systems are kept as one unit (perhaps renamed to "Processors" for clarity),
and they all read the
Worldstruct in parallel but can optionally submit changes to the
Worldwhich are applied serially once everyone has finished reading.
What do you think about these approaches? Leave your thoughts in the Gitter chat.