Секрет ускорения игры в Space Invaders оказался аппаратной ошибкой
Одна из самых очаровательных историй о том, как ошибка стала фичей, связана с нарастающим темпом классической аркадной игры Space Invaders. На этой неделе эксперт по C/C++ Зухайтц напомнил, что усиливающаяся интенсивность культового аркадного автомата от Taito была следствием не гениального программирования, а аппаратного ограничения процессора Intel 8080.
Если вы когда-либо играли в Space Invaders, вы наверняка замечали, что с каждым убитым пришельцем игра ускорялась. Но если вы проверите исходный код одного из аркадных автоматов, вы не найдёте ничего, связанного с этим. Всё потому, что эта механика — аппаратная случайность.
Процессор Intel 8080, выпущенный в 1974 году, был преемником легендарного 8008 с более мощной и гибкой архитектурой. Однако с его ~5000 транзисторами, 8/16-битной шиной и тактовой частотой ~2,0 МГц обработка оригинального разрешения Space Invaders 224×256 монохромных пикселей была, вероятно, близка к пределу его игровых возможностей. Отсюда и влияние на «ощущения» от геймплея по мере уничтожения орды пришельцев игроком.
Снижение производительности из-за ограничений процессора сохранялось, даже несмотря на то, что в конструкции автомата CPU помогал специализированный видеошифтер Fujitsu MB14241. Также для создания знаменитого звука использовался звуковой чип Texas Instruments SN76477.
Как утверждает Зухайтц, проверка исходного кода оригинальной аркадной игры подтверждает отсутствие кода, связанного с изменением скорости игры по мере уничтожения пришельцев.
«В начале игры изменение позиции, перерисовка спрайтов и проверка столкновений для каждого из 55 пришельцев были очень затратными», — отмечает вундеркинд компьютерной инженерии. В каком-то смысле это не просто ошибка, ставшая фичей: для игроков оригинальной игры это был убийственный крючок, который помогал владельцам аркадных автоматов освобождать геймеров от блестящих четвертаков.
Space Invaders была выпущена компанией Taito в Японии в июне 1978 года.
Более поздние версии игры и эмуляторы, работающие на более современных мощных платформах, требовали специальных мер для реализации «идеального аркадного геймплея», которым славился оригинал. Переписывание кода и ремейки могли достичь правильного баланса темпа игры программными средствами. Однако с популяризацией эмуляторов, таких как MAME, которые позволяли запускать оригинальные ПЗУ, они выигрывали от специальных конфигураций, ограничивающих параметры CPU/времени до уровней, соответствующих оригинальной архитектуре.
Space Invaders стала не только культурным феноменом, но и одной из первых игр, где появилась фоновая музыка во время геймплея. Интересно, что из-за нехватки аппаратных ресурсов знаменитый пульсирующий звук шагов пришельцев фактически был побочным эффектом работы процессора, а не специально запрограммированным звуком.







0 комментариев