Досье: Пакман. Изучаем устройство легендарной игры

Перевод оригинального документа The Pac-Man Dossier за авторством Джейми Питтмана, написанного в 2009 году.

Досье: Пакман. Изучаем устройство легендарной игры

🍒 Часть 1: Автомат приветствует вас

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

Тору Иватани, создатель Pac-Man.

В 1977 году молодой талантливый самоучка по имени Тору Иватани пришел работать в Namco Limited, токийскую компанию по производству развлекательной продукции, основной линейкой которой в то время были аттракционы с проекциями и тиры со световым оружием.

Ему было всего 22 года, и он не имел образования, связанного с компьютерами, изобразительным искусством или графическим дизайном. Однако после встречи руководителям Namco стал очевиден творческий потенциал юноши и его тяга к геймдизайну. Юноше предложили работу, на что тот ответил согласием.

Так Иватани нашел свое место в разработке игр, начав работу в новом игровом подразделении Namco. Из-за ограниченных навыков работы с компьютером, ему пришлось работать в паре с писавшем код программистом. Пока коллега кодил, Иватани прорабатывал геймдизайн проекта.

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

Иватани изначально хотел работать над автоматами для игры в пинбол, но Namco не интересовалась этим бизнесом. Возможно, компания пошла на уступки, и поэтому его первая игра под названием Gee Bee напоминала Breakout от Atari, но с явным геймплейным уклоном в пинбол.

Gee Bee
Gee Bee

Gee Bee вышла в 1978 году и стала первой оригинальной видеоигрой Namco — до этого компания занималась портированием игр Atari для японского рынка, плюс компания пользовалась умеренным спросом на рынке аркадных автоматов.

Но Breakout-подобные игры быстро уступили место новому жанру. Беспрецедентный успех игры Space Invaders от Taito в 1978 году заставил всю индустрию делать «стрелялки» на космическую тематику, чем был вызван дефицит монет в Японии.

Разработчики игр изо всех сил старались повторить успех Taito, выпуская собственные космические шутеры. Namco быстро последовала успешному примеру, утвердив команду для немедленного начала работы над клоном Space Invaders. Примерно в это же время Тору Иватани начал думать о разработке игр другого типа. Он чувствовал, что мода на «стрелялки» пройдет, как это случилось с Breakout и ее подражательницами.

Space Invaders
Space Invaders

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

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

Иероглиф «кути» («рот») имеет квадратную форму, что послужило источником вдохновения для главного героя игры. Более известная легенда об Иватани, подчерпнувшего вдохновение из пиццы без одного кусочка, по его собственному признанию, была не совсем правдивой:

Это правда лишь наполовину. В японском языке иероглиф слова «рот» («кути») имеет квадратную форму. Он не круглый, как пицца, но я решил его округлить. Был соблазн сделать форму Пакмана менее простой. Пока я разрабатывал эту игру, кто-то предложил добавить глаза, но в конце концов мы отказались от этой идеи, потому что, после глаз нам бы захотелось добавить очки, потом усы, и конца и края этому бы не было.

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

У японцев есть сленговое слово «паку-паку», которое они используют для описания движения открывающегося и закрывающегося рта во время еды. Название Puck Man произошло от него.

Тору Иватани, создатель Pac-Man.

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

Иватани и пицца
Иватани и пицца

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

Имея в распоряжении имя и базовый дизайн, Иватани был готов приступить к работе. Команда Namco, поручившая Иватани сделать Puck Man, включила в проект программиста (Сигео Фунаки) , инженера по оборудованию, дизайнера корпуса и композитора (Тосио Кай) .

Разработка началась в начале 1979 года. В течение того же года в ходе разработки Puck Man были выпущены две новых пинбольных игры от Иватани — Bomb Bee и Cutie Q. Обе игры напоминали Gee Bee, но геймплей был насыщенней, а графика приятней.

Работавшая над клоном Space Invaders команда Namco в течение последних нескольких месяцев добилась технологического переворота: это была первая игра, в которой использовался настоящий многоцветный RGB-дисплей вместо монохромных мониторов с цветной целлофановой лентой, бывшими очень распространенными в те времена на рынке.

Благодаря прорыву другой команды, у Иватани появились связанные с цветом перспективы, способные улучшить дизайн игры. Не забыв о своем желании угодить женской аудитории, он сразу же решил покрасить призраков в пастельные тона и добавить им выразительные голубые глаза. Для самого лабиринта был выбран темно-синий цвет, а Puck Man стал ярко-желтым.

Автомат Puck Man
Автомат Puck Man

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

В какой-то момент были добавлены бонусные объекты (включая флагман из Galaxian), а призракам наконец-то дали имена: Акабей, Пинки, Аоске и Гузута. Помимо постоянной настройки модели поведения призраков одними из последних штрихов, нанесенных ближе к концу разработки, стали звуковые эффекты и музыка.

