Как стать автором
Обновить

Комментарии 11

На EGA ладно… Как это делали на NES с тайловой графикой? В Kick Master есть один такой уровень.

На сколько я помню, на NES был аппаратный скроллинг и аппаратные же спрайты. Отрисовкой занимался не главный процессор. Там всё проще в этом плане.

Насколько я помню, как раз на NES аппаратного скроллинга нет, он только на SNES появился. На NES есть только слой статичного фона. И параллакс там достигается весьма интересными хаками. Например, если мне не изменяет память, есть метод, когда ловится прерывание от видеоконтроллера по началу развёртки каждой новой строки, и в этот короткий момент перенастраиваются регистры, отвечающие за смещение тайлов фона. Таким образом, двигая фон в нужные моменты по мере вывода кадра, и получается эффект движения разных по высоте полос фона с разной скоростью. Одна из самых красивых реализаций - в моей любимой игре Ninja Ryukenden III. И, кстати, очень обидно, что в ремастере "Ninja Gaiden Trilogy", вышедшем на SNES, эту механику просто поломали, и параллакса в третьей части игры там нет вовсе, хотя, казалось бы...

Так вот оно что. Я думал, там есть:
— аппаратные спрайты
— фон из тайлов
— аппаратная прокрутка этого фона
И не мог понять, как в том уровне Kick Master сделали два фона, перемещающихся с разными скоростями. Неужели второй фон — один большой спрайт? Теперь понял, что прокрутка фона там перенастройкой регистров. То есть, основной вычислительной системе для этого иногда прилагать усилия приходится. И можно одни регистры чаще перенастраивать, другие реже, так и получаются разные скорости.

На ПК8000 работал другой интересный прием. Там спрайтов нет, прокрутки тоже. Ну, как со спрайтами проблему решили, понятно. Резким перепрыгивагием тайлов, там многие игры так сделаны. Но это в игровом процессе, а есть ещё заставки. В игре «Питон» сделали такую заставку. Там ведь тайлы в ОЗУ, можно заполнить экран одним тайлом, а затем его динамически менять. Всего-то восемь байт перезаписывать падающими снежинками, а снег в итоге будет на всём экране падать без лагов.

Примерно так и есть. На nes один слой фона и один слой спрайтов. Спрайты, правда, могут быть за фоном или перед ним, но это не так важно.

Для паралакса чаще всего именно меняют позицию фона на определенной горизонтальной линии. В таких играх видно как фон разбит горизонтальными линиями и в паралаксе нет наложения ближних объектов на дальние (ну разве что спрайтами).

На самом деле, этот приём используется намного чаще, чем может показаться. В том же Super Mario Bros рисуется верхняя часть экрана с очками, временем и т.д., а потом процессор меняет регистр видеоадаптера и перемещает фон уровня. Вывод картинки невозможен без использования процессора.

И да, разбить экран вертикальной линией нельзя. Совсем. Тот же Road Fighter работал потому, что движение по вертикали делали по 8 пикселей за кадр. По сути, только обновляли номера тайлов. Плавного скроллинга там нет.

Спрайтами можно только маленьких объектов добавить в паралакс скроллинг. В заставке какого-то megaman было хорошо в заставке сделано. Что-то большое на спрайтах не сделать, т.к. железо рисует всего 8 спрайтов на горизонтальной линии.

Есть ещё и другие возможности добавить эффект параллакса. Например подменять некоторые тайлы на похожие, но смещённые. Обычно применялось для чего-то маленького, например, нарисовать что-то простое за окном. Можно ещё посмотреть на Prehistorik Man на Game Boy. Там явно видны границы применения технологии.

На nes как раз есть аппаратный скроллинг фона. Для этого там видеопамяти на 2 экрана с тайлами. Но тайловый слой там всего один, в отличии от snes и нашей любимой сеги.

Это именно что легче: на игровых приставках и некоторых компьютерах начала восьмидесятых (Commodore и так далее) было аппаратное ускорение всех нужных технологий — спрайтов, фонов, палитр. На Хабре был соответствующий перевод с разбором «начинки» NES.


Хотя он был слабее IBM PC по мощности центрального процессора, Amiga долгие годы выдавал графику и звук поинтересней, потому что отдавал часть задач специализированным чипам Denise, Agnus и Paula чипсета OCS.

А вот сделать плавный скроллинг на IBM PC было тяжелее. В недавнем пятичасовом интервью Джон Кармак повторяет историю, что Commander Keen получился в виде попытки скопировать Super Mario Bros. — быстренько изваяли простой прототип-копию, но в «Нинтендо» его предложение сделать SMB3 для PC всерьёз не восприняли. Именно после демонстрации технологии плавного скроллинга прототипа платформера Ромеро и Уильбер (и Миллер из Apogee) посоветовали Кармаку основать собственную компанию.

Говоря проще, стартап id Software зародился потому, что Кармак написал плавный скроллинг для EGA. Вот настолько это было новинкой.

Или потому что Нинтенда не захотела с ним связываться)
А если бы захотели, не было бы у нас Вольфенштейна, Дума и Квейка)

Там была аппаратная поддержка - независимо скроллящийся фон с отдельным сдвигом и спрайты.

Вот теперь сижу и пытаюсь вспомнить, был ли параллаксный скроллинг в Captain Comic, если не в первом (1988), то хотя бы во втором (1990). Есть ли у кого-нибудь DOS/DOSBox под рукой запустить и посмотреть?

Такие вещи быстрее всего в youtube смртреть. Похоже, что не было паралакса, зато было дёрганое перемещение экрана по 8 пикселов.

На самом деле с паралаксом в дос играх не очень. Например, в The Lost Vikings он был вырезан вместе с частью графики, хотя на Sega Magadrive и SNES был. В Aladdin параллакс был, но на моём компъютере игра тормозила. И это более пощдние игры с VGA графикой.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории