Русский
Русский
English
Статистика
Реклама

Adobe flash

Из-за отключения Flash железнодорожная сеть целого города в Китае вышла из строя на сутки

25.01.2021 16:17:27 | Автор: admin

Замена старых технологий на новые довольно редко проходит без проблем и забот. Чаще всего возникают инциденты. Сейчас, когда Adobe блокирует Flash по всему миру, у многих компаний и государственных организаций появляются проблемы.

Так, на целые сутки была отключена сеть железной дороги в китайском городе Далянь с населением 4,4 млн человек, поскольку большинство сервисов работало именно на Flash. И, конечно, за 24 часа китайцы никак не могли модернизировать свою сеть, несмотря на известную всем трудоспособность. Пришлось устанавливать старую версию Flash Player на все компьютеры, которые поддерживали работу железнодорожной сети города.

Почему так получилось?


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

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

12 января 2021 года компания Adobe начала блокировать Flash-контент по всей глобальной сети, и тогда же случился сбой в системе расписания и бронирования билетов в китайском городе. А если учесть, что население этого города почти 5 млн человек, становится понятно, насколько проблемным стало 12 января для сотрудников железной дороги и пассажиров.

Как все началось


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

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

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


Команда поддержки привозит резервные ПК с установленной старой версией Flash

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

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

Можно ли было избежать проблем?


Вообще да, поскольку еще в 2015 году компания Adobe начала информационную кампанию по подготовке пользователей, включая корпоративных, к отказу от Flash. Планировался постепенный переход на HTML5, причем в 2017 году Adobe заявила о намерении отказаться от Flash.

Крупные компании начали откат почти сразу после заявления Adobe. Так, корпорация Google постепенно отключала технологию в своем браузере, начиная с декабря 2016 года. Правда, окончательно компания отказалась от Flash лишь 31 декабря 2020 года.

Работала в этом направлении и Microsoft, которая тоже стала постепенно отключать поддержку Flash в своих браузерах с 2016 года. Полностью компания убрала технологию в Edge и Internet Explorer в 2019 году. Оставалась еще новая версия Edge на базе Chromium но здесь, по понятным причинам, отказ был реализован одновременно с Google.

Opera и Firefox отключили Flash 1 января 2021 года.

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

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

Почему вообще отказались от Flash?


У этой технологии очень много уязвимостей. Ликвидировать их все просто не представлялось возможным, поэтому Adobe решила просто разрубить узел. Уязвимости были и крупные, и мелкие. В 2014 году, например, специалисты Лаборатории Касперского обнаружили уязвимость, которая давала злоумышленникам возможность полного контроля над машиной пользователя. Причем она была актуальна для всех платформ, где использовалась технология, включая Windows, Mac, Linux.


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

Подробнее..

Перевод Как два интроверта сделали Portal на Flash

05.02.2021 16:09:35 | Автор: admin

В 2006 году, когда Valve анонсировала Portal, я самозабвенно болтал со своим другом Хеном Матшульски по MSN-Messenger.Valve в то время определяла нашу жизнь в смысле игр, а Portal не походил ни на что из того, что мы видели раньше. Взволнованный, нетерпеливый анонс подтолкнул нас к тому, чтобы в путешествии длиной в год сделать версию Portal на Flash ещё до того, как мы даже прикоснёмся к оригинальной игре.



Анонс Portal (2006)

Поддержка Flash официально прекращается 31 декабря 2020 года [прим. перев: оригинал статьи опубликован 22 декабря], после более чем десяти лет существования самого популярного инструмента для создания браузерных игр. Я подумал, что это хорошая возможность открыть какие-то старые резервные копии ресурсов и исследовать, как мы создали Flash-версию Portal, нашу первую игру. Я встретился с Хеном за пару лет до объявления на форуме Macromedia Flash. Мы уже давно хотели представить Newgrounds собственную игру и назвались We Сreate Stuff, потому что склонялись буквально называть что-либо вообще.






Portal: скриншоты геймплея Flash-версии

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

Удалёнка 2006


Нам было по 16 и 14 лет, мы были подростками-интровертами, общались через Интернет. Мы жили в 15 минутах езды на автобусе друг от друга, но никогда не встречались. Наша коммуникационная методология основывалась на текстах MSN-Messenger и небрежных рисунках.

MSN-Messenger был приложением для обмена мгновенными сообщениями с малоизвестным преимуществом, которое превращало его в супер-оружие. В сообщениях можно было рисовать; фича сделала мессенджер новаторским в смысле удалённой работы. Мы пользовались этой возможностью, чтобы объяснять друг другу, как должна работать определённая механика, как воспроизводить баги, и, самое главное, мы работали с ней, когда проектировали уровни.



Portal: первый эскиз уровня Flash-версии был сделан в MSN-Messenger

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

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

Следующий тест невыполним GLaDOS.

Делаем игру по трейлеру другой игры


В то время я экспериментировал с фрагментами кода ActionScript 2.0, которые нашёл в Интернете, имел дело с базовой физикой платформеров, элементами управления вводом и визуализации анимации. Хен переделал некоторые визуальные эффекты Portal в 2D, от анимации игроков до порталов и окружения в игре.

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

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

Берём и перетаскиваем порталы!

Хен делал первые черновики эскизов персонажа, объекты с интерактивностью и стиль уровня в целом. По сути, он занимался артом, от логотипа до покадровой анимации персонажа. Главный герой Portal, Chel, ещё не появлялся в трейлерах, но мы знали, что будем играть за своего рода подопытного, так что вместо Chel у нас был анонимный Test Subject #15837.

Прекрасная эстетика Portal воплотилась в живой, анимационный мир 2D. Уровни содержали несколько слоёв, чтобы создать ощущение глубины, и немного фоновой анимации. Хен решил подражать ортографической перспективе и при этом сделал порталы видимыми с любой стены. Сначала мы реализовали камеру слежения, но в итоге у нас появились уровни, которые всегда подходили к одному целому экрану от начала до конца.


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

