Дмитрий Чернышев (mi3ch) wrote,
Дмитрий Чернышев
mi3ch

Categories:

ваша бледная копия



Интересная история Джордана Мекнера, автора игры Prince of Persia. Проблема игры была в том, что Apple II имел всего 48 КБ. Это меньше среднего текстового электронного письма, но в этот объём должно было вмещаться всё: все изображения, фоны, кадры анимации, логика работы программы, все звуковые эффекты, музыка, вообще всё. И всё это вместе с анимациями, которые необходимы персонажу для движения по подземельям, заполняло всю доступную память компьютера.


Изначально Джордан думал, что главный герой не будет сражаться, он не применяет насилия и просто пытается выжить в подземелье в жестоком мире, где есть выскакивающие из пола шипы, есть ворота и падающие плиты, которые могут его раздавить, но сам он не жесток. Цель заключалась в преодолении этих ловушек и спасении принцессы, и для реализации этого он задействовал все имевшиеся у Apple II ресурсы. У него физически не было места для вставки ещё одного персонажа.

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

А потом его знакомая Томи подошла, посмотрела на экран и сказала: «Бои, тебе нужны бои». И Джордан снова выкатил свой обычный аргумент: во-первых, это не соответствует концепции игры, во-вторых, не хватает памяти. Томи сказала: «В „Karateka“ (предыдущая игра Джордана) ты использовал одинаковые фигуры для героя и для врага, можно ли сделать так же?». Он ответил: «Нет, потому что герой выглядит привлекательным, несокрушимым персонажем. Враг не должен так выглядеть». А Томи сказала: «Ну, а что если тебе сделать врагов другого цвета?» И тогда к нему пришла идея: что, если выполнить XOR для каждого байта с самим собой, сдвинутым на один бит?

У Apple II не было никаких возможностей обработки изображений, потому что вся графика представляла собой битовые карты. Но одна из ассемблерных инструкций под названием «исключительное ИЛИ» (XOR) брала два бита, и если они одинаковы, то она возвращала ноль, а если отличаются, то единицу. И когда Джордан объяснял Томи, почему он не может нарисовать персонажа не тем цветом, которым он был нарисован, он осознал, что если использовать инструкцию «исключающее ИЛИ» со сдвигом на один бит, то это создаст как бы мерцающий, призрачный контур главного героя. И как только он сказал эти слова, возникло имя этого персонажа: Shadow Man («Теневой человек»). Ему понадобилось всего пять минут, чтобы написать код, превращающий главного героя в призрачную версию самого себя. Как только программисты увидели, как бегает, прыгает и карабкается по подземелью Теневой человек, стало очевидно, что именно он был тем противником, который нужен игре.



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

В конце игры, когда игрок сталкивается со своим теневым Я и дерётся с ним на мечах, при каждом попадании по Теневому человеку игрок теряет очко силы. Игрок осознаёт, что если продолжить сражаться, то в результате убьёшь себя, поэтому решение заключается не в победе в бою на мечах, а в том, чтобы убрать меч. И когда ты убираешь меч, Теневой человек делает то же самое. Если повернуться к нему и побежать, то Теневой человек побежит навстречу. Двое сольются и воссоединятся, а игрок получит обратно все очки здоровья, которые Теневой человек украл у него на протяжении игры.

Tags: history, технологии
Subscribe

Posts from This Journal “технологии” Tag

  • смерть и налоги

    Тема понедельника на Бусти: Будущее налоговой системы 1. Суть проблемы Среднестатистический россиянин даже не представляет себе, как много…

  • учеба

    Новая школа в Иркутске

  • а ты докажи

    Карл Саган рассказывал о человеке (дадим ему имя Кредерус), который пришёл к нему и заявил: «В моём гараже живёт дракон». Потрясающе! В течение…

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your IP address will be recorded 

  • 87 comments
Previous
← Ctrl ← Alt
Next
Ctrl → Alt →
Previous
← Ctrl ← Alt
Next
Ctrl → Alt →