3 ms·
But in game development it seems many have been converted to ECS.
by cardiffspaceman 6y ago
But in game development it seems many have been converted to ECS.
- ChrisMarshallNY 6y agoIsn't ECS just a specialization of OO? I thought it was an aggregation (as opposed to hierarchical) model. I've been doing that with OO for decades. It makes a great deal of sense, in some cases. PoP has similarities to that, but, in my experience, there is absolutely nothing that can compete with polymorphism and/or inheritance -and, here's the kicker- in some situations. OO, in my experience, is a lot different from just polymorphism. I think that it's a way of conceptualizing the model. I used to write OO in straight C, in the late 1980s. I called it my "Faux Object" pattern. It even had a rudimentary form of polymorphism (no vTables - just function pointers that could be replaced -Poor man's vTable). My experience is that lots of people have difficulty adapting to hybrid design. We learn one tool, and we learn it well. We go to conferences, where we are told that we are über-programmers, because we use this tool. But try using a screwdriver to drive a nail. Most of my friends that are (building and construction) contractors are quite used to hybrid design. They use one technique and set of tools on the foundation, another on the walls, and yet another on the roof. Some of these aspects are a large enough field that they can specialize (like framers or roofers), but there are quite a few "general" contractors that are capable of building a house from scratch. I started off with Machine Language (the original "ML"), and have written device interface code for a long time, and am quite used to a lot of limitations (like "lite" versions of languages for lower-layer work or embedded content). We use the best tools for the task at hand, and don't sneer at others that don't use them.
- krapht 6y agoI am not a game programmer, but I have read about ECS. ECS reminds me a lot more of database theory. We have unique keys (entity IDs) and values, and the goal of ECS systems is to have normalized data such that our functions that iterate over them only access the data they actually need so that things are cache friendly. (Maybe this is also getting mixed up with things like data oriented design?) I am definitely not an expert in these things so I would welcome any feedback.