Несмотря на время, которое мы потратили на это, мы были немного циничным дуэтом и не были уверены, к чему всё это приведёт. Достаточно ли 10 головоломок для хорошей флеш-игры? Может нужно 40? 100? Может, Valve попросит нас убрать уровни? Наши тревоги поутихли, когда мы глубже рассмотрели механику, например с кубической физикой. Физика 2D-куба, которую я реализовал, вероятно, могла бы посоревноваться за приз как самый медленный движок в мире. Он работал, и играть с ним было весело. Всё это вместе помогло стать игре не сторонним проектом, но целью для нас обоих.

2D-куб на уровне 26

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

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

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

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

Поздравляю! Испытание завершено GLaDOS.

Отправляем игру в Valve


Релиз Orange Box Valve, который содержал Portal, был запланирован на 10 октября 2007 года. У нас никакого расписания не было, у нас была одна установка: мы должны выпустить игру до релиза Orange Box. Незадолго до релиза мы отправили в Valve сообщение: Привет, мы сделали это. Тогда в Steam не было инди-игр, как сегодня, но там была одна флеш-игра Codename Gordon!

Теперь я понимаю, что разработчики Valve, вероятно, в октябре 2007 года работали над тем же самым, готовясь к выпуску Orange Box. Иначе бы холодное фанатское письмо, которое мы отправили, не привлекло бы ничьего внимания.

P.S. Прекрасным дополнением к публикации станет небольшой пост на Хабре: Portal: The Flash version, который аж в далеком 2008 написал falone. В этом посте вы найдёте ссылку на сайт разработчиков и, уже на этом сайте, 40 карт уровней в архиве rar.



image


Подробнее..

Из песочницы Как в 30 лет стать старым и никому не нужным на примере разработки квеста

24.10.2020 20:17:25 | Автор: admin
Всем привет. Хочу поделиться своей историей, а именно историей немного затянувшейся разработки простенького pointandclick квеста.

Your browser does not support HTML5 video.

Флешбэки


Мне 21, я молод, работаю в рекламном агентстве веб-дизайнером. Денег хватает на съём жилья и дошик, но я не унываю, ведь это моя первая работа.

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

image

Он играбелен и сделан полностью самостоятельно это очень сильно мотивирует на подвиг.

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

image
Комп, планшет и один из рабочих моментов. 2012 г.

Первый облом на компе 2 ГБ оперативы, он не тянет Flash и Photoshop одновременно открытыми. Докупаю ещё 2 гб, дело пошло.

Очень нравятся Машинариум и Samorost, я прямо влюблён в их визуальное и звуковое оформление. Вдохновившись, через пять месяцев работы выпускаю свою первую игру Shapik: the quest, квест моей мечты.


Ничего умнее названия Shapik я не придумал, герой в шапочке Шапик.

Немного деталей разработки


Рисовал с помощью планшета Wacom Bamboo A5. Это был первый опыт реального рисования, до этого использовал его для веб-макетов. Фоны фотошоп, персонажи и анимация флеш.

image

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

90% звуков взял с freesound.org, остальные записывал сам. Обрабатывал в Adobe Audition. В игре получилось больше 100 звуков.

Поиграть можно тут (flash).

Игра готова, теперь её нужно продать. В то время флеш-игры активно продаются на FGL(флеш-аукцион). Заливаю игру, аукцион длится три недели, я очень переживаю и радуюсь каждой новой ставке. В один момент приходит предложение, которое равно годовой зарплате в агентстве. Я очень рад, прямо на вершине от счастья.

Случайно наткнулся на FlashGAMM (конференция разработчиков) и отправил игру на конкурс. Так как мероприятие проходило в Москве, у меня не получилось его посетить и, по правде говоря, я не надеялся, что моя первая игра может что-то взять.

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

image

20132015 годы

На волне успеха флеш-квеста нахожу программиста и мы с ней клепаем физические пазлы-платформеры один за другим.

image

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

image
Скриншот с FGL, 3300 долларов за простой платформер

С 2015 года флеш, а вместе с ним и веб-игры постепенно уходят на задний план. Вместо флешек пришли игры на HTML5, они намного примитивные, а продаются в два раза лучше. Пилим милые пазлы.

image

Также в этот период из флеша все массово бегут на мобилки.

Вспоминаю, что когда-то у меня вышел вроде бы неплохой квест, и чтобы не отставать, портирую его на Android с помощью Adobe AIR. Благо, что всё портирование обошлось нажатием одной кнопки publish.

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

image

Android-устройства у меня нет, в магазин совсем не заглядываю. На одной из вечеринок друг достаёт Samsung Galaxy S5 на тот момент аппарат с космической диагональю и нереально крутым дисплеем. Думаю, дай-ка я взгляну, как там дела у моего мобильного детища, и к своему удивлению обнаруживаю за месяц 35000+ инсталлов и больше 800 комментов. Я шокирован.

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

Shapik: the quest 2, 2015 год


Общая история о ядерной войне и её последствиях появляется очень быстро.

Буквально за три дня на флеше собрал первый уровень.

image

Также нарисовал нового главного героя. По сравнению со старым у него появилось нормальное тело, голова и шея. Старый был, как сосиска.

image

Игра идёт в Full HD и простой флешик уже не справляется с нагрузкой. Нужно переписывать на GPU (starling). Я совсем не программист, пишу пост на геймдев.ру о поиске напарника.

Отписалось пять человек, первый не отвечал, связался со вторым и все завертелось.

Остаток 2015 года программист учится работать с GPU-флешем, я учусь рисовать и анимировать

2016 год


Хоть у нас совсем нет опыта, разработка идёт бодренько, мы созваниваемся и обсуждаем новые идеи, доработки. Я прям чувствую, что мы одна команда.

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

Работало это примерно так.

  • Обсуждаем новую концепцию уровня или головоломку;
  • Зачастую программист рисует его схематически;
  • Описываем ветки и анимации.

image

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

В активной разработке проходит год.

У нас готово 12 уровней и демо, это уже вдвое больше, чем у первой части. Заливаю в Steam Greenlight, зеленый свет получаем в течение двух недель.

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

image

2017 год


Прорабатываем сюжет. У программиста это отлично выходит.

Добавляем промежуточные уровни, катсцены, новые анимаци.

Составляющие для анимаций рисую в фотошопе, анимирую во флеше, эффекты покадровый флеш.


