В игрушке
fintank.ru экран (canvas) перерисовывается на 20 fps. Каждый кадр рисуется несколькими вызовами putImageData(), которые подобно гугло-картам составляют картинку из квадратных фрагментов. Фрагменты преобразованы в ImageData и лежат в кеше. Каждый фрагмент может быть иногда изменён сервером (положили/убрали игровой объект). Изменённый фрагмент рендерится в ImageData и замещает в кеше старый вариант.
Как эта архитектура может быть изменена, чтобы было достижимо 60fps и ЦП адски не грелся? Забыть про эти танцы с бубном putImageData() и переезжать на WebGL?