Очень старые приключенческие игры (например, квесты Сьерры из 80-х), которые фактически содержали отдельное растровое изображение всего экрана, которое представляло собой z-глубину и материалы, чтобы определить, куда может пойти ваш персонаж и где он будет скрыт. Они будут использовать пиксельную выборку, чтобы проверить, куда пойдут их маленькие спрайты.
Хотя современные машины работают быстрее, уровни прокрутки по длинной стороне делают такой подход непрактичным, ИМХО. Вы должны пойти с более разреженными представлениями.
Один из вариантов - «превратить» вашу игру в невидимые плитки, которые легче представить. Основная проблема заключается в том, что он может ограничить ваш дизайн (например, трудно создавать диагональные платформы) и может сделать анимацию очень скудной (например, ноги ваших персонажей фактически не касаются платформы). Эта опция может работать ИМХО для приключенческих игр, подобных Zelda, но не для экшенов.
Второй вариант - представить игровой мир с помощью некоторого векторного представления и реализовать некоторое обнаружение столкновений. Я бы лично выбрал второе решение, особенно если вы умеете организовывать свои структуры данных, чтобы минимизировать время доступа (например, иметь более быстрый доступ к подмножеству элементов мира, близких к текущей позиции ваших персонажей).
Я бы не удивился, если бы были доступны 2D игровые движки, которые предоставляют такую возможность, поскольку, безусловно, есть 3D движки, которые это делают. На самом деле, вам может оказаться проще использовать существующий движок 3D-игр и использовать его для рендеринга 2D.