Процесс озвучивания игры Sumoman

Очень понравился процесс озвучивания игры Sumoman :)

This movie requires Flash Player 9

Поделиться в соц. сетях

Опубликовать в LiveJournal
Опубликовать в Google Plus

Tip: Лучшее качество растеризированной картинки при меньшем потреблении процессора

Сегодня разгребая мусор на компе нашел заметку «Лучшее качество растеризированной картинки при меньшем потреблении процессора».
Так как большие статьи писать сильно времени нет, мне пришла в голову мысль писать небольшие заметки, подсказки, трюки, (вообщем типсы — tips) которые мне попадутся в интернете или изобрету сам.
Тем самым полезно для себя и других собирать такую вот базу небольших но полезных решений. Для кого то, это будет банал, а кому-нибудь придаст свежие идеи.
Итак, лирика закончена, теперь подсказка.

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

stage.quality = StageQuality.BEST;
convertVectorToRastr(); // ваша ф-я конвертации	
stage.quality = StageQuality.LOW;

Хорошая растровая графика при меньшей нагрузке на процессор.

Поделиться в соц. сетях

Опубликовать в LiveJournal
Опубликовать в Google Plus

Профилирование с Adobe Scout в Intellij Idea

Напоминалка. Я использую Idea 12, поэтому для нее и напишу. Это будет, наверное, сто-первая статья «Как подружить Adobe Scout и Intellij Idea».

Условие: есть у нас проект, например, BabyBoxTestbed. Мы хочем профилировать его с помощью Adobe Scout.
Для начала надо убедиться, что у нас установлена версия Flash Player 11.4 и выше.
Также, что мы компилируем в режиме релиза — это не обязательно, но только в этом случае вы получите наиболее точные данные от профайлера.
(UPD: обновил статью на использование Python 2.7, так как для Python 3.3 невозможно установить модуль PyLZMA, который нужен для того, чтобы добавить телеметрию в релизную флешку. Автор модуля PyLZMA писал, что добавил экспериментальную поддержку для Python 3.3, но попробовав несколькими способами мне так и не удалось запустить. Для меня все-равно какой питон так как использую его только для добавления телеметрии)
Настраиваем инструменты

Поделиться в соц. сетях

Опубликовать в LiveJournal
Опубликовать в Google Plus

Genome2D Haxe — новое начало

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

Какие преимущества получит новая версия?
- благодаря тому, что премиум фичи больше не платные все батчинги будут использовать fastmem;
- скорость возрастет в 2 раза (по сравнению с компилятором ASC2.0), а в некоторых сценария на 400% (геном и так был самым быстрым 2d фреймворком, а сейчас…);
- будет возвращен GBitmapContext, который делает возможным запуск игр на порталах где не включен wmode=’direct’ (конечно возможности GBitmapContext будут куда меньше GStage3DContext, но даже так это просто огромный плюс);

В планах также абстракция наитивных flash классов для того, чтобы сделать возможность деплоя приложений на HTML5.
(Так как это Haxe, то в будущем (возможно далеком) будет возможность таргетирования на другие платформы)

Вот таки новости — чем дальше тем интересней :)

Поделиться в соц. сетях

Опубликовать в LiveJournal
Опубликовать в Google Plus

Реализация 2d камеры в игровом движке

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

Поделиться в соц. сетях

Опубликовать в LiveJournal
Опубликовать в Google Plus

Выбрасывайте свои мат. библиотеки…

Сегодня придумалось такое пафосное название для статьи :)
Не совсем все так категорически, но все же. Уже много лет все флеш разработчики используют свои мат библиотеки вместо стандартного Math, дескать, она тормознутая. Да, много лет так и было. И я по старинке тоже собрал целую кучу алгоритмов, которые работают быстрее — это такие базовые как abs, min, max, sin, cos, round…
Но сегодня что то мне вздумалось протестировать это дело еще раз и оказалось, что мои методы работают медленней почти в два раза (хотя когда то это было не так)! А если какие и работают быстрее то разница совсем не значительная. Пришлось выбросить половину методов из своей библиотеки.
Видимо Adobe хорошо тюнингуют плеер, за что им спасибо.
Тестировал на FP 11.5, Win7 x64

Так что не поленитесь протестировать свою библиотеку, может быть вас тоже ждет удивление :)

Поделиться в соц. сетях

