ECS in complex 3D games - how deep should it go?

SiO2 integrates Bullet with Zay-ES in an extension.

Library here:

Demo code here:

This may or may not be helpful.

To extend that example to player input, I’d have a different control driver attached to the physical object representing the player. A system would be responsible for applying the latest translated input (similar to what the steering driver wants).

I’ve opted for this approach because quite often the forces that are applied to the object need to have instant feedback from the physics simulation. Even the acceleration applied may depend on the current velocity, orientation, etc… for example it’s quite common to apply some lateral forces to keep the player from sliding/drifting. And especially in the case of things like going up hill, climbing stairs, etc. you may want to instantly change how forces are applied so that the player feels like their input is smooth. After all, they can’t press the key harder to indicate that they’d like to apply more force going up hill (so that speed is roughly the same).

Generally, I consider things like force and torque components to be too low level for the ES… but a lot would depend on the type of game.