Pull to refresh

Comments 35

Офигенно интересная тема! прочитал на одном дыхании.
Обязательно продолжайте писать о старых играх и технологиях.
Люблю иногда расчехлить запылившийся джойстик, запустить эмулятор и погонять в старые игрушки, есть в них что-то такое, чего нет в современных играх.
согласен! у меня nes появилась в 3 года в 91 году (китайская подделка в виде красной машины :) ) и с тех пор эта тема у меня в сердце навсегда! всегда казалось это чем-то недостижимым и сложным и люди, которые разрабатывали игры, ухищрались выжать из того, что было — я их всегда уважал и считал гениями (особенно японцы постарались в ту эпоху). коммент из серии «раньше трава зеленее была», но все же в этом есть что-то романтичное и душевное чтоли… за статью автору большое спасибо!
UFO just landed and posted this here

Ящики, призы и враги маскируют то, что экраны одинаковые. Так почти в каждом подуровне.
Вот в этом месте удивили так удивили! :-)
Понятно, что отображается содержимое уровня на экран поэкранно, но почему при разговоре о хранении уровня мы говорим про экраны? Экраны скроллятся гладко, почему повторяются именно экраны целиком? Почему не по полтора? По 1,7? Почем размер хранимого экрана совпадает с реальным?
Да, сама процедура скролла выводит при скроллинге в разных движках либо по одной вертикальной линии, либо, в целях оптимизации сразу по две.
Экраны хранятся с тем же размером, как выводятся в игре скорее всего потому, что в ходе разработки игры дизайнеры рисовали их по одному (возможно даже прямо на телевизоре с подключенным с нему девкитом), а потом только в ходе тестирования с реальным игровым движком глядя на них целиком. Честно говоря, не имею представления о том, какими средствами разработки пользовались авторы игр.
Если у читателей возникнет интерес, могу написать ещё несколько статей похожей тематики, например: технический процесс поиска данных об уровнях

Было бы интересно почитать например на примере игры JACKAL.
О, интересная игра, посмотрю, что в ней)
Спасибо за статью! Скриншот с моей любимой Darkwing Duck в Вашем редакторе привел в полный восторг. С радостью почитал бы еще.
UFO just landed and posted this here
Ubisoft потеряли исходники дополнений к Третьим героям, а вы говорите NES :).
Тогда, когда оно разрабатывалось (я имею ввиду игры), никто не задумывался о том, что: их будут переводить, их будут хакать. Именно из-за перевода своей любимой игрушки я и влился в тему ромхакинга.

И почему вдруг авторы игры захотят раскрывать ее исходники?
UFO just landed and posted this here
Потому что старые они уже все. Да и работают, наверняка, не абы где сейчас.
Или вариант такой, что не знают они о течении ромхакинга, и ретроностальгии.
UFO just landed and posted this here
При должной настойчивости, иногда получается выйти на разрабов, рассказать им о своих увлечениях, перетереть о том, что хочешь сделать с игрой, и тогда они могут поделиться либо алгоритмом сжатия, либо исходниками. Но, это бывало крайне редко.
UFO just landed and posted this here
Чаще всего — не удавалось найти хоть каких-либо контактных данных авторов игры.
Иногда, обнаруживалось, что авторы присоединялись к более крупной конторе, например, SEGA, KONAMI.
Ну, и, в именно моем опыте, был случай, когда авторы игры ответили, но отказом (это была игра Fantastic Dizzy на Sega Mega Drive).

У моего товарища был успешный опыт входа в контакт с авторами Herc's Adventures (PSX) по поводу сжатия данных. Насколько я помню, они таки поделились с ним алгоритмом и описанием сжатия.

