Забавные Лайфхаки: Краткая История

Трудно перечислить все трудности, с которыми сталкиваются разработчики при реализации своих идей — от неожиданных проблем аппаратной совместимости, сжатых сроков, невоспроизводимых ошибок до просто технологических недостатков, не позволяющих воссоздать все, что хочется, или слишком больших амбиций.

Прочитав ряд посмертных разоблачений, где разработчики жаловались на неожиданные препятствия, вставшие на их пути, можно только удивляться тому, что конечный продукт получился интересным и играбельным, хотя и не содержал и половины запланированного.

Но в этой статье речь пойдет о некоторых ярких примерах из истории разработки знаменитых игр, в которых программистам удавалось преодолевать трудности, причем делали это неординарным образом.

Собственно, интерес к вопросу был вызван недавней новостью о том, что поезд в дополнении к Fallout 3 — это вовсе не поезд, а предмет в руке NPC, который мчится куда-то по рельсам.

Об этом мы узнали совершенно случайно, просматривая свойства объекта в редакторе.

Используя этот хак, Bethesda сэкономила уйму времени от введения в игру настоящих поездов (нет транспортных средств, по крайней мере движущихся), не отняв у игрока ощущения погружения в виртуальный мир постапокалиптического мира.

пустырь.

Но начнем с начала.



Забавные лайфхаки: краткая история

Синяя карета покачивается.

Ранние персональные компьютеры, появившиеся во второй половине 70-х годов, с одной стороны, предоставляли массу возможностей тем, кто не имел доступа к мейнфреймам, с другой, даже в то время они были весьма ограничены.

К тому времени Ричард Гэрриот, исследователь космоса и некогда правитель Британии, уже приложил руку к созданию компьютерных игр.

Неудивительно, что его Akalabeth, одна из первых ролевых игр для персонального компьютера, стала 28-м номером в его послужном списке.

И последнее предложение Стива Джобса не полностью удовлетворило его игровые амбиции.

Ограничения встроенного компилятора Apple Basic и 64 килобайта оперативной памяти привели к тому, что программа целиком не помещалась в памяти.

Ему пришлось написать подпрограмму, которая бы выгружала ненужные данные (изображения монстров или что-то еще) и на их место ставила то, что нужно в данный момент, оставляя только заголовок файла, то есть выполняла алгоритм подкачки.

Чтобы программа не заметила подвоха, все синхронизировалось вручную, а когда я пытался запустить ее через отладку, она просто выдавала кучу ошибок.



Забавные лайфхаки: краткая история

Вот откуда все это пошло.

Не удивляйтесь — в современных играх также используются аналогичные приемы оптимизации использования ресурсов.

Известная серия Grand Theft Auto, могущая помимо растущего из года в год музыкального выбора еще и обширного автопарка, никогда не позволит вам оценить ее во всем ее многообразии.

Дело в том, что в большинстве сцен на дороге в четвертой части (такое встречается и в ранних) эпопеи может присутствовать всего около 20 различных моделей автомобилей, хотя зачастую на самом деле их меньше.

Причём, если персонаж в этот момент ещё и арендовал машину, то с большой вероятностью по дороге будут буксовать такие же машины, как и у него.

Это сделано для экономии ресурсов.

Конечно, есть способы отключить этот алгоритм, но при этом получить попадание в область кадровых секунд.

Забавные лайфхаки: краткая история

Массовый митинг? Нет - недостаточно памяти.

Еще одной классикой, в которой использовались необычные хаки, была Elite, которая была впервые выпущена в 1984 году и распространилась на большинство систем, доступных на тот момент. Амбициозная игра, сочетающая в себе космический симулятор от первого лица с торговой стороной, показалась слишком сложной для издателей, которые в то время все еще были сосредоточены на конкуренции с рынком аркад, и разработчики Ян Белл и Дэвид Брабен потратили некоторое время на поиски.

Но Elite оказалась однозначным хитом и породила целый жанр.

Но что интересно, она предназначалась для тех самых восьмибитных компьютеров, где по экрану ползали персонажи из примитивных платформеров.

Огромный космос из восьми галактик и 256 планет пленил воображение игроков, умещаясь при этом всего в 25 килобайт.

Забавные лайфхаки: краткая история

За этим экраном лежало огромное пространство.

