Anthill Game Framework

Tiny framework for creating Flash games.

Инструменты пользователя

Инструменты сайта


features

Ключевые особенности

Основной ключевой особенностью Anthill является возможность преобразования векторных клипов в растровые последовательности кадров (растеризация) и возможность работать с растеризированными клипами почти так же, как с векторными.

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

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

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

Рендер Anthill основывается на отрисовке растровых картинок двумя методами: copyPixels() и draw(). Метод copyPixels() самый быстрый, так как имеет элементарные возможности - копирует заданный массив пикселей в заданную область, не проводя при этом практически никаких вычислений, что позволяет выводить на экран более 500 спрайтов одновременно. Конечно, данный метод обладает такой производительностью в ущерб своим возможностям, а именно не позволяет трансформировать изображения: отражать, вращать, изменять размер и т.п. Но все эти недостатки компенсируется методом draw(). Метод draw() намного медленнее чем copyPixels(), но при этом позволяет производить базовые трансформации изображений. Таким образом, если совместить использование этих двух методов, то можно получить отличную производительность за счет того, что обычно в играх большинство спрайтов одновременно отображающихся на экране не имеют трансформаций, так как большая часть графики в любой игре - это статическое оформление игровых уровней.

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

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

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

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

  • Удобная и понятная структура игрового движка, изначально позаимствованная у Flixel;
  • Отладочные классы, позволяющие наиболее комфортно разрабатывать игру, такие как: Консоль, Статистика производительности, Мониторинг данных, а так же класс, помогающий отслеживать утечки в памяти;
  • Возможность работать с неограниченным количеством камер, что позволяет легко создавать игры для двоих и более человек на одном экране;
  • Реализован механизм отработки спрайтов, которые не попадают на экран, таким образом фреймворк рендерит только те спрайты, которые видны на экране (попадают в область видимости камер);
  • Реализован класс тайловых карт, который может работать в двух режимах: классические тайловые карты и создание карты на основе векторного клипа. То есть, во втором случае игровые уровни можно создавать непосредственно во Flash IDE и они автоматически будут растеризированы и оптимизированы для использования в игре;
  • Реализован механизм переиспользования игровых объектов;
  • Помощники для работы с клавиатурой, мышкой и для работы с сохранениями;
  • И некоторые другие приятные мелочи.
1) Tween Animation - программные анимации, созданные во Flash IDE на основе двух ключевых кадров.
features.txt · Последние изменения: 10.05.2013 23:55 — Илья Уткин