5 ms·
I'd like to see how it compares to https://github.com/amethyst/specs https://github.com/amethyst/specs, a rust-based ECS engine, for use in the multiplayer voxe
by donpdonp 6y ago
I'd like to see how it compares to https://github.com/amethyst/specs https://github.com/amethyst/specs, a rust-based ECS engine, for use in the multiplayer voxel world game Veloren (https://veloren.net https://veloren.net), or https://github.com/TomGillen/legion https://github.com/TomGillen/legion
- meheleventyone 6y agoThere’s not a particularly thrilling benchmark here: https://bevyengine.org/news/introducing-bevy/ https://bevyengine.org/news/introducing-bevy/ Basically an ECS is not really a secret easy pattern to cache coherent data access. This benchmark shows its fast for the easy cases but says nothing about typical game requirements.
- adamnemecek 6y agoECS has been used relatively heavily in game dev since like late 90's.
- meheleventyone 6y agoSo? That has nothing to do with the performance of an implementation which is what I commented on. Data oriented design is about managing data organisation to match access patterns in order to best exploit the hardware cache. That requires more design than simply using the ECS pattern. Which is why a lot of generic engines introduce other concepts like Grouping and Archetypes to try to alleviate this. And even if you do use a generic ECS engine with performance sensitive features it’s still perfectly feasible to end up thrashing. Also as a claim I also find this highly doubtful particularly as I’ve been working as a game developer for many years and not really seen it used on a single project in that time. There’s a reason why there are dozens of hobby implementations but no full scale games written using them.
- adamnemecek 6y agoSerious sam and a lot of bohemia interactive games are written with ECS.
- meheleventyone 6y agoThey are? Because you can see the source for the Serious Engine 1 here: https://github.com/Croteam-official/Serious-Engine https://github.com/Croteam-official/Serious-Engine Looking at that it has way more in common with an OOPish inheritance/composition approach to entities than the ECS view of an entity being a primary key into a data store of components with a pipeline of systems acting in a component centric manner to update the game state.
- Rhedox 6y agoOverwatch is built using an ECS. https://youtube.com/watch?v=W3aieHjyNvw https://youtube.com/watch?v=W3aieHjyNvw
- donpdonp 6y agoHere's a writeup comparing Specs (Amethyst sub-project) and Legion ECS. https://csherratt.github.io/blog/posts/specs-and-legion/ https://csherratt.github.io/blog/posts/specs-and-legion/