На создание Puck Man ушло год и пять месяцев — на тот момент это был рекорд для разработки видеоигры. Наконец, 22 мая 1980 года игра вышла для игровых автоматов на территории Японии. Игру встретили достаточно тепло, но мгновенно хитом она не стала.

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

Midway, компания-дистрибьютор видеоигр, принимающих оплату американскими монетами, постоянно выискивала японские хиты, которые можно лицензировать и привезти в США. Компания купила Puck Man и Galaxian, изменив корпуса и иллюстрации, чтобы упростить производство автоматов, и придать им более привычный для американской аудитории внешний вид.

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

Призракам были даны английские имена (Блинки, Пинки, Инки и Клайд), а логотип Namco был заменен символикой Midway. Самым значительным изменением в Puck Man стало название. Midway опасалась, что злобным вандалам будет слишком легко изменить букву P на F, тем самым создав неловкую ситуацию.

Досье: Пакман. Изучаем устройство легендарной игры

Не желая, чтобы их продукт ассоциировался с этим словом, Midway переименовала игру в Pac-Man, прежде чем выпустить ее для американских аркадных залов в октябре 1980 года.

В Америке эти две игры приняли зеркально наоборот по сравнению с Японией. Galaxian утонула в океане бесчисленных стрелялок в американских залах, а осенью 1980 года ей пришлось конкурировать с более продвинутыми видеоиграми вроде Defender.

Galaxian пользовалась умеренным успехом в Америке и Японии, но так и не стала хитом уровня оригинальной Space Invaders. С Pac-Man вышло всё по-другому. Эту игру ни с чем нельзя было сравнить — индустрия наблюдала пришествие нового жанра. Ярко-желтый корпус, визуальные эффекты и звуки привлекли большое внимание. Такой игры еще никто не видел.

Захватывающий геймплей и растущий уровень сложности осчастливили заядлых геймеров, а доступность игры привлекала даже маленьких детей. Отсутствие военной тематики и насилия оправдало ожидания Иватани: множество женщин заинтересовались игрой, чего в индустрии раньше не было. Даже родители, опасающиеся аркадных игр с насилием, не возражали против того, чтобы их дети играли в такую милую и безобидную игру, как Pac-Man.

Pac-Man продолжала захватывать умы жителей всего мира, чего не удавалось ни одной игре ранее. Это был настоящий феномен мирового масштаба: только за первый год было продано более 100 000 автоматов. Игра, которую легко освоить, но в которой, как всем известно, трудно победить, высасывала четвертак за четвертаком как у школьников, так и у важных шишек с Уолл-стрит.

Досье: Пакман. Изучаем устройство легендарной игры

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

Новая песня под названием «Pac-Man Fever» получила широкое распространение на радио, заняв девятое место в чартах Billboard США. Было написано много книг, в которых советовались приемы, используемые лучшими игроками для достижения высоких результатов — это были первые в истории изданные игровые руководства.

Перенесемся на тридцать лет вперед: Pac-Man остается самой продаваемой видеоигрой для автоматов с монетоприемниками за всю историю. По-прежнему считающимся самым широко известным персонажем видеоигр в США, его образ был лицензирован более чем 250 компаниями для более чем 400 продуктов.

У Пакмана даже появился тезка в бизнес-сегменте: ситуация, когда «слабая» компания избегает приобретения путем поглощения более крупной, называется «защитой Пакмана». В Смитсоновском институте в Вашингтоне даже выставлен вертикальный автомат Pac-Man.

Досье: Пакман. Изучаем устройство легендарной игры

В отличие от большинства современников из начала 80-х, новые игры Pac-Man продолжают выходить. В 2007 году для Xbox 360 вышла Pac-Man Championship Edition, руку к которой снова приложил Тору Иватани.

Но и к оригинальной игре интерес не угасает. Благодаря перевыпуску Pac-Man и других классических игр для современных консолей, появляются все новые поколения Pac-зависимых, натирающих мозоли на обеих руках, играя в классику, которая зачастую куда старше, чем они сами.

Многие классические игры сохранились, благодаря появлению высококачественных эмуляторов игровых автоматов (например, MAME), доступных для домашнего компьютера, использующих программную копию чипов (ROM) аркадных автоматов для максимально аутентичного воспроизведения игры. В Интернете можно найти несколько страничек с информацией об оригинальной аркадной версии Pac-Man, включая Википедию и Killer List Of Video Games.

🍓Часть 2: Тонкости геймплея

Поскольку Pac-Man изначально была задумана и для женщин-геймеров, игра сделана простой и доступной. Я считаю, что это одна из составляющих долговечности игры.

Тору Иватани, создатель Pac-Man.

Основы

Суть Pac-Man восхитительно проста: используя четырехпозиционный стик, игрок направляет Пакмана вверх, вниз, влево или вправо через лабиринт, заполненный точками, которые можно съесть. В лабиринте также находятся четыре монстра-призрака, преследующие нашего героя, чтобы его убить.