Чтобы это стало возможным, создатели использовали низкоуровневый язык программирования ассемблер, а также собственный алгоритм, где данные брались случайным образом из таблиц, тем самым генерируя мир заново при создании новой игры.

Таким образом были выбраны курсы обмена ресурсов, типы планет и другая информация.

В будущих портах и улучшенных версиях многие ограничения сняты, но алгоритм создания галактики остался.

Далее, Space Invaders — игра, о которой если не все слышали, то все слышали.

Идея была довольно простой — звездные захватчики медленно спускались в низ экрана, который игрок защищал на движущейся турели.

И чем меньше их было на экране, тем быстрее они летели и опускались.

Идея автора? Несомненно.

Но как это было реализовано! В игровом автомате использовался Intel 8080, первый широко используемый микропроцессор с производительностью 300 000 операций в секунду.

А разница в скорости возникла из-за того, что он не справлялся с поставленными перед ним задачами — игра просто тормозила при заполнении экрана.

Но создатель Space Invaders Томохиро Нисикадо решил оставить это как дополнительную задачу, поскольку уже потратил много времени на разработку оборудования.

Что уж говорить о плавной анимации полета или цветной графике — их пришлось отложить на более поздние версии.

Кстати, в последующих портах на компьютеры и приставки такая механика осталась, но была реализована без использования «тормозящего» процессора.



Забавные лайфхаки: краткая история

Изначально к нему были прикреплены полоски разноцветной пленки для окраски экрана.

И более 30 лет спустя вопрос плавности игрового процесса стал более актуальным, чем когда-либо.

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

Суть подхода в том, что в зависимости от нагрузки размер изображения меняется для поддержания обещанных 30 или 60 кадров в секунду.

Причем меняется покадрово, прямо на лету и растягивается аппаратным скалером приставки.

Но в этом случае настраивается только разрешение по горизонтали, вертикальное остается прежним – 720 или 1080 пикселей.

И, судя по имеющимся примерам, в первом варианте оно может идти от 1280 пунктов до 640 (!) пунктов, во втором - опускаться где-то до 1200 пунктов.

Более того, в играх, запускаемых на разных консолях, технология выдает разное разрешение.



Забавные лайфхаки: краткая история



Забавные лайфхаки: краткая история

Тот же кадр, тот же размер экрана, но совершенно другое разрешение по горизонтали.

Впервые это было замечено в Wipeout HD, но позже использовалось в шутере Rage от id Software, файтинге Tekken Tag Tournament 2 и других.

Иногда интересные решения появляются в результате многолетних исследований возможностей той или иной системы.

Commodore 64 является не только самой успешной моделью персонального компьютера, но и одной из самых долгоживущих, просуществовавшей в одной и той же конфигурации с 1982 по 1994 год. Одной из игр, выпущенных ближе к концу платформы, является малоизвестная платформер Mayhem in Monsterland. Однако по сравнению с играми, работавшими на том же оборудовании 80-х годов, выглядит оно потрясающе: быстрая, плавная прокрутка, множество спрайтов, яркие цвета.

Разработчики из Apex Software использовали все хаки, которые были в их арсенале.



Забавные лайфхаки: краткая история

Трудно представить, что это скриншот игры с платформы, появившейся за 3 года до NES. Чтобы добиться такой быстрой прокрутки, ведь игра представляет собой смесь Марио и Соника, и последний вряд ли ограничился бы прокруткой по 7 пикселей за раз, что предлагает С64, была использована недокументированная ошибка в графическом чипе, которая разрешена прокрутка до 320 пикселей, т.е.

ширины одного экрана.

Но это не все.

Несмотря на то, что название компьютера подразумевает наличие всего 64 килобайт адресного пространства, исполняемый файл занимает 68. Лишняя оперативная память берется из ПЗУ, где по каким-то причинам осталось свободное место, графический режим тоже смесь из двух - HIRES (высокий, по меркам 1982 года) и MULTICOLOR, а для преодоления ограничения на количество спрайтов в кадре (оно заложено на аппаратном уровне) используется составное изображение, где картинка состоит из нескольких частей кадра, чтобы обмануть аппаратную часть.

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

//Вирджил и Даймаус Теги: #баги #программирование #история ИТ #история игр #хаки #старые игры #старые игры

Вместе с данным постом часто просматривают: