Для данной игры это наверно не актуально(поскольку много пустых областей), но вообще при рисовании большого количества тайлов (прямоугольных, без прозрачных дыр), ширина которых не кратна 8 точкам, можно пытаться копировать уже выведенные на экран тайлы из позиции дающей такой же остаток при делении на 8. В этом случае сами точки тайла уже не придётся сдвигать, нужно будет только наложить правильную маску. Правда нужен еще дополнительный массив (по одному элементу на тайл), в котором будет сохраняться где он выводился и с каким сдвигом. Или вообще хранить уровень ввиде данных перемешанных с кодом, типа: переместиться в угол, нарисовать тайлы 1,3 и 7 смещаясь вправо, а потом 4 раза скопировать, далее рисовать тайлы смещаясь вниз ну и в том же духе.