As I work on a 3D game in three.js that is entirely frontend-based at the moment, I'm considering whether separating the model (state) and view is a wise decision.
Currently, I directly manipulate the movement of objects by translating and rotating them when necessary. However, I am contemplating keeping a vector representing their position in the model (game state) and updating the object's position every frame based on this vector. Similarly, I would need to store the rotation of the object in the model and update it in the view each frame.
For example, instead of directly translating the player object to the left when the left arrow key is pressed, I could set the player object to the current vector in the model per frame and adjust the vector in the model for leftward translation upon pressing the left arrow.
While the model-view pattern appears promising from an architectural standpoint, I have concerns about its potential impact on performance. Is this separation worth exploring despite the possible performance implications?