Цель игрока — съесть все точки в лабиринте, избегая смертоносных призраков. Каждый уровень начинается с того, что призраки заперты в «загоне» в центре лабиринта. Покинув «загон», они начинают погоню.

Досье: Пакман. Изучаем устройство легендарной игры

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

В лабиринте 244 точки, которые Пакман должен съесть, чтобы перейти на следующий уровень. 240 маленьких точек приносят по 10 очков, а четыре большие мигающие точки, наиболее известные как энерджайзеры, приносят по 50 очков.

В итоге игрок получает за прохождение лабиринта 2600 очков за уровень. У игроков есть два способа увеличить свой счет помимо поедания точек:

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

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

Первый съеденный призрак всегда стоит 200 очков. Каждый дополнительный призрак, съеденный во время действия энерджайзера, будет стоить в два раза больше, чем предыдущий — 400, 800 и 1600 очков соответственно. Если все четыре призрака будут съедены при помощи всех четырех энерджайзеров, на ранних уровнях можно зарабатывать дополнительные 12 000 очков. Первые несколько уровней это не будет сложной задачей, поскольку на поедание синих призраков у игрока есть несколько секунд.

Однако вскоре «синее состояние» призраков сократится максимум до одной или двух секунд, что сделает поедание всех четырех противников проблематичным занятием. С 19 уровня призраки вообще перестают синеть, поэтому дополнительных очков они больше не принесут.

Второй способ увеличить свой счет на каждом уровне — съедать бонусные объекты (также известные как «фрукты»), которые появляются прямо под загоном монстра дважды за уровень. Первый бонусный фрукт появляется после того, как в лабиринте будет съедено 70 точек, второй появляется после съедения 170 точек.

Каждый фрукт стоит от 100 до 5000 очков, в зависимости от того, на каком уровне находится игрок. Всякий раз, когда появляется фрукт, время, в течение которого он будет доступен, прежде чем исчезнуть, всегда составляет от девяти до десяти секунд. Точная продолжительность (т. е. 9,3333 секунды, 10,0 секунд, 9,75 секунды и т. д.) является переменной и не будет предсказуемой при использовании паттернов. Другими словами, выполнение одного и того же паттерна на одном и том же уровне дважды не дает гарантий, что бонусный фрукт будет оставаться на экране столько же, сколько и в прошлый раз.

Обычно время остается неопределяемым, учитывая, что большинство паттернов рассчитаны на то, чтобы съесть бонусный фрукт как можно быстрее после его появления. Фрукты, съеденные в последних шести пройденных уровнях (в т.ч. и в текущем) отображаются в нижней части экрана (часто называемой счетчиком фруктов или счетчиком уровней). См. таблицу 1 в приложениях для перечня всех бонусных фруктов и их стоимости на каждом уровне.

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

ПРЕСЛЕДОВАНИЕ. Цель призрака в этом режиме — найти и поймать Пакмана, выслеживая его в лабиринте. Каждый призрак обладает уникальным поведением во время погони за Пакманом, что придает им разные характеры: Блинки (красный) очень агрессивен, и от него трудно скрыться. Пинки (розовый) имеет цель оказаться перед вами или подрезать вас. Инки (светло-голубой) наименее предсказуем, а Клайд (оранжевый), кажется, себе на уме и не особо не лезет.

РАССЕИВАНИЕ. В этом режиме призраки на несколько секунд прекращают погоню и направляются в свои родные уголки. Долгожданный, но короткий отдых для игрока — вскоре призраки вернутся в режим преследования и снова будут гоняться за Пакманом.

ИСПУГ. Призраки переходят в испуганный режим всякий раз, когда Пакман съедает один из четырех энерджайзеров, расположенных в дальних углах лабиринта. На ранних уровнях все призраки становятся темно-синими (что означает, что они уязвимы) и бесцельно блуждают по лабиринту в течение нескольких секунд. Они начнут мигать за несколько мгновений до того, как вернутся к своему прежнему режиму поведения.

Удача наоборот

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

Тот, кто хоть раз играл в Pac-Man, знает, что призраки в определенное время меняют направление. Но как такое возможно, если им запрещено делать это самостоятельно? Дело в том, что при смене режимов система может переопределить нормальное поведение призраков, заставив их двигаться в обратном направлении. Это визуальный индикатор изменения их перехода от одного режима к другому.

Система вынуждает призраков менять направление всякий раз, когда режим меняется следующим образом: преследование-рассеивание, преследование-испуг, рассеивание-преследование и рассеивание-испуг. Призраки не меняют направление при переходе из режима испуга в режим преследования или рассеивания.

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

Задержка между сигналом системы о развороте и фактическим ответом призрака зависит от того, сколько времени потребуется призраку, чтобы попасть в следующий тайл на текущем курсе после подачи сигнала о развороте (подробнее о тайлах в части 3). Как только призрак оказывается на новом тайле, он подчиняется сигналу разворота и выполняет это действие.

Рассеивание, преследование, повторение...

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

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

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

