Комментарии 4
Тема Scaleform не раскрыта)
Это было не промежуточное решение для UE, а вполне самостоятельное. Была возможность интеграции в любой движок, в том числе в UE. Был даже плагин для Unity, но его быстро прикрыли. Scaleform использовался во многих играх (в Skyrim, например), а кое-где используется до сих пор.
Его особенностью было то, что сам Flash разрабатывался компанией Macromedia, которую позже купил Adobe. А Scaleform был сделан с нуля компанией Autodesk и мимикрировал под FlashPlayer. Какие-то возможности флеша в нём не работали, зато какие-то - работали даже лучше, чем в оригинале.
Есть такая (довольно известная?) студия-разработчик мобильных игр — Supercell.
Вся 2D графика в их движке (Titan) была разработана на идеях SWF. Они, конечно, изобрели свой формат, но основные принципы (теги, movieclips, shapes, etc.) присутствуют. Даже в символах были классы аля FlashDataLoader для работы с этим форматом (вероятно первое время движок умел грузить оригинальный SWF с сабсетом возможностей, и лишь в последствии потом ушли к своему формату)
Да и никакой виртуальной машины нет. Все контролируется скомпилированным кодом на С++.
Было предположение, что они просто очень любят Adobe Animate, который до сих пор умеет экспортировать в этот формат. А что, удобно)
Flash/Animate действительно классный тул для подготовки 2d ассетов – множество разработчиков использовали его как полноценный игровой редактор задолго до появления юнити. Да и юнити для этих целей во многом уступал. Были случаи, когда игра с флэша уже была портирована на юнити, но в качестве редактора уровней все равно выступал флэш.
А swf – классный формат. Открытый, компактный, поддерживает векторную-растровую графику, иерархии объектов, анимации, код. Отлично подходит как контейнер ассетов для 2d игр.
Почему-то все время забывают, что есть актуальный инструмент, позволяющий пользоваться всем этим добром с комфортом – openfl/swf. В прошлом месяце как раз свежая версия вышла. Весь код, реализующий флэшовый апи и позволяющий воспроизводить мувиклипы в рантайме – часть движка openfl, транспилируется в cpp/c/js в зависимости от целевой платформы и предпочтений.
Для своих игр продолжаю пользоваться swf как контейнером для ассетов.

Flash был за пределами браузеров в нулевые, а мы и не знали. Как он использовался в DirectX играх