Опубликовать в LiveJournal
Опубликовать в Google Plus

С Рождеством Христовым!

This movie requires Flash Player 9

Поделиться в соц. сетях

Опубликовать в LiveJournal
Опубликовать в Google Plus

Будущие изменения Flash Professional в 2013, будущее Flash, слухи, размышления

В официальном блоге компании появилась информация о будущих изменениях Flash Professional. Они создают next-gen Flash Professional, который должен быть более быстрый, надежный, расширяемый. Новые изменения включают в себя создание Flash Pro более эффективной и целенаправленной.
Одним из больших изменений станет отказ от поддержки языка AS2. Надо напомнить, что AS3 был представлен в 2006 году и на данный момент является основным языком программирования для flash платформы.
Также разработчики заявили, что поддержка AS2 в самом flash player не удаляется и контент по-прежнему будет проигрываться.
Слухи, мысли

Поделиться в соц. сетях

Опубликовать в LiveJournal
Опубликовать в Google Plus

FlashPlayer 11.6 и AIR 3.6 Beta

Вчера вышел релиз FP 11.6 и AIR 3.6.
Вообщем этот релиз направлен на багфиксы в безопасности, стабильность, оптимизацию совместимость с девайсами.
Изменения:
- в полноэкранном режиме изменена позиция permission dialog по центру. Также при переходе в полноэкранный режим была добавлена кнопка «Cancel».
- теперь девелоперы могут считывать структуру display object и векторные данные в рантайме, это разрешит экспортировать данные векторных объектов в другие векторные форматы, например SVG. Товарищ Thibault Imbert в своем посте показывает как это можно сделать.
- поддержка упаковки и загрузки множественных SWF на iOS в AOT режиме. С помощью этой фичи, пользователь сможет использовать несколько SWF в AIR iOS приложениях используя класс Loader.
- теперь разработчик может явно отключить конкретные разрешения экранов (high/standart) одного или нескольких iOS девайсов. Это можно сделать с помощью атрибута excludeDevices тега requestedDisplayResolution в дескрипторе приложения.

Более детально можно прочитать в официальном release notes.

Поделиться в соц. сетях

Опубликовать в LiveJournal
Опубликовать в Google Plus

Nape v2.0.0 — Релиз

Ну вот и случилось — Nape v2.0.0 вышел!
Что тут сказать, Лука проделал большую работу в самой библиотеке и запустил сайт для Nape — napephys.com, где возможно найти туториалы, примеры, отличную документацию и ссылки на саму библиотеку.
Изменений, улучшений и исправлений было очень много, не вижу смысла переписывать их сюда. Тут его официальная новость о релизе, он подробно расписывает, что и как, а здесь ссылка на, возможно, более полный changelog.
Главная, конечно же, и самая ожидаемая фича это — CCD (continuous collision detection).
Она реализована не так как в Box2D. Это простое решение, которое вместе с тем дает бОльшую производительность. Но также не рекомендуется очень обильно использовать ее. Благо, можно очень просто настроить это дело. Немного подробнее рассмотрим.
Теперь класс Body имеет две опции — «disableCCD», «isBullet».
Опция «isBullet» говорит движку надо ли использовать для данного объекта алгоритм CCD. По-умолчанию имеет значение false.
Опция «disableCCD» определяет требуется или не требуется с данным объектом, при столкновении в него объекта помеченного как «isBullet = true», использоваться алгоритм CCD (вопрос стоит так — отключить ли CCD для этого объекта). По-умолчанию имеет значение false.
Пример. Есть у нас два тела wall и bullet.
Если wall.disableCCD = false, а bullet.isBullet = false — для этой пары НЕ будет использоваться CCD.
Если wall.disableCCD = false, а bullet.isBullet = true — для этой пары будет использоваться CCD.
Если wall.disableCCD = true, а bullet.isBullet = true — для этой пары НЕ будет использоваться CCD.

Как видно настроить CCD можно очень гибко и удобно при этом сохранив производительность.
«isBullet = true» — следует использовать для маленьких или для быстро движущихся объектов.

Когда будет время думал обновить туториалы для новой версии, но смотря на новый сайт нейпа даже не знаю надо ли это делать :)

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

Поделиться в соц. сетях

Опубликовать в LiveJournal
Опубликовать в Google Plus

« Предыдущие записи