Первое и второе преследование длится 20 секунд. Третье составляет 20 секунд на первом уровне, но затем увеличивается до 1033 секунд для уровней со второго по четвертый и 1037 секунд для всех последующих уровней, а это больше 17 минут! Если призраки переходят в режим испуга, таймер рассеивания/преследования приостанавливается.

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

Досье: Пакман. Изучаем устройство легендарной игры

Поведение при испуге

Каждый раз, когда Пакман съедает один из четырех энерджайзеров на уровне, призраки изменят свой маршрут, а на более ранних уровнях перейдут в режим испуга. Испуганные призраки становятся темно-синими. Перед тем, как перейти в нормальное состояние, они недолго будут мигать в качестве предупреждения. Призраки используют генератор псевдослучайных чисел (PRNG), чтобы выбрать способ поворота на каждом перекрестке, когда они напуганы.

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

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

Скорость

В начале игры скорость Пакмана ограничена 80% от максимума. Начиная с пятого уровня Пакман будет двигаться на полной скорости, пока не доберется до 21 уровня. С этого момента он замедлится до 90% и до конца игры эта скорость не изменится. Каждый раз, когда Пакман съедает обычную точку, он останавливается на один кадр (1/60 секунды), замедляясь примерно на десять процентов — этого достаточно, чтобы находящийся рядом призрак догнал его.

Съев точку-энерджайзер, Пакман перестанет двигаться в течение трех кадров. Стандартная скорость призраков немного ниже, чем у Пакмана, но с 21 уровня они начинают двигаться быстрее, чем он. Однако если призрак входит в боковой туннель, его скорость снижается почти вдвое.

Когда призраки напуганы, они двигаются гораздо медленнее, чем обычно, и на уровнях с первого по четвертый Пакман также ускоряется. В таблице ниже приведены данные о скорости Пакмана и призраков на уровнях. Эта информация также содержится в таблице 1 в приложениях.

Досье: Пакман. Изучаем устройство легендарной игры

Прохождение поворотов

Пакман минует повороты в лабиринте быстрее, чем его враги. Ему не нужно ждать, пока он достигнет середины поворота, чтобы изменить направление, как это делают призраки (см. рисунок ниже). Вместо этого он может начать поворачивать за несколько пикселей до того, как достигнет центра поворота, и на несколько пикселей после.

Повороты, сделанные за один или несколько пикселей до достижения центра, называются «пре-поворотами», а повороты, сделанные на один или несколько пикселей позже, являются «пост-поворотами». Игроки учатся последовательно перемещать стик в направлении, в котором должен двигаться Пакман, прежде чем он достигнет центра поворота, следя за тем, чтобы каждый пре-поворот начинался как можно дальше от центра.

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

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

Досье: Пакман. Изучаем устройство легендарной игры

Всякий раз, когда Пакман совершает пре-поворот или пост-поворот, его ориентация меняется, и он начинает двигаться на один пиксель в новом направлении за каждый пиксель, пройденный в его старом направлении, фактически удваивая свою скорость при движении под углом 45 градусов. Как только он достигает центральной линии траектории нового направления, он начинает двигаться только в этом направлении, и его скорость становится нормальной.

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

Досье: Пакман. Изучаем устройство легендарной игры

При заходе слева перед центром поворота будут три пикселя перед поворотом и четыре пикселя после поворота. И наоборот, в том же перекрестке справа будет четыре пикселя до поворота и три пикселя после поворота. Заход сверху (но не снизу) обладает тем же свойством.

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

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

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

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

Дом, милый дом

Досье: Пакман. Изучаем устройство легендарной игры

Огороженный в центре лабиринта участок обычно называют домом призраков или загоном для монстров. Это закрытая для Пакмана территория четырех призраков.

При прохождении уровня или потери жизни призраки возвращаются на свои исходные позиции в доме или возле него, прежде чем игра продолжится. Блинки всегда находится снаружи, а остальные три находятся внутри загона: Инки слева, Пинки посередине и Клайд справа.

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

Это все, что нужно знать о поведении Блинки в отношении дома, а вот определение того, когда остальные три призрака покинут дом — сложный процесс, основанный на нескольких переменных и условиях. Остальная часть этого раздела будет посвящена исключительно им. Соответственно, любое упоминание «призраков» ниже относится к Пинки, Инки и Клайду, но не к Блинки.

Первый элемент, используемый для оценки того, когда призраки покидают дом — это личный счетчик, который имеет каждый призрак для отслеживания количества точек, съеденных Пакманом. «Счетчик точек» каждого призрака сбрасывается в начале каждого уровня, работает он только внутри дома. Независимо от того, сколько призраков находится внутри, активным может быть только один счетчик.

При выборе счетчика призрака для активации предпочтение отдается в следующем порядке: Пинки, потом Инки, затем Клайд. За каждую съеденную Пакманом точку счетчик предпочтительного призрака в доме (если он есть) увеличивается на единицу. У каждого призрака есть «лимит точек», связанный с его счетчиком.

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

