Anthill Game Framework

Tiny framework for creating Flash games.

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

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


features

Различия

Здесь показаны различия между выбранной ревизией и текущей версией данной страницы.

Ссылка на это сравнение

features [30.04.2013 13:57]
127.0.0.1 внешнее изменение
features [10.05.2013 23:55] (текущий)
Илья Уткин
Строка 1: Строка 1:
 ====== Ключевые особенности ====== ====== Ключевые особенности ======
  
-Основной ключевой особенностью Anthill является возможность преобразования векторных клипов в растровые последовательности кадров (растеризация) и возможность работать с растеризированными клипами почти так же как с векторными.+Основной ключевой особенностью Anthill является возможность преобразования векторных клипов в растровые последовательности кадров (растеризация) и возможность работать с растеризированными клипами почти так жекак с векторными.
  
-Принудительная (ручная) растеризация сказывается положительно на быстродействии Flash приложения за счет того, что отрисовка растровых картинок в разы быстрее чем отрисовка вектора. ​+Принудительная (ручная) растеризация сказывается положительно на быстродействии Flash приложения за счет того, что отрисовка растровых картинок в разы быстреечем отрисовка вектора. ​
  
-Вся проблема вектора заключается в том, что сам по себе вектор не может быть отрендерен видеокартой, таким ​образом прежде чем векторное изображение появится на экране вашего монитора,​ оно будет растеризировано и только потом отправлено на рендер. Таким образом ручная растеризация помогает подготовить графику к работе заранее и избавить компьютер от ресурсоемкой нагрузки ​ сохранив его производительность для более важных вычислений. ​+Вся проблема вектора заключается в том, что сам по себе вектор не может быть отрендерен видеокартой. Следовательнопрежде чем векторное изображение появится на экране вашего монитора,​ оно будет растеризировано и только потом отправлено на рендер. Таким образомручная растеризация помогает подготовить графику к работе заранее и избавить компьютер от ресурсоемкой нагрузкисохранив его производительность для более важных вычислений. ​
  
-Так же ручная растеризация помогает экономить ресурсы компьютера и при использовании большого количества твиновых анимаций ((Tween Animation - программные анимации созданные во Flash IDE на основе двух ключевых кадрах.)) которые как правило рассчитываются каждый раз динамически прежде чем вектор будет отрендерен.+Так же ручная растеризация помогает экономить ресурсы компьютера и при использовании большого количества твиновых анимаций((Tween Animation - программные анимациисозданные во Flash IDE на основе двух ключевых кадров.))которыекак правилорассчитываются каждый раз динамическипрежде чем вектор будет отрендерен.
  
