Через тернии к звездам. Оптимизация кода.

Эта статья посвящена оптимизации ActionScript3 на примере создания эффекта «полета сквозь звезды»(на подобии старого скринсейвера Windows). Мне этот эффект необходим был для игры. Эффект должен был служить фоном и поэтому требовалось чтобы он был как можно менее ресурсоемким.
Читать дальше →
  • +11

Как засунуть 2 мб в 300 кб и немного уменьшить головную боль

Всем привет.

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

Я компилирую игры с помощью Flex SDK, использую растровую графику. Она, как известно занимает много места, особенно в формате PNG, т.к. он не поддерживает сжатие с потерями. Но этот формат является фактически единственным выбором, если нужны картинки с альфа-каналом. Мой выход из этой ситуации, и именно об этом этот пост, сохранить картинку как два JPEG файла, с цветовой информацией и с альфаканалом. Причем альфаканал можно сжать очень сильно — артефакты сжатия в альфаканале практически незаметны.

Кроме того, очень часто анимация попадает ко мне в виде кучи файлов с именами вида «0001.png», «0002.png» и так далее по числу кадров. Например Блендер выдает картинки именно так. Эмбедить все это в таком виде — просто морока, на каждый файл надо написать [embed] тэг, класс и что-нибудь еще. Гораздо проще и удобнее иметь один файл на анимацию и один раз его прописывать. Это к вопросу об уменьшении головной боли. И кстати и общий размер файлов также уменьшается, за счет заголовков, сжатия всего вместе, а не по отдельности и т.д.

В одном случае мне и правда удалось сжать 2 мб исходных файлов в 300 кб. А позже и того меньше, но это уже не задокументировано :-)
Читать дальше →

Рецензия на Light Bot 2.0


Игра разработана самими Armor Games. Кому, как ни им знать, какие игры нужны индустрии, что нужно игроку, и что нужно самой игре, чтобы сразу после выхода не оказаться в сотых или тысячных местах общего топа.
Читать дальше →

Математические выражения в АС3

Наверняка вы писали что-то вроде Math.PI/180 + Math.PI*.25
Как же надо писать для оптимизации и что опять великие индийские умы наоптимизировали с компилятором АС3.
Читать дальше →

Работа с with

Отвлекают меня сегодня сильно, работать не получается. Напишу еще про оптимизацию немного. (Глядишь и карма отмоется, которую всякие любители Фейсбука заминусовали)
Многие, если знакомы с другими языками программирования, знают про полезный оператор with, который служит для: а) удобного написания кода б) для оптимизации работы. Что же делают с ним великие индийские гуру программирования из Адоби?
Читать дальше →

Трюк как не вызвать конструктор предка.

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

Читать дальше →

Оптимизация конструкторов в АС3

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

Читать дальше →