Подход к созданию фона в играх - PullRequest
0 голосов
/ 10 сентября 2010

Каковы наилучшие (по мнению профессионалов) подходы при создании игры на платформерном языке для создания игровых уровней и фона (статических).

Создать один фон и масштабировать его?
или же Покажите это на лету, загружая объекты (вероятно повторяя их часто).

Если первый вариант - выбор, становится необходимым создать каждый уровень игры вручную и затруднить редакторы уровней. Кроме того, если последним вариантом будет выбор, я считаю, что он слишком интенсивно использует процессор .... моя частота кадров почти разбивается на две части при попытке управлять таким количеством объектов на экране.

1 Ответ

0 голосов
/ 10 сентября 2010

Выезд http://gamedev.stackexchange.com!

Как правило, платформеры используют «плитки», маленькие изображения, которые размещаются в сетке, так что

  1. Весь фон не нужно хранить в памяти, а
  2. , чтобы дублированные фрагменты фона не нуждались в дублировании в памяти, а
  3. , чтобы рисовать отдельные фрагменты можно было более локально (для эффективности кэша).

Например, в чем-то вроде Super Mario Brothers огромное количество экранной недвижимости покрыто «небом». У них просто есть один тайл неба, может быть 16х16, может быть 128х128, может быть, что-то еще целиком (но обычно степени двойки, так что математика проста, и все фишки одинакового размера), которая синего цвета. Кажется вероятным (для меня), что их размер плитки равен размеру одного из «блоков», которые вы можете ударить и уничтожить.

В любом случае, так что «данные об уровне» будут массивом того, что тайл находится в одном месте в сетке, вероятно, ориентированный в памяти как столбцы для локальности доступа. Затем, когда пришло время рисовать, вы начинаете с (например) верхнего левого угла, затем идете вниз, затем над одним столбцом и снова вниз ...

Что касается «загрузки на лету», это можно сделать, но вы должны убедиться, что вы выполняете эту загрузку асинхронно (чтобы игра не приостанавливалась) и чтобы вы проверяли, что данные Вы должны быть доступны задолго до того, как они вам понадобятся.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...