-Рендер Anthill основывается на отрисовке растровых картинок двумя методами:​ [[http://​help.adobe.com/​ru_RU/​FlashPlatform/​reference/​actionscript/​3/​flash/​display/​BitmapData.html#​copyPixels()|copyPixels()]] и [[http://​help.adobe.com/​ru_RU/​FlashPlatform/​reference/​actionscript/​3/​flash/​display/​BitmapData.html#​draw()|draw()]]. Метод ''​copyPixels()''​ самый быстрый так как имеет элементарные возможности - копирует заданный массив пикселей в заданную область не проводя при этом практически никаких вычислений,​ что позволяет выводить на экран ​до 500 и более спрайтов одновременно. Конечно ​же данный метод обладает такой производительностью в ущерб своим возможностям,​ а именно не позволяет трансформировать изображения:​ отражать,​ вращать,​ изменять размер и т.п. Но все эти недостатки компенсируется методом ''​draw()''​. Метод ''​draw()''​ намного медленнее чем ''​copyPixels()''​ но при этом ​возволяет производить базовые трансформации изображений. Таким образом если совместить использование этих двух методов,​ то можно получить отличную производительность за счет того, что обычно в играх большинство спрайтов одноврмененно отображающихся на экране не имеют трансформаций,​ так как большая часть графики в любой игре - это статическое оформление игровых уровней.+Рендер Anthill основывается на отрисовке растровых картинок двумя методами:​ [[http://​help.adobe.com/​ru_RU/​FlashPlatform/​reference/​actionscript/​3/​flash/​display/​BitmapData.html#​copyPixels()|copyPixels()]] и [[http://​help.adobe.com/​ru_RU/​FlashPlatform/​reference/​actionscript/​3/​flash/​display/​BitmapData.html#​draw()|draw()]]. Метод ''​copyPixels()''​ самый быстрыйтак как имеет элементарные возможности - копирует заданный массив пикселей в заданную областьне проводя при этом практически никаких вычислений,​ что позволяет выводить на экран более ​500 спрайтов одновременно. Конечноданный метод обладает такой производительностью в ущерб своим возможностям,​ а именно не позволяет трансформировать изображения:​ отражать,​ вращать,​ изменять размер и т.п. Но все эти недостатки компенсируется методом ''​draw()''​. Метод ''​draw()''​ намного медленнее чем ''​copyPixels()''​но при этом ​позволяет производить базовые трансформации изображений. Таким образомесли совместить использование этих двух методов,​ то можно получить отличную производительность за счет того, что обычно в играх большинство спрайтов одновременно отображающихся на экране не имеют трансформаций,​ так как большая часть графики в любой игре - это статическое оформление игровых уровней.
  
-И так, основным преимуществом вектора является то, что он может быть трансформирован без потери качества и имеет малый размер,​ так как несет намного меньше информации о графике чем растр (ключевые точки, цвета заливок,​ толщину обводок и т.п.).+Итак, основным преимуществом вектора является то, что он может быть трансформирован без потери качества и имеет малый размер,​ так как несет намного меньше информации о графикечем растр (ключевые точки, цвета заливок,​ толщину обводок и т.п.).
  
-Растровые изображения в свою очередь имеют наивысшую производительность так как нет необходимости их преобразовывать в подходящий формат прежде чем они будут отрисованы,​ но при этом растр имеет наибольший размер и уязвим к любым трансформациям из-за потери качества.+Растровые изображения в свою очередь имеют наивысшую производительностьтак как нет необходимости их преобразовывать в подходящий форматпрежде чем они будут отрисованы,​ но при этом растр имеет наибольший размер и уязвим к любым трансформациям из-за потери качества.
  
-Идея создания Anthill изначально заключалась в том, чтобы совместить лучшие стороны вектора и растра в одном «флаконе». То есть используя Anthill вы можете создавать игры с бесконечно сложным графическим оформлением и анимациями и при этом на выходе иметь легкую и производительную игру с высоким качеством картинки.+Идея создания Anthill изначально заключалась в том, чтобы совместить лучшие стороны вектора и растра в одном «флаконе». То естьиспользуя Anthillвы можете создавать игры с бесконечно сложным графическим оформлением и анимациями и при этом на выходе иметь легкую и производительную игру с высоким качеством картинки.
  
-По мере развития Anthill появились и другие приятные возможности которые превратили небольшую надстройку-оптимизатор для Flash в более полноценный фремворк:​+По мере развития Anthill появились и другие приятные возможностикоторые превратили небольшую надстройку-оптимизатор для Flash в более полноценный фреймворк:
  
-  * Удобная и понятная структура игрового движка изначально позаимствованная у [[http://​flixel.org|Flixel]];​ +  * Удобная и понятная структура игрового движкаизначально позаимствованная у [[http://​flixel.org|Flixel]];​ 
-  * Отладочные классы позволяющие наиболее комфортно разрабатывать игру такие как: [[anthill:​antconsole|Консоль]],​ [[anthill:​antperfomance|Статистика производительности]],​ [[anthill:​antmonitor|Мониторинг данных]],​ а так же [[anthill:​antmemory|класс]] помогающий отслеживать утечки в памяти;​+  * Отладочные классыпозволяющие наиболее комфортно разрабатывать игрутакие как: [[anthill:​antconsole|Консоль]],​ [[anthill:​antperfomance|Статистика производительности]],​ [[anthill:​antmonitor|Мониторинг данных]],​ а так же [[anthill:​antmemory|класс]]помогающий отслеживать утечки в памяти;​
   * Возможность работать с неограниченным количеством [[anthill:​antcamera|камер]],​ что позволяет легко создавать игры для двоих и более человек на одном экране;​   * Возможность работать с неограниченным количеством [[anthill:​antcamera|камер]],​ что позволяет легко создавать игры для двоих и более человек на одном экране;​
-  * Реализован механизм отработки спрайтов которые не попадают на экран, таким образом фремворк рендерит только те спрайты которые видны на экране (попадают в область видимости камер);​ +  * Реализован механизм отработки спрайтовкоторые не попадают на экран, таким образом фреймворк рендерит только те спрайтыкоторые видны на экране (попадают в область видимости камер);​ 
-  * Реализован класс [[anthill:​anttilemap|тайловых карт]] который может работать в двух режимах:​ классические тайловые карты и создание карты на основе векторного клипа. То есть, во втором случае игровые уровни можно создавать непосредственно во Flash IDE и они автоматически будут растеризированы и оптимизированы для использования в игре;+  * Реализован класс [[anthill:​anttilemap|тайловых карт]]который может работать в двух режимах:​ классические тайловые карты и создание карты на основе векторного клипа. То есть, во втором случае игровые уровни можно создавать непосредственно во Flash IDE и они автоматически будут растеризированы и оптимизированы для использования в игре;
   * Реализован механизм переиспользования игровых объектов;​   * Реализован механизм переиспользования игровых объектов;​
   * Помощники для работы с [[anthill:​antkeyboard|клавиатурой]],​ [[anthill:​antmouse|мышкой]] и для работы с [[anthill:​antcookie|сохранениями]];​   * Помощники для работы с [[anthill:​antkeyboard|клавиатурой]],​ [[anthill:​antmouse|мышкой]] и для работы с [[anthill:​antcookie|сохранениями]];​
features.txt · Последние изменения: 10.05.2013 23:55 — Илья Уткин