Самая старая игра на сайте Newgrounds была загружена в 2000 году
Adobe Flash (ранее Macromedia Flash) — пожалуй, самая большая сокровищница в истории игр. За двадцать лет под неё вышли буквально десятки тысяч игр: библиотека обширнее, чем у любой игровой приставки. И через два года всё это может исчезнуть.
Впрочем, вернёмся к тем временам, когда сигнал тревоги ещё не прозвучал.
История Flash (по крайней мере, игр) — длинная и сложная тема, которая гораздо лучше раскрыта в фильме (см. выше). Там даже рассказано о множестве «эпох» флэш-игр, а я могу поделиться собственным опытом.
Около десяти лет назад я учился в школе. Мои родители были не слишком богаты; в основном приходилось сидеть на диалапе, как и многим австралийцам. На игру для приставки можно было рассчитывать только на день рождения или другой праздник, поэтому в новые игры мы играли нечасто. К тому же и в школу надо было ходить почти каждый день, так что большинство из нас искали какую-то форму лёгкого развлечения, чтобы убить время в редкие часы отдыха.
Добро пожаловать на великолепный флэш-портал.
NotDoppler в мае 2018 года. Не тот сайт, на который я заходил в юности, но часто представлял себе такой
Флэш-порталы были главным врагом сисадминов на работе, в школах и где угодно, где от людей требовали работы за компьютером. Их были сотни, на каждом огромный выбор игр, абсолютно везде ТАНКИ, но на многих сайтах присутствовали и свои уникальные игры. На каждый заблокированный сисадмином сайт мгновенно появлялись два новых.
У Flash было много преимуществ в то время: он без проблем работал на всех видах ПК через браузер, большинство игр были маленькими, не генерировали много трафика — они просто работали большую часть времени. Все могли зайти на сайт, чтобы взорвать друг друга в многопользовательских ТАНКАХ или впасть в бесконечную депрессию в «Самой сложной в мире игре» (The World’s Hardest Game), или попробовать понять безумную логику троллей-авторов «Невозможной викторины» (The Impossible Quiz). И это лишь три примера. Как я уже сказал, на многих сайтах были тысячи таких игр, буквально тысячи — каждая запускалась одним щелчком мышки в браузере.
Как и все остальные, я вырос, а вместе с этим наступил общий закат эпохи Flash. Конечно, тысячи людей по-прежнему каждый день играют во флэш-игры (например, у последней игры ArmorGames для Flash зарегистрировано 13 000 загрузок в первую неделю после выхода), но массовый пользователь ушёл.
Впрочем, постараемся не забыть тех, кто начинал с платформы Flash. Среди самых известных — Эдмунд Макмиллен (автор игр The Binding of Isaac и Super Meat Boy), он начинал с флэша. Студия Cellar Door Games, известная тайтлом Rogue Legacy, начинала с игры Don’t Sh*t Your Pants на флэше. И флэш-технология на самом деле использовалась во многих высокобюджетных играх.
Благодарите Flash за эту ужасающую картинку
И мы даже не считаем замечательные игры, которые стали частью общественного сознания. Список настолько велик, что уйдут часы на их перечисление. Зачем это делать, если вам достаточно пойти на Newgrounds, отсортировать игры по рейтингу — и играть во всё подряд, пока ещё есть такая возможность.
И вот на эти последние несколько слов я хочу обратить ваше внимание.
Короче говоря, поддержка Flash заканчивается в 2020 году.
Основная проблема Flash в том, что он известен как огромная дыра в безопасности. Большинство людей не особо любят Flash, и у них есть причины: Flash нагружает CPU, в середине 2000-х на нём повсеместно делали рекламные баннеры, которые замедляли ПК. Количество дыр Flash, которые требуется залатать, равносильно попытке герметизировать «Титаник» после раскола пополам.
И с изобретением мобильных устройств (и печально известным заявлением Стива Джобса, что платформа Flash не подходит для экосистемы Apple) многие разработчики отошли от Flash, а вместе с ними и бoльшая часть рынка казуальных игр, и спустя годы рынок сдулся. Современные каталоги мобильных игр напоминают флэш-порталы прежних лет.
Видите сходство?
С изобретением более универсальной технологии HTML5 дни Flash были сочтены. Начиная с 2020 года Flash больше не будет поддерживаться Adobe, никаких обновлений и патчей. В конце концов вскроется ещё больше уязвимостей в безопасности, что подтолкнёт разработчиков браузеров полностью удалить Flash. Так, Firefox пообещал отключить Flash по умолчанию для всех пользователей к следующему году, а Chrome пообещал полностью удалить плагин до конца 2020 года.
Посмотрите на скриншот чуть выше, а именно на правую часть — Newgrounds на момент написания данной статьи. Все эти двадцать игр работают на Adobe Flash. Если в вашем браузере больше нет плагина для запуска этих игр, то что с ними станет? Неужели 3500 страниц игр с сайта Newgrounds просто исчезнут?
Ещё рано ставить финальную точку, хотя...
Никто не знает, что будет. Эти компании — Armor Games, Kongregate, Newgrounds, NotDoppler и все остальные флэш-порталы — не объявляли о своих планах. Некоторые из них могут выжить (поскольку каждый из перечисленных сайтов содержит игры не на флэше, такие как Unity или HTML5), но при этом исчезнет 90% их игровых библиотек просто потому что никто не сможет их запускать.
Когда никто больше не может запускать эти игры, зачем держать их копии на серверах? Несложно представить, что владельцы порталов посчитают эти игры не стоящими усилий по привлечению маленькой аудитории пользователей со специально модифицированными браузерами (или просто старыми версиями браузеров). Когда это произойдёт, мы попрощаемся с флэш-играми навсегда.
Конечно, некоторые из них можно сохранить локально на жёсткий диск. В большинстве случаев (более 90% игр, по моему личному и совершенно ненадёжному обоснованному предположению) игры смогут по-прежнему запускаться в чём-то вроде автономного Adobe Flash Player одним нажатием кнопки. Но как насчёт игр, которые не запустятся?
Сейчас такой вариант сработает для большинства игр
Есть некоторые исключения, которые большинство людей не смогут обойти самостоятельно или, по крайней мере, без технических усилий. Главная проблема — залочка на сервер (sitelocking): большое количество игр разработаны с DRM, который просто не позволит вам играть вне соответствующих серверов.
В игре Cube Escape: The Cave вы никогда не пройдёте за этот экран без дополнительных усилий
И конечно, нельзя забывать про полностью онлайновые игры, будь то мультиплеер или просто сохранение в облаке. Вы не сможете долго играть в Pokemon Tower Defense, если не сохранитесь в облаке.
Добавьте сюда игры, которые требуют много внешних ресурсов — и у вас проблемы. Многие флэш-игры часто загружают части по отдельности (опять же, это было важно в эпоху диалапа, где один мегабайт выкачивался час, если повезёт). Если у вас нет локальной копии этих файлов, вы попали.
Сравните, слева: копия Gateway II без загрузки внешних файлов, справа: с одним внешним файлом
Подведём итог. Менее чем через два года с момента публикации этой статьи сотни тысяч игр, скорее всего, исчезнут из интернета навсегда. Их просто нельзя будет запустить. Сотни миллионов просмотров, лайки, 5-звёздочные обзоры, 1-звёздочные обзоры… всё исчезнет. Издателям этих игр, похоже, до лампочки. Насколько мне известно, и создатели этих игр не обсуждают проблему.
«Но кто-то наверняка захочет сохранить эти игры! Мы пока ни одной не потеряли навсегда! Ещё есть время!»
Побалуйте себя взглядом на мёртвую игру
La Insula de Sancho — это приключенческая трилогия, выпущенная примерно в 2005 году. В своё время она была очень популярна среди испаноязычных: сотни статей, скриншотов и даже пошаговых руководств для всей серии доступны в интернете. Но у их домена истёк срок действия, а поскольку игра запрограммирована на получение внешних ресурсов с указанного сервера, то теперь не воспроизводится практически ни в какой форме. Даже после тщательного поиска я не смог найти полной копии, в которую можно играть.
В ближайшие полтора года это может произойти буквально с любой флэш-игрой.
Проблема понятна, но лично я мало что могу с этим поделать. Это первая из причин, почему я начал писать эту статью — чтобы привлечь как можно больше внимания к проблеме. Учитывая, что мои попытки решить её в настоящее время являются единственными, о которых я знаю… ну, вы понимаете.
Вопрос в следующем: что делается, чтобы сохранить это почти неповторимое наследие видеоигр? Что известно об этом из практически любого источника? Ничего. Статья здесь и там, но часики тикают, игры постепенно начинают становиться неиграбельными, и, похоже, никто этим не занимается.
Представляем Flashpoint от BlueMaxima.
Начиная с версии 1.3.1
Объединив интерфейс LaunchBox и возможности веб-сервера Apache, Flashpoint представляет собой проект по сохранению флэш-игр, музей и коллекцию one-click-to-play в одном окне. Нужно только дважды щёлкнуть по любой игре в списке — и она откроется с локальной копии на жёстком диске, готовая для игры.
Игры с привязкой к домену? Игры, требующие наличия сервера? Игры с внешними файлами? Обо всех вариантах позаботились либо с помощью взлома игры (здоровья и долгих лет жизни создателю декомпилятора JPEXS Free Flash Decompiler), либо с помощью веб-сервера Apache, который заставляет игры думать, что они там, где должны быть.
Elephant Quest — одна из игр, которой веб-сервер нужен даже для запуска главного экрана
В конце концов, возникает только один вопрос: это законно? И единственный реальный ответ — никто этого не знает и никто не должен об этом думать. Игры находятся на грани исчезновения, и пока они ещё не умерли — их надо спасти как можно быстрее. И насколько мне известно, я действительно единственный, кто пытается это сделать.
На момент версии Flashpoint 1.3.1 сейчас 850 игр сохранены полностью и воспроизводятся в один или два клика. Около 20% из них пришлось или взломать, или запустить через веб-сервер, или загрузить внешние ресурсы, чтобы игра работала должным образом. Это даже близко не все флэш-игры в интернете: нужно гораздо больше усилий и немного удачи, чтобы приблизиться к этой цели.
Что насчёт остальных? Что насчёт тысяч и тысяч игр, до которых я ещё не добрался и не вылечил во Flashpoint? Десятки и десятки порталов, которые, возможно, ещё не скопированы должным образом через такие сайты, как Archive.org?
О боже, как я рад, что вы спросили об этом.
Порталы, порталы, разбирайте порталы! Большие, маленькие, у нас есть на любой вкус!
Всё это началось с того, что мы с ещё одним помощником, чьё имя для безопасности не буду называть, попытались создать резервные копии как можно большего количества порталов. Результатом этих усилий стал проект под названием Flashfreeze. SWF-файлы более двух десятков порталов, скопированных и сохранённых в каталоге Google Drive.
Эти копии не включают в себя внешние файлы, необходимые для нормальной работы игр. Так что вторая половина битвы — найти эти файлы, убедиться, что они сохранены, пока не настал конец. И конечно, игры всё равно нужно будет взламывать, чтобы они работали без серверов, в офлайне и без залочки на определённые сайты. Но это потом. В первую очередь следует по крайней мере сохранить файлы SWF.
Обновление 30.07.2018. Учитывая, что эта статья снова разошлась по интернету (а поскольку мне вчера исполнилось 25 лет, то это отличный подарок на день рождения, Интернет), я считаю, что лучше обновить её, а не писать новую. Вот список из нескольких пунктов:
- С момента написания этой статьи мы значительно обновили Flashpoint. Сейчас там более 4000 игр, новая система редиректа, которая помогает обойти залочки на определённые сайты и запускать серверные игры. Очень много людей помогли тестировать и поддерживать её.
- Теперь мы поддерживаем игры Shockwave, HTML5 и Unity. Эта серверная технология слишком хороша, чтобы ограничить её только флэшем. Flash-игры по-прежнему составляют 90% каталога, но у людей будет копия Cartoon Cartoon Summer Resort, чёрт побери!
- Мы выпустили кучу дополнительных файлов для скачивания на базе серверной технологии, коллекцию всех SWF-анимаций Newgrounds с фронтендом для их запуска, кучу «быстрых и грязных» резервных копий порталов и готовим ещё больше классных дополнительных фич.
- Мы стали популярны. Очень популярны. На нашем сервере Discord зарегистрировалось 1500 пользователей, а с нами связались многие флэш-разработчики, чтобы выразить свою благодарность. Когда разработчик VVVVVV выражает тебе благодарность за работу, ты понимаешь, что делаешь правильное дело.
- Полным ходом идёт архивация. У нас куча людей, которые знают своё дело — теперь лишь вопрос времени, когда мы сделаем резервные копии всего, что осталось.
- Практически не возникло серьёзных проблем. Я был наполовину уверен, что возникнут препятствия для нашего проекта, но похоже, что в данный момент всё чисто.
Вопрос только в том, где скачать программу и как присоединиться к проекту?
У меня работает сервер Discord: здесь принимаются запросы и взламываются игры с момента старта проекта несколько месяцев назад. Вы можете присоединиться и помочь. Здесь же распространяются новые версии Flashpoint по мере выхода.
Если хотите просто получить доступ к исходным файлам (чтобы убедиться в их работе для поддержки архива или просто поиграться 5 минут и забыть, как я делаю с бесконечным количеством вещей), вот некоторые ссылки:
- Последняя версия Flashpoint на нашем сайте
- Flashfreeze (заранее предупреждаю, что это два ТЕРАБАЙТА zip-файлов)
Убедитесь, что прочитали файл справки для Flashpoint, прежде чем играться с ним.
В конце статьи хочу просто прояснить одну вещь: не имеет значения, поддерживаете ли вы мои усилия для сохранения как можно больше этих игр. Имеет значение только то, что мы как сообщество предпринимаем попытку их спасти. Если никто не будет ничего делать, то очень серьёзный кусок истории может оказаться потерян навсегда. Слишком значительный, чтобы позволить ему исчезнуть. Игры заслужили большего. Гораздо большего.
Комментарии (24)
Astus
31.07.2018 13:15+1Отличная инициатива, сам часто задумываюсь над этим. Всё-таки Flash игры/мульты — это Эпоха. Приятная такая эпоха, ностальгически-ламповая. Недавно вот очень захотелось пересмотреть «Падонков in da flash» и «Joe Cartoon», а также сыграть в пару игр, одна из которых стильный тайм-киллер про набивание мяча курсором мыши под бодрые корейские(?) комментарии.
Ещё бы кто взялся за архивирование java и sis игр, там тоже столько добра и годноты, можно сказать полноценная игровая портативная платформа была. Очень жаль, если со временем всё это сокровище сгинет вместе с тематическими сайтами про них.Areso
31.07.2018 14:58Очень жаль, если со временем всё это сокровище сгинет вместе с тематическими сайтами про них.
Не «если», а «когда».
vesper-bot
31.07.2018 14:15+3Вот уже и Flash доросла до того, что ей потребовался эмулятор.
А я так и не допилил свою TD…
Jedi_Knight
31.07.2018 18:31Вот пилю, форк шамвея: github.com/pixijs/pixi-swf
ninja action demo: pixijs.io/pixi-swf/demos/ninja-cat.html
js code: pixijs.io/pixi-swf/demos/ninja-cat.js
Тема на петиции к adobe: github.com/open-source-flash/open-source-flash/issues/107
C момента последнего коммента я продвинулся сильно, но публиковать это пока не хочу, всё в рефакторинге.
Проект смотрит и в прошлое и в будущее.
Предполагается что те кто хотят спасти свои игрушки уж как-нибудь могут перевести их с AS3 на typescript, а дальше API будет тот же самый, но с доступом к WebGL и с возможностью использования рендереров типа pixijs и threejs в том же контексте. Опциональная VM чтобы проверить как работал старый AS3.
Самая задница это вектор. Никто не может сделать нормальный вектор. Транслировать язык, запустить AS в vm это всё можно, похожий API для спрайтов — как два пальца. Я даже производительностью сейчас ещё не занимаюсь, хотя она и выросла гораздо по сравнению с обычным shumway. Главное это качественно показать вектор загруженный из SWF.k0t0vich
31.07.2018 20:48k0t0vich.github.io/haxe/vdraconis/test-fps
это сгенерено из вектора, прям вот один в один.
Вот ещё тестик
k0t0vich.github.io/haxe/vdraconis/test-asset-manager
проект
github.com/vdraconisJedi_Knight
01.08.2018 03:21У меня в примере грузится swf и её контент добавляется на сцену. Было бы здорово сделать такой же пример на вашей штуке. Можно даже с той же swf-кой из ninja action.
k0t0vich
01.08.2018 03:23Давай в скайп в личку
k0t0vich
Но вообще у меня поход — сделать «на земле»
Но можно и на лету, хотя это будет дорого.
k0t0vich
31.07.2018 21:02Сделать вьюер для пикси из .ani формата не проблема. Просто пока не было нужды/заказа.
Сейчас есть 2 вьювера
— для starling (as3)
— для openFL (haxe — js таргет)
Конвертер написан на AIR — так проще парсить swf, ну и сам по себе AIR норм.
unxed
31.07.2018 20:04Онлайн казино в своё время тотально на флеше были. Было бы занятно выкачать, декомпилировать, и сделать опен сорс эдишн.
algotrader2013
01.08.2018 01:04С казино свои приколы есть. Производитель дает в аренду слоты под Х% от выигрыша + проходит сертификацию по ГСЧ. Но есть масса фирмочек, которые вскрывают клиент, доставая из него арт, и реверсят протокол общения с сервером, после чего пересобирают клиент, пишут свою реализацию сервера и ГСЧ, и в итоге делают слот, который «почти», как оригинал. Ну и продают его за, условно, 0.1-0.5Х, в зависимости от говняности реализации.
nafgne
01.08.2018 10:18Зачем на клиенте ГСЧ.
algotrader2013
01.08.2018 15:19Вообще незачем, все на сервере, конечно же. И проблема как раз в том, что никто из таких слотоделов не может понять реальные вероятности различных комбинаций, заложенные производителем (и может лишь эмпирически подобрать, чтобы +- давало выхлоп, как хочет заказчик)
valear
01.08.2018 10:10m1rko, спасибо за инициативу. В порядке здравого предложения — не запустить ли инициативу по сбору средств (продакханты, кикстартеры итп) на развитие проекта на полукоммерческой основе? Т.к. англоязычной аудитории она тоже была бы интересна. Если что — готов помочь с описанием / релизом в свободное время
NeoCode
Возможно будут попытки написать компилятор flash в wasm. Да нюансов много, но в целом это не должно быть принципиально невозможно.
lieff
Чисто вебный mozilla.github.io/shumway
Сишные www.gnu.org/software/gnash github.com/lightspark/lightspark
С+веб github.com/lieff/lvg
В медиа части флеша проблем в общем нет, основная трудность в ActionScript (их еще 2 версии несовместимых).
dreesh
А как же Haxe?
Aquahawk
если кратко, то никак. Если подробно — мне лень.
k0t0vich
Ну у меня получается)
А как твой генератор в TS?
Aquahawk
конвертер кода работает, с шамвеем упражняемся.
lieff
Имеется ввиду www.openfl.org который использует haxe.org?
В openfl из haxe программы используешь swf ассеты, которая потом транслируется в другие языки. Это не совсем флеш и поддержка swf там далеко не полная.
qark
Тред на форуме Adobe.
Инициатива по открытию спеков Flash с кучей ссылок, относящихся к вопросу.
kovserg
То что flash дошел до такого плачевного состояния — это заслуга Adobe.
Тем не менее он продолжает активно использоваться, не смотря на крики о его смерти.
Интересно wasm (очередная jvm только без «фатального недостатка») ждёт такой же финал или про него даже вспоминать не будут?