The browser kicked me out (of the CPU): Making a three.js WebGL mobile game
summary
Built a mobile browser game in JavaScript ES6 that uses three.js WebGL for rendering and FMOD for audio, targeting Instagram/links-first play rather than app stores. Faces device and browser fragmentation; CPU-side matrix updates for hundreds of moving pedestrians become the bottleneck, instancing cuts draw calls but not CPU time, and audio drops happen when the single-threaded JS runtime starves FMOD buffers. Ship strategy: cap to ~30 FPS, prefer Web Audio/howler.js, or push animation into GPU and own memory layout.
AI-written summary · about
chapters (12)
- 0:00Introduction
- 2:15Project overview
- 6:57Game features
- 8:01Device challenges
- 12:55Three.js intro
- 15:47Performance bottlenecks
- 18:17Instancing trade-offs
- 21:30Web Share API issues
- 24:18Audio processing limits
- 26:50CPU throttling
- 27:54Testing results
- 30:00Lessons learned
related talks
46mJavascript's comeback story on Mobile
38mMy journey with WebGL
44mSponsored session: Progressive Web Games
31mLessons from the experimental edge of technology
40mHow to Improve JavaScript Performance
19mLessons learnt pushing browsers to the limit
29mLet's make games with JavaScript
59mYou can't do that with JavaScript!
