Читаем Она позади тебя полностью

В аркадной версии R-Type прокрутка одного экрана занимает чуть больше 12 секунд (время необходимое, чтобы переместить целый экран слева направо) и так как мой экран имел 240 точек с двумя пустыми полосками отступами по 8 пикселей слева и справа, чтобы скрыть края при прокручивании, простая математика дает нам результат: (12.5 секунд * 50 кадров в секунду) / 240 пикселей = 2.6 округляя вверх до 3. Поэтому, чтобы сделать похожую версию для Спектрума нужно успеть сделать все за 3/50 секунды, тогда скорость прокрутки и игры будут приблизительно такими же, как и у аркадной версии.

Наиболее насыщенные графикой игры используют "задний экран": блок ОЗУ, в который записывается графика перед тем, как быть выведенной на главный экран, что помогает предотвратить мерцание, а также означает, что вы можете установить свой способ адресации лучше, чем уникальный адресный стандарт экрана Спектрума. Задний экран действительно единственный способ для таких тяжелых аркадных игр, как R-Type, подразумевающий следующий игровой цикл, состоящий из четырех шагов что-то вроде:

1. Очистить задний экран.

2. Декодировать данные плиток в соответствии со сдвигом пикселей, так что у вас уже есть движение.

3. Записать все данные о спрайтах на задний экран.

4. Переместить все содержимое из заднего экрана в основной так быстро, как это возможно, предпочтительно при кадровом обратном ходе луча ЭЛТ.

Это просто ужасно большой объем данных перемещаемых туда-сюда за несколько 1/50 секунд и, к сожалению, я не мог позволить себе роскошь работать с оригинальной концепцией, где я бы мог изменить такие вещи как: максимальное количество отображаемых спрайтов, разрешение экрана или сложность фона, просто, чтобы «пооткусывать» некоторое процессорное время. Вы можете обойти несколько из этих шагов и записывать непосредственно в главный экран, но вы обнаружите, что если вы не синхронизируете все по вертикальному обратному ходу луча, то ваша графика начинает бешено разрываться, вы также увидите неприятное мерцание экрана, когда графические данные будут стираться и перезаписываться у вас перед глазами.

Вы можете гнаться за сигналом укладываемым электронной пушкой ЭЛТ (или он будет гнаться за вами) и вы закончите наложение графики в середине, без разницы до или после того как она была записана, вызывая буквально разделение — вы можете хотеть установить строгую вертикальную линию на экране, но это будет иметь вид разрушенной палочки!

Каждый программист пытается найти способ, чтобы обойти эти четыре шага или минимизировать время, которое они занимают. Методы и техники, которые я в начале тщательно пробовал в процессе тестирования, чтобы поднять скорость работы, были далеко не уникальными, но все еще забирали много времени. При достаточном количестве времени вы можете совместить шаги 1 и 2 используя второй (!) задний экран, который хранит просто графику фона, готовую к прокрутке и когда вы обрабатываете прокрутку, вы перемещаете его на первый задний экран, автоматически перезаписывая и очищая от того, что здесь было ранее, но такое изобилие памяти было роскошью, которую я не мог себе позволить.

Я знал, что в общем будет происходить: там была БОЛЬШАЯ МАССА спрайтов, двигающихся повсюду, для проверки пришлось записывать довольно много фиктивных данных, когда я тестировал различные вещи и находил, что необходимо все больше и больше времени. Обычно вам сходят с рук некоторые задержки в игре, когда экран начинает заполняться (это было даже в версии аркадного автомата), но здесь все было почти наоборот, игра будет работать медленно большую часть времени из-за обилия спрайтов и ускоряться, когда ничего не происходит (имеется ввиду уменьшение количества спрайтов в данной игровой ситуации)!

Прокручивание целого экрана по одному пикселю при скорости 3/50 секунды на игровой кадр означает, что это займет 14 секунд, чтобы прокрутить целый экран, тогда как 4/50 займет 19 секунд, 5/50 24 секунды, 6/50 29 секунд и т. д. Вы должны придерживаться этого времени, так как это единственный способ получить регулярный ритм игры, в другом случае это приведет вас к увеличению или уменьшению скорости в зависимости от того, что происходит на экране и вы не сможете практически ничего с этим поделать. 29 секунд на прокрутку экрана — это просто смешно, 14 секунд были недостижимыми в принципе, что означает, что у меня практически не было выбора 4/50 или 5/50 в секунду на игровой кадр.

Перейти на страницу:

Похожие книги

Об интеллекте
Об интеллекте

В книге "Об интеллекте" Джефф Хокинс представляет революционную теорию на стыке нейробиологии, психологии и кибернетики и описывающую систему "память-предсказание" как основу человеческого интеллекта. Автор отмечает, что все предшествующие попытки создания разумных машин провалились из-за фундаментальной ошибки разработчиков, стремившихся воссоздать человеческое поведение, но не учитывавших природу биологического разума. Джефф Хокинс предполагает, что идеи, сформулированные им в книге "Об интеллекте", лягут в основу создания истинного искусственного интеллекта - не копирующего, а превосходящего человеческий разум. Кроме этого книга содержит рассуждения о последствиях и возможностях создания разумных машин, взгляды автора на природу и отличительные особенности человеческого интеллекта.Книга рекомендуется всем, кого интересует устройство человеческого мозга и принципы его функционирования, а также тем, кто занимается проблемами разработки искусственного интеллекта.

Джефф Хокинс , Джеф Хокинс , Сандра Блейксли , Сандра Блэйксли

Зарубежная компьютерная, околокомпьютерная литература / Технические науки / Прочая компьютерная литература / Образование и наука / Книги по IT