3 ms·
This is an opinion piece from 2015. It goes without saying that there are no universal standard solutions. As an engineer, you learn how to proceed in a struct
by Rochus 5y ago
This is an opinion piece from 2015.
It goes without saying that there are no universal standard solutions. As an engineer, you learn how to proceed in a structured and systematic way and (hopefully) apply appropriate methods and technologies that fit the problem at hand. ECS is a good approach and there are many problems where this is a good fit; however, there are also problems where it is a less good fit. The same applies to OOP and all other methods of software engineering.
- yakubin 5y agoThe article doesn't argue that ECS is a good fit for everything. It argues that it is a better fit than OOP for some of the things OOP was intended for. And that it's a broader theme, where OOP is usually not the right tool for the job, even when it was originally intended to solve that particular job.
- Rochus 5y agoThe article is primarily trying to suggest that "OOP" has "died" so many times that it should no longer be used. As if OOP was an ideology to be committed to or not.
- girvo 5y agoThat is not what I took from the article at all.
- meheleventyone 5y agoIt does a poor job of this in light of component based OOP approaches.
- ehnto 5y agoI'm confused. ECS is a type of OOP, is it not? An entity is an object in the same way a model is an object.
- tsimionescu 5y agoI think one of the most core ideas of OOP is encapsulation, and in this way ECS is radically opposed to OOP.
- ratww 5y agoNot really. An "Entity" in most modern ECS implementations is normally implemented as an integer, which is used as a handle to which multiple components refer to. A "Component" is normally implemented as a struct, and a "System" as a standalone function. No encapsulation here. Of course you would have to implement all of the above using classes and objects if your language doesn't have support for structs or standalone functions, but that's just an implementation detail. The concept itself is not a subset of OOP, and breaks many "rules" of OOP.
- 310ke 5y agoAll engineering and technical tasks really. I was taught to think of learning these techniques as putting tools in my toolbox. Then when a situation arises I can select which tool I think might be the best fit. No ideology, no cargo-culting, just get it done.