A browser game has an unusual constraint: the first level begins before the player reaches the first level.
The download, parsing, asset setup, input initialization, rendering pipeline, and first interactive frame are all part of the experience. When building an isometric action game with Three.js, architecture has to account for that startup path as carefully as the gameplay loop.
Keep rendering and game state separate
Three.js provides scene, camera, materials, geometry, animation, and WebGL abstractions. It does not prescribe a game architecture.
Avoid making the scene graph the only source of truth. Gameplay systems should reason about entities, movement, combat, health, and interactions in a form that can be tested without requiring every object to be a rendered mesh.