В команду добавляется композитор/саунддизайнер.

Появляется атмосферный саундтрек, а также крутейшие звуковые эффекты.

Игра ощущается с новой силой.

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

image
Пример дизайна одного непродолжительного звука

image
Опять релиз немного переносится

2018 год


Квест готов на 80%, финализированы и озвучены практически все уровни, не хватает катсцен, блокнота подсказок, а также главного меню.

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

image

В процессе придумывается меню на отдельных листах бумаги, оно прикольно смотрится, а самое главное в нём нет никакого текста.

image

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

2019 год


Начало 2019-го. Игра готова и проходится от начала до конца, но нормально не протестирована, присутствуют мелкие баги, а также не добавлены некоторые бонусы. Мы в каком-то повисшем состоянии: вроде бы вс` готово, а вроде бы нет.

HTML5 и флеш-игры не продаются совсем. В период разработки Shapik: the quest 2 все мы параллельно работали над другими проектами, за счёт которых было, на что жить и продолжать разработку.

Программист уходит в офис. Я хоть и был настроен оптимистично, но понимал, что так, как раньше, уже не будет.

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

Правки вносятся по выходным, иногда простой по две недели. Я разбит и расстроен, такими темпами это всё затянется ещё на пару лет.

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

Редактор это отдельная история. Разрешение игры 1920x1080, а окна редактора 600x550. В таком маленьком окне приходится очень много двигать камеру, и он ужасно тормозит. Ко всему прочему в нём нет отмены если что-то запорол, спасёт только последнее сохранение.

image
Окно редактора 600x550

Редактор умеет открывать и проигрывать.gaf-анимации, которые потом расставляются на сцене. После того как весь арт и анимашки расставлены, нажимаем сохранить и получаем нереально длинную строку с параметрами, которую нужно перенести во флеш-девелоп, а потом скомпилить

image

Если что-то сдвинулось повторяем операцию. Правка какой-то мелочи занимает тонну времени.

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

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

image

Композитор также завален работой, озвучивание останавливается.

Обновил все уровни, собрали новую демку. Пришло время готовить тизер для игры.

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


image
Монтаж After Effects

Понимаем что в названии Shapik: the quest 2 нужно избавляться от 2, новое название Shapik: the moon quest.

Издатели.Кто это и как с ними работать, не имею понятия. Нашёл классную статью о том, как питчить игру. Следуя ее советам выходит вот такое письмо.

image

Отправляю по списку всем. Из 60 ответили 20, реально заинтересованных 5, отвечают раз в неделю.

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

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

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

image

Перед походом скидываю список правок.

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

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

Нужно что-то менять, настало время офиса


image

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

Мне быстро отвечают и скидывают тестовые задания. Выполнил, зовут на собеседование.

В один день совпало два собеседования. Из моей деревни до Киева 10 часов на поезде. Поезд приходит в 8 утра, первое собеседование на 11.

image
Вперед на собеседование!

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

В 9 утра приходит сообщение.
Доброе утро,

вынуждены сообщить, что мы не можем принять вас на собеседование, вы не подходите по возрасту.

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

Что это за ответ и что это за бред

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

GG 2
Я в полном недоумении, собеседования закончились, не успев начаться. Оказывается, я старый и никому не нужный.

image

Медленно волочусь по Андреевскому спуску. Захожу в какую-то кафешку и встречаю старого знакомого. За бокалами пивка день перестает быть грустным. Поезд назад в 21: 00.

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

По прибытии домой моё чувство беспомощности усиливается в пять раз. Оказывается, в свои 30 лет я очень старый.

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

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

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

2020 год


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

В игре 22 уровня, 60 минут игровой музыки, более 1000 уникальных анимаций и звуков.

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

Подводя итоги хочется сказать об ошибках которые мы совершили.

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

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

В целом очень забавно, что трое левых чуваков с флеш-форума смогли закончить игру.
P.S. Планы на будущее:

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

Еще немного атмосферных фото

image
Подробнее..

Китайцы создали сразу две альтернативы Flash, потому что не могут отказаться от технологии Adobe

28.01.2021 22:20:35 | Автор: admin

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

В общем, китайцы нашли оригинальное решение решили сделать свой Flash. И даже не одну технологию, а сразу две. Так, разработчики дистрибутива UOS создали альтернативу с названием ReFla, у которой, по их словам, все хорошо с безопасностью и стабильностью работы. А партнер Adobe в Китае выпустил оригинальный Flash Player, доработав его в плане безопасности.

Что там с альтернативами?


Что касается ReFla, это эту технологию разрабатывает компания Union Tech, создатель государственного дистрибутива Linux-ОС Unity (Unity Operating System, UOS).

Когда началась разработка, непонятно, но, скорее всего, еще до того, как Adobe заблокировала свою технологию. Напомним, что это случилось 12 января 2021 года. Но компания заблаговременно предупреждала всех, сообщив о намерении прекратить поддержку Flash еще в 2017 году.

ReFla, как сообщают разработчики, является собственной технологией Union Tech. О различиях с оригиналом компания пока не сообщает, но зато с гордостью рассказывает о преимуществах перед Flash. Всего их четыре:

  • Стабильность.
  • Безопасность (нет проблем, характерных для Flash).
  • Пониженное потребление системных ресурсов.
  • Не зависит от технологий США, это китайская система.

И это еще не все. Дело в том, что ReFla работает не только на x86-совместимых системах, но и на чисто китайских. А именно тех, что базируются на китайской архитектуре Loongson. Она становится все более распространенной в поднебесной например, на ней основаны чипы 3A4000 и 3B4000. Они используются в потребительской технике, серверах и сетевом оборудовании.

А еще оригинальный Flash, только лучше


Как и говорилось выше, в Поднебесной готовят сразу две альтернативы. Вторая это оригинальная Flash, которую доработал китайский партнер американской Adobe, компания Zhong Orange Network. Так, на момент прекращения поддержки плеер Flash шел с индексом 32.0.0.465. А вот китайцы выпустили Flash Player 34.0.0.92.


В числе прочих улучшений повышенная безопасность и все та же стабильность работы, о которой говорят и создатели ReFla. Важный момент Flash Player 34.0.0.92 вышел до завершения поддержки собственной технологии компанией Adobe. Релиз же ее состоялся 12 января 2021 года, как раз тогда, когда оригинальный плеер начала блокировать американская компания.

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

Больше альтернатив нет?


Есть, только это уже не китайская разработка. Проект Ruffle разрабатывается энтузиастами, насколько можно понять, это некоммерческий проект. Базируется он на языке Rust, а использовать его можно как в качестве самостоятельной программы, так и в виде плагина, устанавливаемого при помощи Webassembly. В общем-то, эта технология эмулятор оригинального Flash-плеера. Сейчас код проекта можно найти на Github, опубликовали его на условиях лицензий Apache 2.0 и MIT.

Несмотря на то, что проект, можно сказать, хоббийный, ему выделяют средства. В первую очередь, это The New York Times и развлекательная площадка Newgrounds.

В отличие от китайских технологий, эмулятор только начал развиваться. Сейчас он поддерживает только Flash-контент, который был запущен еще до 2006 года. Так что смысла использовать Ruffle пока особого нет. Разработчики написали, что поддержка языков Action Script 1 и 2 обеспечена на уровне 70%, а API 35%. Что же касается третьей версии, которая появилась в 2009 году, то она и вовсе пока не поддерживается от силы реализовано около 5% ее возможностей.

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

Зачем такие сложности?


В Китае и многих других странах многие технологии завязаны на Flash, с которой годами интегрировались различные сервисы и сайты. И когда 12 января 2021 года компания Adobe начала блокировать Flash-контент по всей глобальной сети, в системе расписания и бронирования билетов в китайском городе случился сбой.


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

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

А вот налоговая служба ЮАР (South African Revenue Service, SARS) решила вообще создать собственный браузер с поддержкой Flash. Проблема в том, что сайт службы работает на базе заблокированной технологии, включая сервис подачи налоговых деклараций. Так что если бы работа этих сервисов прекратилась, у налоговиков сразу же возникли бы очень серьезные проблемы.


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

Это гораздо менее универсальный вариант, поскольку, в отличие от китайских технологий, браузер может работать только под Windows. Ни Linux, ни Mac он не поддерживает.

Подробнее..

Microsoft начала принудительно удалять Flash Player из Windows 10

18.02.2021 04:04:18 | Автор: admin

Компания Adobe отключила Flash Player в начале этого года. Но нашлись пользователи, которые стали искать выход для того, чтобы оставить плагин в работоспособном состоянии. Теперь к активной борьбе с Flash подключилась и Microsoft.

Корпорация начала поэтапное развертывание обязательного накопительного обновления, выпущенного в начале февраля этого года. В состав обновления входит патч KB4577586, который как раз и удаляет Flash из операционной системы. Убираются все компоненты для воспроизведения анимации по технологии Flash.

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


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

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

Если нужен Flash, то выход есть



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

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

ReFla работает не только на x86-совместимых системах, но и на чисто китайских. А именно тех, что базируются на китайской архитектуре Loongson. Она становится все более распространенной в поднебесной например, на ней основаны чипы 3A4000 и 3B4000. Они используются в потребительской технике, серверах и сетевом оборудовании.

Кроме того, партнер Adobe в Китае выпустил новую версию оригинального Flash Player, значительно доработав его. В числе прочих улучшений повышенная безопасность и все та же стабильность работы, о которой говорят и создатели ReFla. Важный момент Flash Player 34.0.0.92 вышел до завершения поддержки собственной технологии компанией Adobe. Релиз же ее состоялся 12 января 2021 года, как раз тогда, когда оригинальный плеер начала блокировать американская компания.

Подробнее..

5 причин грустить из-за смерти Adobe Flash

04.12.2020 06:16:09 | Автор: admin

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

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

Но сейчас речь пойдёт не о том что я считаю большой проблемой, а о том что будет вызывать у меня грусть. И сейчас я расскажу о 5 причинах для грусти из-за смерти Adobe Flash.


  1. Yetisports

Yetisports не является первой флэшовой-игрой тайм-киллером, но именно она подсадила огромное количество людей на эту заразу.

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

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

Тем не менее, ссылка тут - http://yetisports.org/pingu-throw-game-1

  1. Orisinal

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

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

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

Плеер с музыкой здесь - http://www.ferryhalim.com/orisinal/g3/pig.htm

Ну а для любителей зимних игр на свежем воздухе у Orisinal есть игрушка, которую моя будущая жена в 2004 году описала словами "добрая такая"

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

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

Любители посетить зимний каток не слезая с тёплого дивана могут воспользоваться ссылкой - http://ferryhalim.com/orisinal/g3/snowbowling.htm

  1. Nitrome

Старый создатель флэшовых игр из середины нулевых. Когда мне хотелось головоломок я шёл именно туда.

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

В целом, достаточно добротная, но не муторная головоломка.

Помочь викингам воссоединиться с коллегами по бизнесу можно тут - http://www.nitrome.com/games/icebreaker/

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

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

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

В данной серии есть три города: Москва, Токио и Нью-Йорк.

Разрушение можно начать с любого из городов - http://www.nitrome.com/games/rubbletroublemoscow/

  1. Miniclip

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

И хотя на тут тоже есть головоломки от Nitrome, но я предпочитаю не смешивать и играть на Miniclip в что-нибудь такое от чего может затрещать клавиатура и вырваться нарастающий вопль "а-а-а-А-А-А-А!!!!". Даже в головоломках, да.

Это не позитивный снежный ком от Orisinal и не вдумчивые викинги-отморозки от Nitrome. Это какой-то хренов шарик который скатывается непонятно как, и управляется от только кнопками, направление которых не совпадает с направлением наклонных поверхностей в игрушке.

Обычно у меня не хватает терпения в это доиграть, я бросаю всё и иду в классическую стрелялку.

Мастера нажатий на стрелки могут погемороиться тут - https://www.miniclip.com/games/gyroball/ru/

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

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

Реально позволяет отдохнуть и убить пару часов и пару сотен да всех кто прибегает/прилетает/приползает в видимую часть игры.

Любители почитерить могут выдрать ссылку на swf и открыть его отдельно. Таким способом, в некоторых игрушках можно увидеть будущие мишени ещё до того как они вбегут в официальное "поле боя".

Подробно описывать не буду, разбирайтесь сами - https://www.miniclip.com/games/commando/ru/

  1. Onslaught

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

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

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

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

Чтобы влипнуть в Onslaught прямо сейчас, достаточно кликнуть сюда - http://onslaught.playr.co.uk/

Даже если вы увлечётесь слишком сильно, 1 января 2021 года компания Adobe убьёт Flash и спасёт вас.

З.. Можете оторваться напоследок, а я пойду искать способы и дальше просматривать swf-файлы с каталогами производителей бензопил, скачанные 5-10 лет назад. Ну и немножечко погрущу по игрушкам с которыми когда-то провёл много отличных дней, вечеров, ночей и даже утр.

Подробнее..

Как и ожидалось, в полночь Adobe Flash превратился в тыкву

12.01.2021 04:18:24 | Автор: admin

Наступило 12 января 2021 года и в Adobe Flash Player сработала таймбомба. При нажатии на картинку перебрасывает на https://www.adobe.com/products/flashplayer/end-of-life.html

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

Да, принудительное отключение Flash это не только отсутствие возможности поиграть в старые игрушки или пересмотреть Масяню в оригинале, а ещё и вот это - отсутствие возможности прочитать книжки изданные задолго до появления этой технологии.

Многие старые сайты уже никто не будет переделывать, а залитые в интернет сканы в формате swf не будут пересканировать и перезаливать.

Не знаю как вы, а я снова к букинистам.

Подробнее..

De-Flash Как вы справляетесь?

02.03.2021 16:05:07 | Автор: admin
Как всем известно, компания Adobe отказалась от поддержки и выключила flash начиная с 1 января 2021 года. Росбанк активно сотрудничает с компанией SAS крупнейшей в мире частной IT-компанией, специализирующейся на разработке решений и услуг в области бизнес-аналитики. Большинство продуктов SAS используют flash-зависимые компоненты, которые так и или иначе должны быть заменены на flash-независимые или требуют миграции данных на другое ПО, которое уже не использует flash. Сегодня мы хотим рассказать, как мы решали эту задачу, и узнать у сообщества, как аналогичная задача решалась в других компаниях.





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

Второй шаг вполне возможно использовать как целевое решение использовать браузер Maxthon 5 с выключенным 80 портом и забыть про необходимость дефлэшатизации. Решение выбрано в связи с особенностью версии браузера, который не будет обновляться сам (финальная версия) и использует 27 версию flash-плеера, который также обновляться уже не будет.

Третье и самое затратное это обновление ПО до flash-независимой версии. Такая задача потребовала усилий со стороны вендора SAS, со стороны команды внедрения ООО Глоубайт и со стороны команды IT банка. Со стороны вендора необходимо было переработать flash-зависимые модули на HTML5 и предоставить инструмент для обновления существующих экземпляров системы. Со стороны команды внедрения выбрать стратегию обновления и проработать план с учетом особенностей внедрения и его кастомизации. Со стороны команды IT согласовать подход с бизнес-заказчиком и обеспечить выполнение работ на производственных средах.

Для продуктов SAS существует два варианта обновления системы. Первый это update-in-place. По сути, это большой патч для платформы SAS с обновлением продуктов, который устанавливается на существующую рабочую среду. Разумеется, что первая установка производится на непромышленных стендах: здесь может потребоваться и провести слияние кода в кастомизированных частях продукта, если такие кастомизации были, и провести регрессионное тестирование. И только следующим шагом будет обновление пред-промышленных и промышленных стендов.

Однако update-in-place возможен не всегда: например, когда продукт эволюционировал и новая версия построена на другой архитектуре и другом техническом стеке. В этом случае необходима полноценная миграция на новую версию ПО это второй вариант обновления ПО SAS.

И именно в такой ситуации оказалось решение SAS AML. Наше достижение последних лет запуск и реализация первой очереди масштабного проекта по построению AML системы для департамента финансового мониторинга. Особенностью данного проекта является то, что это первый проект в банке, в рамках которого в полной мере были задействованы возможности новой платформы онлайн-обработки данных ODPP. В ходе первой фазы были реализованы требования обязательного контроля и отчетность. С конца 2019 года запущена вторая фаза проекта, предполагающая развитие функционала в области выявления сомнительных операций и online-контроля. В промышленном режиме работает версия SAS AML 6.3 на платформе SAS 9.4 M3, а новая версия решения SAS AML 8.2 представлена на обновленной платформе SAS Viya 3.5. Новая платформа построена на новой микросервисной архитектура и включает в себя новые продукты, поэтому при миграции на новую версию одну часть функциональности необходимо адаптировать, другую реализовать заново.

Цель, которая перед нами стояла, выполнить задачу по дефлешезации и выдержать строки второй фазы проекта. Для системы SAS AML выбрали последовательную миграцию в два этапа.
На первом этапе необходима миграция flash-зависимых модулей, что позволит снять острую проблему и уйти от заморозки браузера. Основной модуль, требующий дефлешезации, это SAS Visual Analytics инструмент для создания и визуализации аналитических и управленческих отчетов. Помимо выделения нового оборудования и развертывания новой версии SAS VA 8.5 на платформе SAS Viya 3.5, потребуется решить несколько обязательных задач, таких как интеграция решений и настройка ETL-процессов, так и ряд задач, обеспечивающих прозрачность и удобство работы пользователей, например, настройка сквозной аутентификации (single sign-on), чтобы избежать повторного ввода данных. В следующем этапе полная миграция на новую версию решения SAS AML 8.2: с переносом полной функциональности системы, настройкой интеграций, запуском новой системы в опытно-промышленную эксплуатацию и поддержкой существования двух систем на переходный период.

Коллеги, поделитесь опытом: как вы справились с задачей De-Flash?

Автор статьи @DSSD
Подробнее..

Поиск альтернатив для Flash Player на примере реального проекта

18.12.2020 16:04:56 | Автор: admin
Надпись Поддержка Flash Player будет прекращена в декабре 2020 года в браузере способна вызвать различные эмоции у пользователей, начиная от облегчения, что де уязвимости решены, до осознания некоего предательства со стороны технологических гигантов. Первые, возможно, пострадали от вируса, некогда внедренного на сомнительном сайте, последние же вынуждены прикрывать проект, почти полностью зависящий от этой технологии.
В начале 2016 года, когда перспективы Flash все еще были радужными, автору этой заметки пришла идея реализовать контент сайта с применением встраиваемых SWF-роликов. К тому времени уже были звоночки, наподобие претензий Стива Джобса к Adobe в 2010, заключающиеся в том, что проприетарный продукт не достоин быть внедрен в проприетарные ОС. Здесь должен быть ироничный смайлик. В то время мобильный трафик не был таким заметным (а трава зеленее) и всерьез такие заявления мало кто воспринимал.

Тем более Flash использовался на многих сайтах, играх, в десктопных приложениях и видео-/аудио- проигрывателях. Сфера его применения была очень разнообразна, а уровень вхождения в ActionScript 2 на уровне детских эмуляторов программирования. После AS 3 все стало серьезно и многие стратегические игры в соцсетях того времени это подтверждают. Помянем их вместе с флешом. Ладно, не будем о плохом.

Действительно, у владельцев сайтов было достаточно времени, чтобы что? Перейти на HTML5, WebGL и WebAssembly. Опишу ситуацию подробнее. Есть два сайта, на одном более сотни flash-роликов, на втором же их около полутора тысяч. Это небольшие ролики, включающие в себя анимацию, навигацию и прочие необходимые причуды. Почти все они сделаны руками. Сказать, что мне было жаль с ними расставаться ничего не сказать. Но мысль о том, чтобы конвертировать их все в HTML5, как рекомендовалось, казалась безумной. Ни один протестированный мною конвертор, декомпилятор или встроенный в программу Flash метод не давал необходимого результата.

Стоит учесть, что мало было перевести проект на современные аналоги, его еще нужно развивать и обновлять. С Flash это мог делать обычный дизайнер, c HTML5, WebGL и WebAssembly нужна как минимум парочка программистов. Инди-проекты после такого могут только отдыхать.

В 2017, когда был объявлен закат Flash, удалось переделать некоторую часть анимационных роликов обычными средствами разработчика плясками с оленьим черепом и бубном. Используя декомпилятор, эти ролики оптом были разобраны на ресурсы покадрово, а затем при помощи самописного js-проигрывателя все это более-менее загружалось и работало. Плюсом было то, что они заработали в мобильных браузерах. В силу специфики сайтов последнее мало что давало, но зато поддерживался тренд. Но это только для анимации, там, где поддерживался интерактив, все сложнее.

Небольшое отступление на этих сайтах имитируется работа определенной графической программы, где вместо выполнения команд дается их описание. Например, по 3DS Max уже существовал официальный учебник, но не настолько интерактивный и удобный, чем упомянутый ранее (как его автор, могу преувеличить достоинства). Забегая вперед, в официальном учебнике тоже были флеш-ролики, и перед написанием этой статьи заглянул в него, чтобы узнать как решена проблема. Она решена очень оригинально большая часть их просто выпилена, остальные переконвертированы в видео.

Итак, какие общие решения могут быть использованы после декабря 2020?

Во-первых, так как в последние версии Flash Player вставлен таймер работоспособности, делая его простым смертным, то необходимо найти версию, где такого таймера нет (v32.0.0.371) и предложить установить пользователю. Здесь проблемой может быть то, что ссылки на такие версии планомерно удаляются производителем с сайтов. Поэтому давать ссылку на скачивание вкупе с предложением установить возможно уязвимый устаревший продукт, такое себе. Способ может быть актуальным только для десктопных приложений.

Во-вторых, можно перекомпилировать в поддерживаемый видеоформат, как упоминалось ранее. Однако не всем Flash-роликам, особенно интерактивным, это подойдёт.

В-третьих, обратиться к готовым решениям (не упоминая заброшенные GNU Gnash и Mozilla Shumway). Ранее была надежда, что они появятся, ближе к прекращению деятельности Flash Player. И они появились. Хорошее решение это Ruffle, пока что единственное подходящее из найденных. Поддержка только AS 1/AS 2 на 70%. Он бесплатно распространяемый, лицензия MIT/APACHE. Из недостатков некрасивое оформление и некоторые глюки воспроизведения, которые мне удалось исправить при размещении на сайте. Установка очень удобная, вставляется JS-скриптом. По сути Ruffle Player это эмулятор Adobe Flash Player, написанный на языке Rust. Проект может собираться как в форме отдельного приложения, так и компилироваться в формат WebAssembly для встраивания на web-страницы в изолируемом окружении браузера. Это оказалось решением для моей проблемы и ещё многих разработчиков. Стоит только упомянуть, что разработчики Ruffle сотрудничают с archive.org для сохранения возможности просмотра архивных страниц с Flash-контентом.

Почему же Adobe не выпустило свою версию проигрывателя типа Ruffle, как только запахло жареным? Об этом можно только догадываться. Но скорее, появятся достойные аналоги и нужно только их дождаться, переждав блокировку на том, что есть. Так что смерть старым флешкам в вебе объявлена преждевременно. По крайней мере 2021 год все еще дает надежду.

Ссылки на ресурсы:

Ruffle ruffle.rs
Упомянутые переделанные сайты (для общей картины): 3dsmax-book.ru, rhino-book.ru
Подробнее..
Категории: Flash , Adobe flash , Adobe flash player , 2021

Перевод Как я модернизировал свою Flash-игру

14.08.2020 12:15:32 | Автор: admin

В этом посте я расскажу о том, как перенёс свою Flash-игру Frog Fractions на современную платформу. В результате я создал частично автоматизированный порт на Unity при помощи Haxe. Пост будет интересен всем, кто пытается модернизировать свою кодовую базу на Flash. В посте будут приведены спойлеры о структуре Frog Fractions: Game of the Decade Edition и её DLC Hop's Iconic Cap.

После того, как игре Frog Fractions 2 не удалось сделать меня богатым, я примерно год занимался работой по контракту и скетчами/прототипами. Потом моя жена забеременела, и я решил, что настало время найти настоящую работу, чтобы можно было содержать семью. Перед началом GDC 2018 я опубликовал твит о поиске работы, надеясь найти на конференции нужных людей. Я прошёл собеседования в нескольких местах, но самым важным стало то, что мне удалось найти финансирование для своего следующего проекта.

Проект был таким: спрятать следующую игру Frog Fractions внутри Frog Fractions 1 и продать её в Steam.

Frog Fractions состоит примерно из 13k строк кода на Actionscript 3 и собрана с помощью компилятора Flex. Я прикинул, что после добавления нового контента ремастера объём утроится, примерно до 40k строк кода. (И моя оценка оказалась довольно точной получилось 28k кода на C# и 3k строк скриптов катсцен/деревьев диалогов в дополнение к оригинальной игре.)

Я рассмотрел несколько возможных вариантов дальнейшей работы:

  • Продолжить писать игру на AS3 и собрать её с помощью Adobe AIR. Это был самый простой способ, но он имел несколько важных недостатков:
    • Frog Fractions имела программный рендеринг и создавалась под разрешение 640x480. При более высоком разрешении картинка становилась очень некрасивой. Такое ограничение было вполне приемлемым для браузерной игры в 2012 году но, скорее всего, в 2020 году в Steam никого не устроит.
    • Flex уже начал выдавать ошибки памяти, когда кодовая база оригинала игры превысила 10k строк кода, если я не делал полной пересборки. Сломается ли всё окончательно при 40k строк? (Специалисты говорят, что нет, и что мне достаточно настроить флаги компилятора.)
    • Flash уже находился при смерти. Будет ли вообще существовать AIR в 2020 году? (Оказалось, что он жив и хорошо себя чувствует! Прекратилась поддержка только браузерного плагина.)
    • Я подумывал о том, чтобы когда-нибудь перенести игру на консоли. Люди выпускали целые игры, полностью созданные в Scaleform (The Banner Saga, Road Not Taken), но было непонятно, будет ли жив Scaleform или что-то подобное в 2020 году. (Оказалось, что в 2018 году Autodesk прекратила продажи Scaleform, а все обсуждения о его замене касались только самой притягательного его аспекта дизайна UI.)
  • Встроить в мою игру Flash VM и перехватывать её код ввода-вывода. Существуют виртуальные машины Flash с открытым исходным кодом, но ни одна из них не показалась мне доступной или достаточно готовой для моего проекта. Сегодня я слышу хорошие отзывы о Ruffle. Возможно, она неплоха?
  • Портировать игру на C#/Unity. Потребуется куча ручного труда и довольно скучная работа по запуску игры.
  • Собрать два исполняемых файла: загружать игру на Flash, а когда игрок доберётся до нового контента, переключаться на Unity. Я представлял, что как-нибудь заставлю два исполняемых файла выполнять отрисовку в одном окне. Уверен, что это реализуемо, но, вероятно не из Unity, и подобные вещи обычно очень хрупки и обязательно ломаются при следующем обновлении Windows. (Если бы сегодня к моей голове приставили пистолет и заставили это сделать, то я, вероятно, открыл бы TCP-соединение между двумя процессами и передавал бы по нему видео. У Flash имелась хорошая поддержка воспроизведения видео, и я уверен, что существует плагин Unity, выполняющий кодирование видео.)
  • Портировать игру на Haxe и OpenFL. Есть инструмент под названием as3hx для преобразования кода на AS3 в очень похожий код на Haxe, а OpenFL пытается стать спасательной капсулой для Flash API. Я с неделю поигрался с OpenFL и пришёл к выводу, что на то время он был недостаточно завершённым.

Хочу здесь подчеркнуть, что все эти подходы основывались на том, что Frog Fractions по своей сути была программой,, которую я писал для компиляции в SWF. Не могу судить, насколько моё решение применимо к вашей игре, если она является таймлайном анимации Flash, интерактивность которой обеспечивают скрипты.

Я поспрашивал советов о том, как мне двигаться дальше, и самый полезный мне дал Ларс Дусет, кроме прочего сообщивший, что у Haxe есть C#-бэкенд и его целевой платформой может быть Unity. Ещё он посоветовал мне сначала придумать рабочий процесс и портировать с его помощью небольшой проект.

(Примечание для себя: добавить Ларса Дусета в титры игры. Я не мог представить, насколько сильное влияние он оказал на прокт, пока не стал перечитывать нашу переписку.)

Спустя неделю экспериментов мне удалось запустить Frog Infarctions (игру, которую я написал 0-hour game jam Соса Сосовски) в редакторе Unity. Результат был неидеальным, но его оказалось достаточно, чтобы понять возможность реализации, поэтому я начал работу над основным проектом.

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

  • С помощью as3hx преобразовать код с AS3 на Haxe.
  • При необходимости вручную подчистить созданный as3hx код.

После этого итеративно выполнять следующие операции:

  • Портировать кодовую базу на Haxe, чтобы использовать Unity API вместо Flash API.
  • Использовать C#-таргет языка Haxe для компиляции кода Haxe на C#. Если сообщить Haxe, где находится UnityEngine.dll, он вытащит API оттуда и их можно будет вызывать из кода hx. То же самое можно проделать при помощи Assembly-Csharp.dll с кодом на C#, написанным для проекта.
  • Выполнить сборку и протестировать в Unity.

Первая неделя работы была очень утомительной, приходилось подчищать выражения, которые as3hx помечал как противоречивые, устранять добавляемые им ошибки компилятора и разбираться с вызовами ввода-вывода. Устранение ошибок в Haxe неидеально, поэтому при каждой попытке сборки возникало около 30 ошибок, как бы я ни старался, поэтому я понятия не имел, насколько близок к завершению, пока всё не компилировалось без ошибок. Кроме того, мне кажется, as3hx это транслятор типа поиск и замена, а не настоящий транспайлер с переводом в AST и обратно, потому что он, похоже, добавляет такие ошибки, как расположение кода с неправильной стороны от скобок, когда в моём управлении потоками используется специфический стиль скобок.

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

На этом этапе код компилировался и запускался в движке Unity, но без ввода-вывода. Следующим шагом стало воссоздание всего кода ввода-вывода с помощью Unity API. На это и на преобразование ресурсов ушло около четырёх месяцев, в основном потому, что в Frog Fractions есть множество разных типов ресурсов:

  • Векторная графика, нарисованная в редакторе Flash. Я рендерил её в качестве 4k, заставив AIR собрать исходную игру, но не делая ничего, кроме рендеринга кадров анимации и записи их в файлы PNG. Затем с помощью TexturePacker я собрал их в спрайтшиты.
  • Векторная графика, использующая Flash Shape API. Во Flash всего в нескольких строках кода можно, например, отрисовать скруглённый прямоугольник и применить фильтры в стиле Photoshop типа скоса или тени. Язык лягушки отрисовывался как толстая линия с закруглёнными концами. В Unity подобные вещи реализовать сложнее. В разных случаях я применял разные приёмы, например, для каждого стиля контейнера текста рендерил 9-slices, а язык отрисовывал заполненным четырёхугольником с отмасштабированным кругом в качестве концов.
  • Графика в SVG, взятая с OpenClipArt.org. Так как я записывал имена художников, чтобы указать их в титрах, мне не сложно было найти их на сайте и скачать графику в более высоком разрешении.
  • То же самое касалось фотографий, взятых с Flickr. Я использовал для увеличения размера preserve details из Photoshop, чтобы при необходимости вносить изменения, и создал конвейер для разбивки полноэкранного 4k-изображения на текстуры в удобном размере со сторонами, равными степеням двойки.
  • Нарисованная от руки растровая графика. В некоторых случаях художники изначально представили мне графику высокого разрешения, которую я уменьшил для оригинальной игры. В других я заплатил художникам, чтобы они перерисовали их собственную графику в 4k. Сложнее всего было убедить их, что мне не нужна более качественная графика, которую они научились рисовать за прошедшие восемь лет я хотел как можно ближе придерживаться оригинальной игры!
  • Пещерный лабиринт сам по себе был огромной проблемой. В оригинальной Flash-игре он был огромными изображениями, которые игра разрезала на куски экранного размера и пропускала через алгоритм наподобие Marching-Cubes для построения меша коллизий. Так как я не хотел увеличивать эти гигантские изображения до разрешения 4k, я применил тот же алгоритм, но с более высоким разрешением для генерации отображаемого меша. Оба меша включены в получившуюся игру, а изображения я убрал.
  • Множество полноэкранных эффектов, которые нужно было реализовать заново в виде шейдеров.
  • Короткий видеоклип с развевающимся флагом. Когда в 2015 году я создавал Unboxing Story Unity API для воспроизведения видео был ужасным. К 2018 году он перестал быть ужасным. Ура!
  • Со звуком всё было проще. У меня сохранились все звуковые эффекты в файлах .wav и я сразу смог их использовать.
  • Оригинальная музыка была записана в MP3 с форматом 64kbps mono, что, наверно, сэкономило мне за все эти годы несколько тысяч долларов затрат на хостинг Amazon S3, но у меня уже были высококачественные стереозаписи всей музыки с тех пор, когда я создавал OST.


Всё в ремастере, кроме полноэкранных шейдеров и воспроизведения видео, и большинство того, что есть в новом сюжете, рендерится при помощи вызовов Graphics.DrawMesh, а не как объекты в графе сцен Unity. Поэтому возникает вопрос: действительно ли Unity подходит для этого проекта?

В то время, когда мы с Крейгом Тимпани выбирали движок для Glittermitten Grove, мы остановились на Unity из-за её хорошей поддержки кроссплатформенности, потому что FNA ещё не был готов и потому что создание собственного движка отличный способ никогда не закончить игру. В конечном итоге, хоть меня и печалила плохая поддержка 2D в Unity, это позволило нам почти без проблем выпустить версии для Mac и Linux, что, по моему мнению, огромная удача. (Предположительно, поддержка 2D в Unity с 2015 года стала лучше, но я её не изучал. Работа Graphics.DrawMesh вполне меня устраивает. Может, даже у FNA теперь появился работающий конвейер обработки ресурсов!)

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

А, ну и потом я создал дополнительную игру! Вероятно, я расскажу об этом творческом процессе в другом посте, здесь упомяну только то, что я собрал в Haxe переходную сцену, а остальную часть новой игры писал на C#. Кроме того, я внёс значительные изменения в основное меню внутри кодовой базы Haxe. Поэтому мне кажется, что вполне возможно после портирования на Haxe продолжать выпускать обновления кода, выполняя разработку на Haxe.

Также я внёс некоторые оптимизации в код оригинала. Код на AS3 намеренно писался без учёта эффективности, потому что я пытался избежать стремления к безупречному коду. Например, я поверить не мог, что мне сойдёт с рук выделение Vector2 для кучи при каждой арифметической операции! Получившийся результат хорошо работал на компьютерах 2012 года, но части с наихудшей производительностью после двойной транспиляции вызывали значительную нагрузку, поэтому для хорошей работы на современных PC мне пришлось переписать часть кода на нативном C#.

Также стоит заметить, что если бы я не планировал значительно расширить объём оригинальной игры и просто пытался сохранить от смерти вместе с Flash, то OpenFL, AIR или Ruffle были бы, наверно, более умным выбором.

Выпуск игры походил на прощание с ней. Мне нравилось работать на Flash. В то время это был лучший способ показать свои игры людям с наименьшими усилиями и казалось, что они будут жить вечно SWF из 90-х по-прежнему безупречно работают в последнем Flash player, хотя прошли десятки лет. Наблюдать за тем, как мир пытается перейти на HTML5, когда он явно ещё к этому не готов, было мучительно. (И, честно говоря, всё становится скорее хуже, чем лучше. Я считаю, что браузер никогда больше не станет пригодной для игр платформой, пока владельцы двух самых популярных браузеров имеют собственные магазины приложений для телефонов.) Я создал ремастер частично из-за того, что хотел продать новую игру, но ещё и из искреннего желания сохранить свою часть игровой истории. Спасибо, что вернулись к ней вместе со мной!
Подробнее..

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru