IssueRaiser

[RFC Discussion] Legion ECS Evolution

# **Legion ECS Evolution** Following lengthy discussion on both Discord and the Amethyst Forum (most of which, including chat logs, can be found [here](https://community.amethyst.rs/t/legion-ecs-discussion/965/)), we propose with this RFC to move Amethyst from SPECS to Legion, an ECS framework building on concepts in SPECS Parallel ECS, as well as lessons learned since. This proposal stems from an improved foundational flexibility in the approach of Legion which would be untenable to affect on the current SPECS crate without forcing all users of SPECS to essentially adapt to a rewrite centered on the needs of Amethyst. The flexibility in Legion is filled with tradeoffs, generally showing benefits in performance and runtime flexibility, while generally trading off some of the ergonomics of the SPECS interface. While the benefits and the impetus for seeking them is described in the ["Motivations"](https://gist.github.com/distransient/1d7b0ebbff0a326c3e16ffbbc2c57eb4#Motivations) section, the implictions of tradeoffs following those benefits will be outlined in greater detail within the ["Tradeoffs"](https://gist.github.com/distransient/1d7b0ebbff0a326c3e16ffbbc2c57eb4#Tradeoffs) section. There are some core parts of Amethyst which may either *need* to considerably change when moving to Legion, or would otherwise just benefit from substantial changes to embrace the flexibility of Legion. Notably, systems in Legion are FnMut closures, and all systems require usage of SystemDesc

Posted by jaynus on Oct 24, 2019, 3:36 PM

Tags

Related issues

Raise real-world problems, find people facing the same issue, and discuss solutions.3,500 issues0 comments

github (Software)

[RFC Discussion] Legion ECS Evolution

jaynusOct 24, 2019, 3:36 PM

# **Legion ECS Evolution** Following lengthy discussion on both Discord and the Amethyst Forum (most of which, including chat logs, can be found [here](https://community.amethyst.rs/t/legion-ecs-discussion/965/)), we propose with this RFC to move Amethyst from SPECS to Legion, an ECS framework building on concepts in SPECS Parallel ECS, as well as lessons learned since. This proposal stems from an improved foundational flexibility in the approach of Legion which would be untenable to affect on the current SPECS crate without forcing all users of SPECS to essentially adapt to a rewrite centered on the needs of Amethyst. The flexibility in Legion is filled with tradeoffs, generally showing benefits in performance and runtime flexibility, while generally trading off some of the ergonomics of the SPECS interface. While the benefits and the impetus for seeking them is described in the ["Motivations"](https://gist.github.com/distransient/1d7b0ebbff0a326c3e16ffbbc2c57eb4#Motivations) section, the implictions of tradeoffs following those benefits will be outlined in greater detail within the ["Tradeoffs"](https://gist.github.com/distransient/1d7b0ebbff0a326c3e16ffbbc2c57eb4#Tradeoffs) section. There are some core parts of Amethyst which may either *need* to considerably change when moving to Legion, or would otherwise just benefit from substantial changes to embrace the flexibility of Legion. Notably, systems in Legion are FnMut closures, and all systems require usage of SystemDesc

Comments (0)

No comments yet. Start the discussion.

Comment on this issue