4 ms·
Author needs to actually state what ECS is. From context I don't think he/she is referring to Amazon's Elastic Compute Service.
by evancox100 8y ago
Author needs to actually state what ECS is. From context I don't think he/she is referring to Amazon's Elastic Compute Service.
- gagege 8y agoIn a gamedev context, ECS stands for Entity Component System.
- flohofwoe 8y agoIt's Unity's (the game engine) new Entity-Component-System, the blog post is an answer to this presentation: http://aras-p.info/texts/files/2018Academy%20-%20ECS-DoD.pdf http://aras-p.info/texts/files/2018Academy%20-%20ECS-DoD.pdf Unity's traditional entity system is suffering from a number of "OOP-isms" which make it hard/impossible to optimize for performance. The new ECS strictly follows a Data-Oriented-Design approach, where everything is built around laying out the data in memory in a CPU-cache friendly way (and a few other things that neatly 'fall into place', like spreading work across CPU cores, a specialized 'high-performance' C# dialect, and the ability to move work from the CPU to the GPU). The big question is how the traditional Unity audience will react, since the ECS programming model is quite a bit different from the old way, and it's no longer as simple to build a game from a jenga-tower of adhoc-hacks ;)
- reificator 8y agoI'm very glad that Unity is doing this, and it's made me interested in the engine for the first time in many years. However, it's important to note that Unity is adding an ECS, not inventing the concept.
- TeMPOraL 8y agoI don't think Entity-Component-System is Unity-specific. From what I recall from other articles, Unity has its own idiosyncratic implementation, but the pattern has several slightly different interpretations.
- westoncb 8y agoThis is correct. It's a general pattern widely used in game engines and some other areas; not at all Unity-specific.
- _halgari 8y agoCorrect, the first game to use ECS was Dungeon Siege back in 2002: https://www.gamedevs.org/uploads/data-driven-game-object-system.pdf https://www.gamedevs.org/uploads/data-driven-game-object-sys...
- Hodgman 8y agoDungeon siege used an "Entity/Component" framework. That's a very different thing to an "Entity/Component/System" framework.
- yorwba 8y ago> the blog post is an answer to this presentation: ... which had some discussion earlier [1] and the top comment on that submission links to the article of this submission. [1] https://news.ycombinator.com/item?id=18202308 https://news.ycombinator.com/item?id=18202308
- modernerd 8y ago> The big question is how the traditional Unity audience will react It's been well received so far (for example: https://forum.unity.com/threads/ecs-or-why-should-i-bother-making-my-game-efficient.519100/ https://forum.unity.com/threads/ecs-or-why-should-i-bother-m... ). There's also a good incentive to adopt ECS for certain games; Unity is offering a hugely reduced runtime size if you follow the ECS pattern, which is much needed for web games and other “interactive experiences” (ads, mobile game demos). The “ECS for Small Things” presentation at GDC is worth a look for those interested: https://www.youtube.com/watch?v=EWVU6cFdmr0 https://www.youtube.com/watch?v=EWVU6cFdmr0
- Hemospectrum 8y agoIt refers to Entity-Component-System, an architectural design pattern (like Model-View-Controller) that uses composition instead of inheritance to define the behavior of entities in a simulation.
- learc83 8y ago> that uses composition instead of inheritance What they are referring to as ECS is more than just composition over inheritance. There are entity component architectures that are just that--Unity's existing class based component architecture for example. But the ECS in this case refers to Data Oriented Design--basically laying out data like normalized database tables. Every component system has a table, and each row in the table is the data for one component (you don't actually use a relational DB for this, the data is just organized in a similar manner). The entity itself is just an id that all of the components reference. The concept as used in games started in the late 90s as Structs of Arrays instead of Arrays of Structs. Here's a a good free book on the subject (there's a paid hard copy as well) http://www.dataorienteddesign.com/dodmain/ http://www.dataorienteddesign.com/dodmain/
- tomelders 8y agoThe confusing thing about the name “Entity Component System” is that “System” is thing in ECS. It’s not a system of Entities and Components, it’s a pattern thay has three parts; Entities, Components, and Systems.
- deleted 8y ago[deleted]
- blarg1 8y agoFrom what I've read the implementations of it can vary a lot, but I liked the one described here: https://blog.therocode.net/2018/08/simplest-entity-component-system https://blog.therocode.net/2018/08/simplest-entity-component...
- tynorf 8y agoAs a testament to how bad AWS's shorthand is, ECS is actually Elastic Container Service.