/* Но текущую комнату придётся хранить в памяти в распакованном виде чтобы сверяться с расположением препятствий. */
Да, я так и хочу сделать.

/*Спрайты лабиринта (тайлы) все одинакового размера, их удобно хранить как у меня сделано. */
С этим согласен.

А насчет спрайтов, в принципе без разницы (время компиляции не критично), мне просто так привычней и можно подправить что-нибудь и сам спрайт оформить в виде структуры объекта..

/* Универсальная процедура всегда медленней. */
Я думал не совсем об универсальной процедуре, а о выделении той части которая будет общая для всех.