Лимит точек Пинки всегда равен нулю, поэтому он сразу же покидает дом в начале каждого уровня. На первом уровне у Инки есть ограничение в 30 точек, а у Клайда 60. Это приводит к немедленному выходу Пинки, что, в свою очередь, активирует счетчик точек Инки. Затем его счетчик должен достичь или превысить 30 точек, прежде чем он сможет покинуть дом.

Как только Инки выйдет из дома, счетчик Клайда (который все еще находится на нуле) активируется и начинает считать точки. Когда его счетчик достигает 60 или больше, он сможет выйти. На втором уровне лимит точек Инки изменен с 30 до нуля, а у Клайда - с 60 до 50. С этого момента Инки будет выходить из дома в начале уровня.

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

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

Три призрака внутри дома должны ждать этого специального счетчика, чтобы получить команду выйти. Пинки освобождается, когда значение счетчика становится равным 7, а Инки освобождается, когда оно становится равным 17. Единственный способ деактивации счетчика возможен, если Клайд будет находиться внутри дома, когда значение счетчика равно 32. В противном случае точки будут считаться даже после того, как дом опустеет.

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

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

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

Особо внимательный читатель, вероятно уже заметил, что в этой системе есть небольшой изъян, приводящий к тому, что Пинки, Инки и Клайд остаются в доме-призраке в течение очень долгого времени после того, как они их съели. Хитрость заключается в том, чтобы пожертвовать жизнью, чтобы сбросить и включить заново глобальный счетчик точек, а затем убедиться, что Клайд покинул дом до того, как счетчик стал равен 32.

Это достигается путем избегания поедания точек и ожидания предела таймера, чтобы вытеснить Клайда. Как только Клайд двинется к выходу, снова начните есть точки, пока не будет съедено не менее 32 точек с момента потери жизни. Теперь отправляйтесь за энерджайзером и съешьте несколько призраков. Блинки немедленно покинет дом, а вот три других призрака останутся «застрявшими» внутри, пока Пакман будет есть точки с достаточной частотой, чтобы снова запустить таймер.

Почему так происходит? Тут важно понять, как работает глобальный счетчик точек — его нельзя деактивировать, если Клайд находится вне дома, когда значение счетчика равно 32. Если таймер вынуждает Клайда уйти до того, как будут съедены 32 точки, глобальный счетчик точек будет продолжать считать, а не отключится при достижении 32 тучек. Теперь, когда Пакман съедает призраков и возвращает их в дом, они по-прежнему будут использовать глобальный счетчик точек, чтобы понять, когда им выходить.

Как было описано выше, логика этого счетчика проверяет только три значения: 7, 17 и 32, и как только эти значения превышаются, счетчик не будет обладать возможностью освободить связанных с ними призраков. Единственный элемент управления, оставшийся для выпуска призраков — это таймер, которого легко контролируется, достаточно время от времени съедать точки, чтобы его сбросить.

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

Зоны эксплойта

Досье: Пакман. Изучаем устройство легендарной игры

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

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

Розовые зоны представляют собой две половины объединенных боковых туннелей. Как упоминалось ранее, любой призрак, вошедший в туннель, получит немедленный штраф к скорости до тех пор, пока не покинет зону. Это правило замедления работает всегда и применяется только к призракам — Пакман штраф к скорости не получает.

🍊Часть 3: Основа логики лабиринта

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

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

Фактические размеры экрана в пикселях составляют 224 на 288 пикселей, и разделив эти числа на 8 мы получаем площадь 28 на 36 тайлов.

Досье: Пакман. Изучаем устройство легендарной игры

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

Агенты перемещаются только между тайлами допустимого пространства. Каждая точка находится в центре тайла, то есть расстояние между ними восемь пикселей (один тайл). Это полезная информация для оценки расстояния.

На каком тайле я нахожусь?

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

Досье: Пакман. Изучаем устройство легендарной игры

Прозрачный красный призрак движется слева направо по ряду тайлов в допустимом пространстве. В первом кадре занятый им тайл (ярко-красный) находится рядом в левой части изображения. Неважно, что часть спрайта призрака отсутствует на тайле — важно то, что на тайле находится центральная точка призрака.

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

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

Досье: Пакман. Изучаем устройство легендарной игры

Каждый агент определяется тайлом, который он в данный момент занимает, а также текущим направлением движения. Расстояния между агентами также измеряются в тайлах (например, розовый призрак находится в пяти тайлах от Пакмана по горизонтали и одном тайле по вертикали).

Просто мимо проходил

Вскоре после выхода Pac-Man начали распространяться слухи об игроках, время от времени проходящих сквозь призрака целыми и невредимыми, казалось бы, совершенно случайно. Этот слух оказался полностью правдивым, и большинство заядлых игроков это подтвердят.

Играя в Pac-Man, вы рано или поздно лично увидите, как Пакман столкнется с одним из призраков и пройдет сквозь него совершенно невредимым — такое случается не очень часто, так что смакуйте момент! Некоторые игроки даже включали эту загадочную странность сквозного прохождения в свои паттерны.

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

