I put together a practical tutorial for a small mobile-friendly Three.js game that goes from an empty Vite project to a working scene, game loop, tap-to-move input, and a real particle effect.
The mobile-specific choices are the useful part: cap device pixel ratio, keep movement and effects on one delta-time source, map pointer input through a raycaster, preload the VFX bundle, and clean up finished systems instead of allocating in the frame loop.
The final section integrates a portable JSON effect with the open-source NixieFX Three.js runtime, including loading, spawning, updating, and disposal:
It assumes basic TypeScript but no prior game-engine experience. I would be interested in feedback on the runtime lifecycle and whether any mobile edge cases are missing.