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

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

Так что теперь вам не надо восемь кадров анимации для самонаводящейся ракеты, вам нужно только три: так программно влево становится вправо, верх становится вниз, вверх/влево становится вверх/вправо, вниз/влево — вниз/вправо, сохраняя около 60 процентов. Конечно, есть другие способы, используемые на версии Спектрума для сохранения места: более большие спрайты, например, часто имеют общие "обездвиженные" элементы, что означает, что вы можете сохранить эту часть как первый спрайт, а затем добавлять движущиеся элементы к нему как раздельные спрайты. Именно так на шестом уровне закодированы Поршни. Так как только конец спрайтов двигался, то не было необходимости иметь большую статическую часть каждого спрайта последовательности, забирая память, поэтому эта часть хранилась как отдельный спрайт, а движущиеся части добавлялись к нему по необходимости.

Для R-Type компрессия была не выбор, а единственным способом, в чем я везде мог убедиться, и хотел использовать это в игре, там, где это возможно, но есть и обратная сторона этого подхода, компрессия нуждалась в декомпрессии, а это занимало время. Процедуры переворачивания и отражения спрайта, так же как распаковка самих данных спрайта, все занимает больше времени выполнения, чем подпрограмма обычного спрайта, переданного без сжатия данных и это может иметь большой эффект в игре. Мне повезло с R-Type, или я должен высказать мое отношение к этому, так как я пошел необычным путем, то "как быстро шла игра" не было моей основной целью, я просто хотел перенести как можно больше с аркадной версии сюда, насколько это было возможным.

Если вы пробежитесь со мной по ранним частям, где я пытался охватить технические аспекты всей игры, тогда вы поймете, как важно убедиться, что каждый игровой кадр работает так быстро, как это только возможно, особенно в игре типа интенсивной графической аркады. Было время почти навязчивого поиска программистами Спектрума, приводящего к работе игры со скоростью 50 кадров в секунду, тогда они могли похвастаться "очень сглаженной графикой" и показать какими умными они были, но, когда вы кодируете по крупицам, отслеживая последнюю инструкцию или время цикла и временные интервалы до микросекунд, вы рискуете с большим опасением потерять синхронизацию, что в конечном счете может уничтожить вашу игру. Благодаря этому быстрые, шелковисто гладко выполняющиеся игры обычно состоят из горстки маленьких спрайтов и экрана, который не прокручивается: достаточно легко реализовать для оригинальной игры, но полностью не подходящий при конверсии с игрового автомата, где экран перемещается.

Очень часто приходится делать выбор между "что вы хотите видеть на экране" и "что вам сойдет с рук". Да, у вас могут быть сотни спрайтов на дисплее, отображаемые в каждом кадре, но вы можете пойти приготовить себе чашечку чая, в то время как они будут перемещаться с одного края экрана к другому. Решение? Уменьшение количества спрайтов. Легко. Это не то, что вы хотели, но теперь это работает. Если вы не осторожный, вы можете позволить себе гонку за идеалом попробовав что-то еще… экраны и спрайты становятся меньше и это занимает меньше времени, чтобы вывести их, цвет брошен в пользу монохромности, дерганье фона или прокрутка рывком на восемь пикселей дает иллюзию движения. Я мог откусить пару символов на краю моего экрана дисплея, сделав его более квадратным, что сохранило бы некоторое время, или я мог бы вывести половину появляющихся чужих, давая игроку слегка почувствовать вкус игры, меньше, чем от целой. Или прокрутить экран по символьным блокам. Или сделать игру полностью монохромной. Или уменьшить размер и количество оружия игрока. Я не буду продолжать, вы поняли идею. Все, что я осознавал: я хочу взять как можно большую часть оригинальной игры, которую я мог бы перенести в Спектрум, а если это означало замедление до ползанья, когда экран занят, то пусть будет так.

* * *

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

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

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

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

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

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