Мне потребовалось 4 недели, чтобы заставить меня сесть и поработать над этим.
Я знал, что это навредит моему мозгу, потому что нужно было решить множество проблем. Как создать битмап, где хранить цвет высоты. Как выглядит массив склонов. Как кодировать наклоны.

Это никуда не денется. Попытка сделать это с помощью тяжелых размышлений не даст результата. Преобразование 2d в 2.5d не укладывается в голове.

Что я мог сделать, так это поднять каждый угол один за другим. Точнее, бинарный. Все наклоны уместились бы в байте.
Я использую для этого blender3d, но важно знать, какой угол находится вверху в каком кадре.

Пока все хорошо.
Теперь о преобразовании 2d в 2.5…
Я читал, что существует много видов изометрии и разные решения для хранения тайлов в массиве. Я отдаю предпочтение шахматному варианту, хотя он требует в два раза больше памяти. Также может потребоваться больше времени для расчета, чтобы выяснить, на какой плитке находится персонаж. Но он лучше соответствует прямоугольности экрана. И не поворачивает изображение.

Код высоты хранится в первой строке изображения.

Я разобью изображение по уровням и найду ребра, перемещающиеся на один уровень вниз. И хранить информацию об уклоне на нижнем уровне.
Но мне нужно выяснить, какова форма наклона, собрав соседние пиксели по диагонали…

Тут мой мозг начинает болеть, и я хватаюсь за визуальную помощь.

Вручную я пытался сообразить, какой из склонов окажется на среднем месте в зависимости от окружающих высот. Чтобы сделать возможности немного менее широкими, я объединяю пиксели, которые могут быть 0 или 1, в *.

Итак, теперь я могу пройтись по растровому изображению, собрать 9 бит и сравнить его с поиском, который подскажет мне, какой должен быть наклон.

Смогу ли я когда-нибудь прочитать файл данных?
Наверное, нет, все же я храню байт как шестнадцатеричный, для выравнивания.

Экономия места за счет сочетания высоты с наклоном.

Вау… работает…

Я немного разочарован соотношением высоты и ширины, но это вина размера одной плитки. Наклон должен быть немного более крутым, чтобы я мог немного увеличить расстояние между плитками по вертикали.