Как следует из названия, я разработал дизайн для 2D-платформерного движка. Это все еще на стадии проектирования, но я беспокоюсь, что у меня возникнут проблемы с рендерером, и я хочу избежать их, если они будут проблемой.
Я использую SDL для своей базовой библиотеки, и игра будет настроена на использование одного большого массива Uint16
для хранения плиток. Эти индексы превращаются во второй массив «определений листов», которые используются всеми частями движка, от обработки столкновений до графической процедуры, что является моей самой большой проблемой.
Графический движок разработан для работы с разрешением 640x480 и плиткой 32x32. На слой на кадр приходится 21x16 плиток (для обработки дополнительной плитки, отображаемой при прокрутке), и можно нарисовать до четырех слоев. Слои - это просто отдельные массивы плиток, но массив определения плиток является общим для всех четырех слоев.
Что меня беспокоит, так это то, что я хочу иметь возможность использовать прозрачные пленки и анимированные плитки с помощью этого движка, и, поскольку я не слишком знаком с проектами, я боюсь, что мое текущее решение будет слишком неэффективно, чтобы хорошо работать.
Мой целевой FPS - это плоские 60 кадров в секунду, и при рисовании всех четырех слоев я смотрю на 21x16x4x60 = 80,640 отдельных плиток 32x32px, которые нужно рисовать каждую секунду, плюс сколько блит нечетного размера необходимо для спрайты, и это кажется немного чрезмерным. Итак, есть ли лучший способ приблизиться к настройке рендеринга карты тайла, которая у меня есть? Я смотрю на возможности использования аппаратного ускорения для рисования карт листов, если это поможет значительно повысить производительность. Я также хотел бы надеяться, что смогу хорошо запустить эту игру и на немного более старых компьютерах.
Если я ищу слишком много, то не думаю, что об уменьшении возможностей двигателя не может быть и речи.