Но, опять же, случаи успеха здесь единичные.
Во-первых, у разработчиков и сейчас есть куча информации под NDA, то, чем они делятся — верхушка айсберга.
Во-вторых, информация об играх вполне может представлять коммерческую ценность. «Mario Maker» на Wii U по сути и есть просто редактор самого первого NES-овского Марио, и будет отлично продаваться. «Final Fantasy» ранние переиздаются под мобильные платформы без изменений геймплея. Зачем делиться тем, что можно ещё раз перепродать?
Хотя, и не без приятных исключений, вроде выложенных недавно исходников «Prince of Persia» с пояснительным техническим документом
UFO just landed and posted this here
Спасибо автору за публикацию! (жаль плюсануть не могу, кармы не хватает)
И технически любопытно, и поностальгировал немного по ушедшему детству, глядя видео… Музычка прям-таки навевает ))
Весь первый уровень недоумевал, что не так с музыкой — вроде и классная, но как-будто должна быть другая. Потом понял — в этом и хак, что с другой игры музыку взяли… если не ошибаюсь — из «Ninja Cat»?
Весь хак — приключения Чёрного Плаща в мире «Ninja Cat» (музыка, карта, уровни, сюжет).
ага, когда до 7:50 досмотрел, тогда и понял что уровни тоже переделаны ))
а до того, казалось, что вроде как всё то же самое, планировка уровней совпадает же… видимо не вглядывался
А вот у меня был практически легендарный картридж 4-мя очень длинными и красивыми играми:
1) The Jungle Book
2) Jurassic Park
3) Star Wars Episode IV (с обычными уровнями-бродиками и 3D полетами на звездолетах)
4) Felix The Cat (примитивная и очень простая игра, но очень длинная)
Как они умудрились всё это упихать в один картридж, до сих пор ума не приложу :-)
Маппер, который переключает банки памяти (вешается на картридж). Позволяет адресовывать гораздо больше, чем это позволяет сама платформа.
Cluster не так давно расковырял логику картриджей и родил собственный мапер на плисине.
Таки знал, что тема ретро-игр жива! Давно ждал статьи на Хабре об этом.

C меня статья о чем то таком на Sega Mega Drive (в частности, поиск упакованных данных, написание распаковщика, инструментарий ромхакера)!
Как ретрогеймер одобряю и всячески поддерживаю идею насчёт продолжения цикла статей!
Интересно было бы узнать, как реализовано в играх столкновение между тайлами, да и вообще логика самого игрового процесса.
Там навряд ли настолько общие элементы есть для всех игр, надо конкретные примеры разбирать.

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


Логика игрового процесса слишком общая тема. Там внутри движков, грубо говоря, то же, что и сейчас (апдейт всех игровых объектов, за который они совершают какое-либо своё действие, иногда даже подобие встроенных скриптовых языков встречается, в «New Ghostbusters 2»), только с очень серьёзными ограничениями.
Могу статью сделать, на примере того же «Чёрного Плаща» показать, как работает скроллинг и игровая логика одного из врагов.
Было бы здорово почитать такую статью. А насчет столкновения, многие этим пользуются как читами плюс тайминг, достаточно посмотреть спидраны.
Тема конечно старая, но вот необходимо получить развертку уровней Кота Феликса, и ваша программа выбивает ошибки =(
Какие у нее технические требования?

Вы не представляете, как часто меня с просьбами по конкретным играм находят по этой теме и не только :)


Технических требований специальных нет, нужен .Net framework, но он в windows новее xp по умолчанию есть уже.


Ещё последние 3-4 версии необходимо разблокировать все dll редактора https://blogs.msdn.microsoft.com/delay/p/unblockingdownloadedfile/
(редактор динамически загружает свои сборки-плагины, а microsoft считает все скачанные из интернета файлы опасными по умолчанию, причём только сборки для новых .Net Framework, я поздновато это заметил, чтобы отключить, после того, как перешёл на следующую версию .Net Framework).


Если вам не нужна возможность засунуть уровни обратно в ROM с феликсом, а просто получить их для какого-то своего использования, то удобнее будет просто экспортировать их из редактора в формате TMX, я это сделал для вас:
https://www.dropbox.com/s/pvskvtw6p1mneid/felix_maps_tmx.zip?dl=0


Файлы TMX открываются с помощью tiled (http://www.mapeditor.org/)

Огромнейшее спасибо!)
Sign up to leave a comment.

Articles