- PVSM.RU - https://www.pvsm.ru -

Ностальгия по Night Light (1995)

Ностальгия по Night Light (1995) - 1


Многие из нас с восторгом вспоминают те или иные игры детства, и в данном случае речь пойдет о ностальгических воспоминаниях об игре Night Light 1995 года, которые натолкнули автора на воссоздание одного из основных элементов ее геймплея — фонарика.

Предыстория

В свои юные годы я играл в компьютерную игру Night Light, выпущенную GTE Entertainment. Ее геймплей строится вокруг кошки Pandora и собаки Pixel, которые в темноте исследуют дом после того, как все люди отправились по своим ночным делам.

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

В течение последних лет я время от времени вспоминал о ней и пытался найти ее в сети, но успехом эти поиски не увенчались. Наконец, в 2018 году YouTube-блогер Vulnerose Plays записал ее прохождение [1] и выложил в архив интернета образ ISO [2]. Кстати, большинство комментаторов под видео тоже оказались людьми, пытавшимися отыскать эту игру.

На момент написания я еще не успел в нее поиграть, так как для этого необходимо эмулировать старую версию Windows, чем я пока не озадачивался. Однако недавно [3] у меня возникло вдохновение воссоздать ее базовую механику на JavaScript с помощью Canvas, и вот мы здесь.

Извлечение ресурсов

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

Для открытия и просмотра содержимого файла .iso я использовал 7-zip [4]. Иногда выяснялось, что ресурсы вложены в сам .exe, что привносило дополнительные трудности. Тем не менее большая часть ресурсов любезно хранится в каталогах в виде отдельных файлов. Было нетрудно отыскать LIGHT.BMP и DARK.BMP для каждого уровня.

Ностальгия по Night Light (1995) - 2

Размер этих картинок 512х344, и в каждой из них жестко закодирована тень под HUD. Но что это за файлы .mov размером с мегабайт?

Эти видео-файлы содержат по 80 фреймов, каждый из которых является фрагментом одного общего изображения. С помощью ffmpeg я разобрал эти видео-фреймы, использовав команду ffmpeg -i DARK.MOV %03d.png.

Ностальгия по Night Light (1995) - 3
Ностальгия по Night Light (1995) - 4

Первые 16 фреймов можно объединить в сетку 4х4, получив изображение 1024х768. А последние 64 кадра собираются в сетку 8х8, формируя картинку 2048х1376. Весьма впечатляет видеть эти уровни в столь высоком разрешении, спустя так много лет.

Из каждого каталога я удалил фреймы с 01 по 16, затем обновил свой stitch.py [5] на получение аргумента --grid и объединил все оставшиеся 64 картинки для каждого уровня.

Ностальгия по Night Light (1995) - 5
Ностальгия по Night Light (1995) - 6

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

Ностальгия по Night Light (1995) - 7

Я даже специально написал для этой задачи ffdecodetest.py [6]. Уровни заднего двора и гостиной оказались самыми поврежденными, и в них тест прошли только три и одна дорожки соответственно. Если у вас по какому-то особому везению есть копия CD этой игры, то вы могли бы сделать с нее новый рип.

Ностальгия по Night Light (1995) - 8

Затем мне оставалось лишь скопировать код для canvas, который я написал в прошлый раз [3], и «пролить на все немного света».

Включаем свет в ночи

Прим. пер.: описанные ниже инструкции по взаимодействию с воссозданной «игрой» работают только в оригинале статьи.

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

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

Ностальгия по Night Light (1995) - 9

Реальные интерактивные изображения доступны в оригинале статьи [8]

Остальные картинки

Ностальгия по Night Light (1995) - 10
Ностальгия по Night Light (1995) - 11
Ностальгия по Night Light (1995) - 12
Ностальгия по Night Light (1995) - 13
Ностальгия по Night Light (1995) - 14
Ностальгия по Night Light (1995) - 15
Ностальгия по Night Light (1995) - 16

Отсутствующие файлы меню

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

Я просмотрел все файлы через 7z в надежде отыскать .bmp или «плиточный» .mov с изображением меню, но нигде их не вижу. Удивительно. Самое близкое, что мне удалось найти – это MMCHOICE.MOV, где Pixel и Pandora обсуждают выбор уровня.

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

Возможно, я просто что-то упустил, или эти изображения вложены в другое место. Файл NIGHTMPC.EXE весит целых 7.7МБ, то есть в нем вполне могли поместиться кое-какие секреты. Я просмотрел этот бинарник в поиске любых заголовков BMP или MOV… безуспешно.

Мне кажется, что игра должна работать как в Windows, так и на Mac: многие ее ресурсы представлены в дублированном виде (BMP/PIC, WAV/AIF), но среди исполняемых файлов я нахожу только .exe. Может быть есть еще какие-то, которые я не вижу? Или же некоторых файлов просто не хватает, а с ними и графики меню?

Если вам удастся в этом разобраться, прошу отписать в комментариях.

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

Ностальгия по Night Light (1995) - 17
Ностальгия по Night Light (1995) - 18

Заключение

Здесь будет кстати упомянуть блогера Тома Скотта и его ролик о Need for Speed, в котором он отправился с ностальгическим визитом в реальное место, на основе которого был разработан один из уровней этой игры.

В конце ролика он говорит следующее:

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

Своеобразная благодарность всем разработчикам:

Ностальгия по Night Light (1995) - 19 [10]

Автор: Дмитрий Брайт

Источник [11]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/javascript/375992

Ссылки в тексте:

[1] записал ее прохождение: https://www.youtube.com/watch?v=KYDoBcFcGM8

[2] образ ISO: https://archive.org/details/NightLight_201809

[3] недавно: https://voussoir.net/writing/browser_in_the_dark

[4] 7-zip: https://www.7-zip.org/

[5] stitch.py: https://github.com/voussoir/cmd/blob/master/stitch.py

[6] ffdecodetest.py: https://github.com/voussoir/cmd/blob/master/ffdecodetest.py

[7] https://voussoir.net/writing/night_light_1995/night_light_theme.flac: https://voussoir.net/writing/night_light_1995/night_light_theme.flac

[8] оригинале статьи: https://voussoir.net/writing/night_light_1995

[9] https://voussoir.net/writing/night_light_1995/credits.flac: https://voussoir.net/writing/night_light_1995/credits.flac

[10] Image: https://bit.ly/3PT6wqs?utm_source=habr&utm_medium=article&utm_campaign=Bright_Translate&utm_content=nostalgiya_po_night_light_(1995)

[11] Источник: https://habr.com/ru/post/671010/?utm_source=habrahabr&utm_medium=rss&utm_campaign=671010