Агрегатор статей о разработке Flash приложений и Flash игр (Flash Development / Game Development)
Все права принадлежат их авторам
четверг, 29 марта 2012 г.
Alternativa3D 8 вышла в Open Source!
Согласно обновленной лицензии, любая организация или частное лицо может свободно использовать технологию в своих целях. При этом размещать в созданных на движке проектах логотипы и иные упоминания об AlternativaPlatform как разработчике Alternativa3D более не требуется. Тем не менее, мы будем признательны за такие упоминания.
Перейти к исходникам
Обсудить на форуме
Читать дальше: Alternativa3D 8 вышла в Open Source!
среда, 28 марта 2012 г.
Flash Player: планы на будущее — много замечательного!
Сегодня вместе с анонсом premium функционала и релизом Flash Player 11.2 / AIR 11.2, Adobe обновили свои планы на будущее относительно Flash и показали массу отличного функционала который появится в этом году!
Взгляните на переведённый быстрый копипаст из их поста:
Flash Player «Cyril»
После релиза Flash Player 11.2, во второй половине 2012го, Adobe планирует выпустить релиз Flash Player’а под кодовым названием «Cyril».
Некоторые из запланированных нововведений:
- Поддержка клавиатурного ввода в полноэкранном режиме
- Улучшенная поддержка аудио для работы с аудио с меньшими задержками
- Возможность прогрессивной поточной передачи текстур для Stage 3D контента
- Поддержка LZMA сжатия для ByteArray
- События для кадров
- Поддержка сжатия BitmapData в JPEG и PNG форматы
- Поддержка требований к «песочнице» для Mac OS X App Store приложений
Flash Player «Dolores»
Кроме того, вслед за «Cyril», Adobe планирует релиз ещё одной версии Flash Player под кодовым названием «Dolores».
Некоторые из запланированных нововведений:
- ActionScript workers (позволяет исполнять ActionScript в нескольких параллельных потоках — многопоточность проще говоря)
- Поддержка продвинутого профайлинга (Telemetry)
- Расширение поддержки видео карт для Stage3D (начиная с 2005/2006)
- Увеличение производительности ActionScript при компиляции под Apple iOS
- API для получения индекса производительности — для получения сведений о производительности текущей среды
- Событие мыши Release outside
- ActionScript 3 API для прямого доступа к быстрым опкодам работающим с памятью (те, что используются в Alchemy) прямо из as3 кода! (премиум при использовании вместе со Stage3D)
понедельник, 26 марта 2012 г.
Фильтрация XML (E4X) при помощи регулярных выражений и сложных условий
Для фильтрации XML можно так же использовать регулярные выражения (RegExp) и собственные условия через функции фильтрации (помимо простых сравнений).
Не уверен, что данный синтаксис скушает любая среда разработки (по крайней мере FDT выдает ошибку, хотя синтаксис правильный).
Простой пример. У нас имеется список персонала одного из отделов компании, и нам необходимо узнать, кто из них родился в апреле.
Пример с использованием регулярного выражения: [...]
Читать дальше: Фильтрация XML (E4X) при помощи регулярных выражений и сложных условий
суббота, 24 марта 2012 г.
Фиксим утечки памяти в box2d(2.1a)
Добавим в класс b2Body, функцию Destroy с таким содержанием: [...]
Читать дальше: Фиксим утечки памяти в box2d(2.1a)
Как рассказать про вашу игру
В повседневной жизни я — игрожур, но на досуге я сам пишу одну игру (Gunpoint), она даже вышла в финал Independent Games Festival, я немного горжусь этим (до меня выступал создатель Solipskier, объяснявший, почему всем наплевать на IGF, так что мне стало немного легче). Это моя первая игра, к тому же ещё недописанная, поэтому учить вас программированию мне не по статусу. Вместо этого я хочу поговорить о том, как рассказывать о играх. С этим легко накосячить, особенно когда вы находитесь в контексте игры; но описанию нужно уделять большое внимание, если вы не хотите остаться единственным пользователем. Мне повезло — за восемь лет я натренировался рассказывать о чужих играх, так что со своей всё пошло легче.
Даже не ожидайте, что аудитория вашего сайта, интервью или ролика будет состоять исключительно из умных, серьёзных и заинтересованных людей. Потому что в худшем случае это могу прочесть я — а я тот ещё засранец.
Сейчас я расскажу, почему на тупиц типичные методы не действуют, а потом объясню (как весьма опытный засранец), как нужно рассказать про игру, чтобы это понял каждый.
Читать дальше: Как рассказать про вашу игру засранцу
пятница, 23 марта 2012 г.
TheMiner и FlashDevelop
Всего есть два пути использования TheMiner во FlashDevelop:
- Используя TheMiner SWC, как любую другую внешнюю библиотеку.
- Добавляя TheMiner SWF в список профайлеров FlashDevelop.
Почему существует два пути? Потому что у каждого есть сови преимущества и недостатки, и, в зависимости от обстановки, тот или иной путь может оказаться наиболее подходящим.
Итак, давайте попробуем оба пути шаг-за-шагом. Пожалуйста запустите FlashDevelop и откройте \ создайте в нём as3 проект чтобы продолжить.
TheMiner в качестве внешней SWC
1. Для начала, купите TheMiner или скачайте бесплатную версию для некоммерческого использования.2. Распакуйте скачанный архив, зайдите в папку «SWCs» и выберите подходящую версию (в зависимости от требуемого языка), например TheMiner_en.swc [...]
Читать дальше: TheMiner и FlashDevelop
пятница, 9 марта 2012 г.
Упакованный SWF. Как распаковать?
Привет, друзья!
В этом посте я хотел бы рассказать о том, что из себя представляет упакованный SWF и как его можно распаковать динамически и статически.
Итак, что же такое упакованный SWF?
Если Вы никогда ранее его не видели, не поленитесь скачать простой классический пример упакованного SWF:
http://codestage.ru/files/flood/security/packed.swf
Запустив SWF, вы увидите немного текста в левом верхнем углу. Однако, если вы попробуете декомпилировать этот файл, то вы не увидите кода, который этот текст показывает.
Стоит отметить, что если бы в упакованном SWF были ещё какие-нибудь ресурсы (изображения, звуки, шрифты и т.д.), то их вы бы тоже не увидели. Это из-за того, что оригинальный SWF находится внутри того SWF что вы скачали и декомпилировали, и часто в зашифрованном виде.
Обычно все, что вы можете получить из таких SWF с помощью декомпиляторов — это код распаковщика\расшифратора и, возможно, сам зашифрованный SWF в виде набора байт (зависит от того, умеет ли используемый вами декомпилятор отображать тэг DefineBinaryData).
Такая «упаковка» на самом деле достигается с помощью простого Flex тэга [Embed].
Динамическая распаковка (dumping)
Динамическая — значит для распаковки потребуется исполнение SWF во Flash Player’е (далее — FP).Т.к. FP не умеет проигрывать зашифрованную неведомо как SWF, то логично что перед проигрыванием, SWF должна расшифровываться и загружаться уже в чистом виде (например, с помощью
Loader.loadBytes()
).Что более важно, распакованный и расшифрованный SWF будет в памяти все время, пока он исполняется FP’ром.
И это наш шанс достать его!
Существует два основных способа сделать это.
1) Динамическая распаковка с помощью утилит
Используя сторонние или даже самописные утилиты для поиска SWF в памяти процесса FP. Это самый быстрый, самый простой и обычно самый эффективный способ. Но он не вызывает ощущения что вы — тру крякер
Существуют различные платные и бесплатные утилиты для этих целей.
Одна из наиболее продвинутых — это SWF Revealer, бесплатная утилита для владельцев лицензий на ASV. В некоторых случаях, она может обходить проверки на домен (которые не дают распаковаться и расшифроваться SWFке) и заставлять SWF запускаться в вашей среде.
Также достаточно легко гуглятся разные бесплатные дамперы.
2) Ручная динамическая распаковка
Поиск SWFки вручную, с помощью нахождения CWS (сжатый SWF) или FWS (несжатый SWF) заголовков, которые являются началом любого SWF. Если вы никогда не пробовали такой способ, я очень рекомендую попробовать! Он не только позволит немного подтянуть ваши скиллы в hex, но и подарит вам ощущение, что вы тру-крякер!)
Для поиска заголовков можно использовать любой HEX редактор, который умеет читать память процессов и имеет функцию поиска.
Если вы хотите искать упакованный SWF в памяти FP в котором проигрывается файл-пример по ссылке выше, то стоит начать с поиска FWS подписи (несжатый SWF) — просто ищите строку ‘FWS’, т.к. перед исполнением FP разжимает SWF, если он был сжат.
Если вы будете запускать и искать SWF в браузере, то закройте все лишние вкладки, чтобы снизить количество лишних SWF в памяти.
Обычно при таком поиске вы найдете несколько заголовков в памяти, т.к. сам FP держит там разные служебные SWF, например ту, что показывается после входа в полноэкранный режим.
Так что если вы сомневаетесь, то лучше проверить все найденные заголовки.
Итак, что же делать с найденным заголовками, спросите вы? Как их проверить, как узнать, где заканчивается SWF?
Пожалуйста, взгляните на этот скриншот:
Это заголовок одной из SWF в памяти FP при проигрывании файла-примера, найденный поиском по строке ‘FWS’ (совершенно случайно это оказался заголовок искомого упакованного файла, который мы и хотим найти )
Что же дальше? А дальше необходимо посмотреть какой длины получается найденный SWF. Длина расположена в 4 байтах начиная с 4го: [...]Читать дальше: Упакованный SWF. Как распаковать?