Не имеет значения, переместился ли призрак в тайл, где был Пакман или наоборот — результат будет одинаковым. Этой логики достаточно для обработки столкновений более чем в 99% случаев во время игры, но она не учитывает один особый случай.

Досье: Пакман. Изучаем устройство легендарной игры

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

Другими словами, центральная точка Пакмана перемещается вверх в тайл Блинки за ту же 1/60 секунды, что и центральная точка Блинки перемещается вниз в тайл Пакмана, в результате чего они проходят друг через друга без столкновений. Обратите внимание, что исходная точка Пакмана находится в центре верхнего края его тайла в четвертом кадре — он по-прежнему считается находящимся внутри нижнего тайла, но перемещение еще на один пиксель вверх подтолкнет его через границу к следующему.

Пакман и Блинки теперь поменялись тайлами друг с другом в пятом кадре, и Пакман может продолжать заниматься своими делишками, потому что он не «сталкивался» (т.е. не делил один и тот же тайл) с Блинки!

Целевые тайлы

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

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

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

Заглядывая вперед

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

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

Когда призрак смотрит вперед на следующий тайл, он должен изучить возможные выходы из этого тайла, чтобы определить, как действовать дальше. На рисунке ниже красный призрак только что достиг тайла А и движется справа налево. Он сразу смотрит вперед на тайл B (следующий тайл по направлению движения).

Досье: Пакман. Изучаем устройство легендарной игры

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

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

Перекрестки

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

Досье: Пакман. Изучаем устройство легендарной игры

На первом рисунке красный призрак только что достиг тайла А и выбирает цель (зеленый тайл). Он сразу смотрит вперед на следующий тайл вдоль своего текущего направления движения (вверх). В этом случае этот тайл представляет собой четырехсторонний перекресток. Поскольку на этом тайле перекрестка нет стен, блокирующих выходы, призрак может отказаться только от обратного направления (вниз), оставив три выхода открытыми для движения.

Призрак заглядывает за один тайл на перекрестке в каждом из трех оставшихся направлений, собирая «тестовые тайлы» (выделены пунктиром). На среднем рисунке призрак триангулирует расстояние от каждого тестового тайла до своей цели.

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

Иногда перед призраком оказываются два или более тестовых тайла, находящихся на одинаковом расстоянии от цели. В приведенном ниже примере красный призрак должен выбирать между движением вниз или влево на ближайшем тайле перекрестка. Как мы видим, оба тестовых тайла имеют одинаковое расстояние до цели (внизу слева).

Досье: Пакман. Изучаем устройство легендарной игры

Чтобы что-то сделать, призрак предпочтет направления в следующем порядке: вверх, влево, вниз, вправо. Вверх — наиболее предпочтительное направление, а вправо — наименее. Следовательно, призрак выберет на перекрестке идти налево, потому что в списке предпочтений левое направление приоритетней нижнего. Может, человеку и покажется очевидным, что спуск вниз будет лучшим способом добраться до цели, призраки не настолько умны. Они не могут видеть дальше, чем на несколько тайлов вперед, и, как следствие, не могут проанализировать разницу между этими двумя вариантами.

Рассеивание целей

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

Досье: Пакман. Изучаем устройство легендарной игры

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

В результате он будет просто нарезать круги в области, находящейся недалеко от его целевого тайла, пока цель не будет установлена в каком-нибудь другом месте. Собственно, в этом и вся суть режима рассеивания. Единственная причина, по которой у призрака вообще есть «любимый угол» в лабиринте, связана с расположением целевого тайла, которого он никогда не достигнет.

🍎 Часть 4: Знакомство с призраками

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

Билли Митчелл, чемпион по игре в Pac-Man.

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

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

Иногда призрак заинтересован в тайле, который не имеет абсолютно никакого отношения к Пакману. Независимо от того, где в данный момент находится целой тайл призрака, Пакмана все равно могут съесть, если он встанет на пути призрака.

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

Блинки
Тень

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

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

Досье: Пакман. Изучаем устройство легендарной игры

В начале уровня все призраки двигаются с одинаковой скоростью, но Блинки будет увеличивать свою скорость дважды за уровень в зависимости от количества точек, оставшихся в лабиринте. Блинки в ускоренном состоянии обычно называют «Круиз Элрой», но, похоже, никто не помнит, откуда возник этот термин и что он означает.

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

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

Если жизнь будет потеряна после того, как Блинки стал Элроем, он вернется к своему обычному поведению и скорости, когда игра возобновится. Призрак снова отправится в свой персональный угол во время начального рассеивания, но как только последний призрак (Клайд) выйдет из дома, Блинки снова превратится в Элроя.

Помните: он все время находится в режиме рассеивания. Изменится лишь целевой тайл. Сам призрак по-прежнему будет менять направление при входе и выходе из режима рассеивания, как и раньше. По мере прохождения уровней Блинки для превращения в Элроя будет требоваться больше несъеденных точек, чем в предыдущих уровнях. См. таблицу 1 в приложениях для информации о количестве точек и скорости для обеих фаз Элроя на каждом уровне.

