Tilebased canvas engine