~/talk

The browser kicked me out (of the CPU): Making a three.js WebGL mobile game

Talkat code.talks 2023 · 2023-09-14..09-15· [javascript, web-performance, web-animation]
links:none on file
slides:none on file

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

  1. 0:00Introduction
  2. 2:15Project overview
  3. 6:57Game features
  4. 8:01Device challenges
  5. 12:55Three.js intro
  6. 15:47Performance bottlenecks
  7. 18:17Instancing trade-offs
  8. 21:30Web Share API issues
  9. 24:18Audio processing limits
  10. 26:50CPU throttling
  11. 27:54Testing results
  12. 30:00Lessons learned
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.