Пинки
Быстрый

Розовый призрак представлен как «быстрый». В Японии его называют «матибусэ», что означает «устроить засаду». Возможно, потому что Пинки всегда может опередить вас и подрезать, когда вы меньше всего этого ожидаете.

Однако он всегда движется с той же скоростью, что и Инки и Клайд, что уже говорит о том, что «быстрый» — это не лучший вариант перевода более подходящего слова «матибус». Часто будет создаваться ощущение, что Пинки и Блинки работают сообща, чтобы загнать Пакмана в угол, отрезая пути к отступлению.

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

Досье: Пакман. Изучаем устройство легендарной игры

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

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

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

Досье: Пакман. Изучаем устройство легендарной игры

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

На рисунке выше Пинки решает оказаться на перекрестке, потому что движение влево увело бы его дальше от целевого тайла. Самым долгоживущим примером считается метод, известный как «head faking»: игрок встряхивает стик, в результате чего Пакман быстро меняет направление туда-сюда, из-за чего призрак меняет свой курс.

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

Инки
Застенчивый

Светло-голубой призрак описывается как «застенчивый». В Японии его описывают словом «кимагурэ», что означает «непостоянный» или «капризный». Неудивительно, ведь Инки наименее предсказуемый призрак.

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

На самом деле Инки может быть самым опасным призраком из-за своего непостоянства. «Застенчивый» — не очень хороший перевод слова «кимагурэ», оно скорее введет игрока в заблуждение. Можно подумать, что Инки будет убегать от Пакмана при встрече, что не всегда так.

Досье: Пакман. Изучаем устройство легендарной игры

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

Досье: Пакман. Изучаем устройство легендарной игры

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

Логика наведения Инки будет держать его подальше от Пакмана, когда Блинки тоже далеко от него находится, но по мере того, как Блинки будет приближать, то и целевой тайл Инки будет приближаться. Это объясняет, почему поведение Инки кажется более изменчивым по мере того, как Пакман отдаляется от Блинки. Как и Пинки, курс Инки часто можно изменить, если Пакман изменит направление или сделает вид, что его меняет. Насколько сильно это повлияет на решения Инки, напрямую зависит от того, где в данный момент находится Блинки.

Клайд
Скрытный

Оранжевый призрак описывается как «скрытный». В Японии его описание «отобокэ», что означает «притворяющийся невежей», а его прозвище «Гудзута» переводится как «тот, кто отстает».

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

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

Досье: Пакман. Изучаем устройство легендарной игры

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

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

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

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

🍈Часть 5: Расшифровка разделенного экрана

Так вот и кончится мир

Так вот и кончится мир

Так вот и кончится мир

Только не взрывом а вздрогом.

Т. С. Элиот, «На краю вечности».

Pac-Man всегда задумывалась как игра без конца. Разработчики из Namco ошибочно предположили, что возрастающая сложность игры достаточна для того, чтобы никто не мог играть бесконечно, но через несколько лет после выхода игры, фанаты обнаружили, что все начиная с 21-ого все уровни идентичны.

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

В итоге несколько высококвалифицированных игроков смогли пройти 255 уровней (набрав более трех миллионов очков и потратив на это несколько часов) и обнаружили сюрприз, ожидающий их на 256 уровне. Об этом сюрпризе не знали даже разработчики из Namco.

Досье: Пакман. Изучаем устройство легендарной игры

На 256-м уровне левая половина лабиринта отображается корректно, а вот правая половина представляет собой беспорядок из случайно окрашенных букв, цифр и символов. Обратите внимание, что счетчик бонусов в правом нижнем углу экрана также отображается некорректно.

Левая часть лабиринта играется нормально, чего нельзя сказать о правой. Хотя и игрок, и призраки могут перемещаться по правой половине экрана, оригинальные стены лабиринта больше не существуют.

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

Как вообще возник этот сломанный уровень? Виновником является подпрограмма, отвечающая за отрисовку бонусных символов вдоль нижнего края экрана. Вот что происходит: при достижении уровня 256 внутренний счетчик уровней увеличивается до 255 (счетчик уровней начинается с нуля, а не с единицы) и вызывается программа отрисовывания бонусных символов.

Подпрограмма загружает значение счетчика текущего уровня (255) в регистр ЦП и увеличивает этот регистр на единицу. К сожалению, 255 — это наибольшее число, которое может поместиться в одном байте, что соответствует размеру регистров процессора Z-80, поэтому при увеличении значения переполнение отбрасывается, оставляя в регистре ноль вместо ожидаемого значения 256. Это нулевое значение приводит к тому, что подпрограмма считает, что это ранний уровень, поскольку его значение меньше семи.

