Я использую для отрисовки игрового мира с top-down камерой 4 слоя canvas (статика, анимированные/игровые обьекты, персонажи, деревья и крыши (все, у чего z-index больше чем у персонажей). Размер одной локации - 2880х1600, размер каждого canvas соответствует локации. Перерисовываю только "грязные" области. Правда нет единого диспетчера отрисовок, у каждого обьекта свой обработчик.
Суть проблемы - во время передвижения камеры (путем смещения координат canvas-ов) производительность катастрофически падает, из-за чего на слабых машинах движение происходит рывками. При этом отрисовка анимации без перемещения камеры происходит вполне адекватно. Как лучше переработаь архитектуру, чтобы снизить нагрузку?
Посмотреть описанную ситуацию вживую можно
тут