Подпрограмма начинает рисовать бонусные символы, используя спутанный регистр в качестве счетчика. В конце каждого цикла рисования регистр уменьшается на единицу, а затем проверяется, равен ли он нулю (сигнал для подпрограммы о прекращении отрисовки символов). Поскольку в начале в регистре уже есть ноль, первое уменьшение откатит значение до 255. Цикл будет продолжать уменьшать регистр и рисовать символы, пока регистр снова не уменьшится до нуля, в результате чего цикл выполнится в общей сложности 256 раз.

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

Прохождение уровня

Досье: Пакман. Изучаем устройство легендарной игры

В левой половине экрана 114 точек, в правой девять точек и один бонусный ключ, всего 6310 очков. Когда все точки будут съедены, ничего не произойдет. Игра не будет считать уровень пройденным, пока не будут съедены 244 точки, так что ничего не остается, кроме как пожертвовать Пакмана голодному призраку.

Интересно, что каждый раз, когда теряется жизнь, девять точек в правой половине экрана сбрасываются, и их можно снова съесть, что дает дополнительные 90 очков за каждую жизнь. В лучшем случае (пять дополнительных жизней) максимально возможное количество очков, которые можно заработать, будет равняться 6760. Но таким образом можно собрать только 168 точек — этого недостаточно для смены уровня, поэтому игрок с Пакманом здесь застрянут навсегда. Больше нет точек и энерджайзеров, которые можно съесть.

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

Четыре из девяти точек в правой половине экрана невидимы, но игрок услышит, как их съедает Пакман. На картинке слева показаны все девять точек. Точки 1, 5, 6 и 9 невидимы; остальные можно увидеть, но некоторые из них другого цвета.

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

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

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

Досье: Пакман. Изучаем устройство легендарной игры

Если подробней: начните с движения вправо, пока не дойдете до синей буквы «N», затем идите вниз. Продолжайте идти вниз, пока не дойдете до синей буквы «F», затем идите направо. Продолжайте идти прямо, пока не дойдете до желтой буквы «B», затем снова спуститесь. Если все сделано верно, то Пакман ударится о невидимую стену почти сразу после того, как будет сделан последний поворот. Остается только ждать.

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

На свободе остался лишь оранжевый призрак. Клайд, однако, не представляет реальной угрозы, так как он бежит в свой угол всякий раз, когда к нему приближается Пакман приближается (см. часть 4), что позволяет относительно легко съесть все точки. Будьте осторожны в левом нижнем углу лабиринта - оранжевому призраку некуда будет бежать, и он станет гораздо агрессивнее.

Хочешь верь, а хочешь нет

В некоторых ROM-ах Pac-Man есть функция «Rack Test», позволяющая владельцу автомата перейти на следующий уровень игры в любое время. На сегодняшний день единственный известный способ «честно» пройти уровень 256 — это использовать переключатель внутри этих машин.

В результате игра вернется к первому уровню, но с перенесенным счетом и поведением призраков, если бы это был уровень 21 или выше. Многие из ROM-ов Pac-Man, доступные для использования с эмулятором MAME, также имеют эту функцию, что позволяет тем, у кого под рукой нет аркадной версии, быстро добраться до разделенного экрана или миновать его.

На протяжении десятилетий Пак-энтузиасты всего мира слышали байки о «секретном трюке», позволяющем игроку пройти уровень 256 и продолжить игру, не используя вышеупомянутую хитрость. Несколько игроков хвастались, что приобрели этот святой Грааль знаний о Pac-Man за годы игр, но никто не смог предъявить никаких доказательств.

Эта тема стала настолько горячо обсуждаться в высших эшелонах сообщества аркадных игр, что Билли Митчелл, который был убежден, что это невозможно, предложил денежный приз в размере 100 000 долларов первому игроку, который докажет, что он сможет честно пройти 256 уровень, сделав свое предложение актуальным целый год. Этот приз никто в итоге не получил.

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

Тем не менее слухи иногда продолжают ползать. Возможно, люди просто хотят верить в такую возможность, а не в отсутствие таковой, как происходит с Санта-Клаусом или пасхальным кроликом. С другой стороны, а вдруг это какой-нибудь Pac-зависимый, который утаивает секреты 30-летнего развлекательного игрового устройства по своим собственным непостижимым причинам. Случались и более странные вещи. Судите сами.

🔔Приложение

Таблица 1: Характеристика уровней

Досье: Пакман. Изучаем устройство легендарной игры
161161
22 комментария
150 ₽

Брат, этот лонгрид стоит всех денег мира

11
Ответить

Брат, ты понимаешь, что эти несколько часов мог потратить не на перевод, а на игру в фортнайт со сквадом петухов? Брат, зачем ты так....

12
Ответить

Я, конечно, ждал книгу по Пакману, но статью тоже почитаю, спасибо!

5
Ответить

Я тоже её очень сильно жду, если честно :(

7
Ответить

Охуенно. Слишком мало лойсов и вообще внимания к треду. ШИК!

5
Ответить

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

Ответить

Комментарий недоступен

4
Ответить