Развитие игровой вспышки
Текущее время: Пт апр 28, 2017 2:06 pm

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 5 ] 
Автор Сообщение
 Заголовок сообщения: Нужен совет по переходу на haxe
СообщениеДобавлено: Вт июн 17, 2014 9:06 pm 
Не в сети

Зарегистрирован: Сб сен 29, 2012 1:28 pm
Сообщений: 856
Откуда: BY
Привет.
Решил переходить на мобильные. В текущем и следующем проекте нужна производительность. Т.к. идёт много расчётов математики. Потестил Air и haxe + OpenFL. Выбор пал на второе. Появилось несколько вопросов. Если кто ответит хотя бы несколько, думаю будет полезно всем кто собрался переходить.

1. Как вообще в openFL работает рендер? Добавив сотню векторных мувиклипов я как и ожидал увидел 5 ФПС. Я так понимаю логично, что вектор работает на CPU. При использовании битмап - ФПС максимальный. Битмапы работают на GPU?

2. Стоит ли на haxe использовать Старлинг для работы с Stage3D. Увеличит ли это производительность или смысла нету?

3. Как организована работа с ресурсами на haxe+openFL? Собираем атласы, спрйтшиты, текстуры и дальше работаем как со спрайтами во флеше? Или же рендер в битмапы из вектора через подключенный swc?

4. Есть ли удобные средства профилирования. Что-то вроде Скаута как у флеша и эира?

5. Вообще много костылей по ходу разработки? Ибо сообщество есть, но оно как-то разбросано. И не всегда удаётся найти решение на ту или иную ошибку/вопрос.


Вернуться наверх
 Профиль Отправить e-mail  
 
 Заголовок сообщения: Re: Нужен совет по переходу на haxe
СообщениеДобавлено: Вт июн 17, 2014 10:07 pm 
Не в сети
Аватар пользователя

Зарегистрирован: Пн окт 12, 2009 5:31 pm
Сообщений: 1948
Откуда: Honduraz
1. Как сейчас - точно не скажу - давно не смотрел. Раньше макс производительность 2д была на внутреннем апи NME, рисующем квады (аналог битмапов, называлось вроде drawTriangles), т.е. даже не на битмапах. А рисовали они в зеркале флешевого апи битмапы через квады (GPU) или программно (CPU) даже тогда - не знаю.
2. Не уверен есть порт старлинга на хэкс - для рендеринга там вроде OpenFL и используется. Есть биндинги для хэкс-флеша, но этож не мультиплатформа. Под хэкс есть свои кучи движков рендеринга, - аналогов старлинга и даже NME возродился. Но не все они мультиплатформа, как OpenFL и NME.
зы. поискал нашел старый порт, двухгодовалый (https://github.com/jgranick/starling) - не уверен что он работает сейчас. ззы: посмотрел сорцы - это не порт а биндинги.
3. у хэкса есть встроенные средства для работы с ресурсами (swc не надо, но работа с ним(и) вроде есть в сторонних либах, с swf - точно была).
...
5. не то чтобы много, но хватает. я бы охарактеризовал как "для опытных разработчиков". плюс - открыто все и бесплатно. оперативно фиксить грабли придется самому. Вобще грабли есть у прожэктов с овер 10 лет разработки, а хэкс молодой еще довольно (вот недавно были грабли с переходом на хэкс-3 и NME->OpenFL), бурно развивающийся, меняющийся. Т.е. можно найти нужную, но заброшенную либу и под версию языка нумер 3 самому ее портировать. У меня сложилось впечатление что переход языка версии 2 на 3 и смена NME на OpenFL отсеяла кучу народу (наработочки у кого были уже неактуальны оказались и т.д., + возможно общее остывание к мобилам/мультиплатформе), но могу быть не прав. Хотя само сообщество хэкса расширяется (возможно из-за HTML-5 - хэкс на яваскрипт достаточно грамотно транслируется штатными средствами и движков напортировали разных все-же уже много).


Вернуться наверх
 Профиль Отправить e-mail  
 
 Заголовок сообщения: Re: Нужен совет по переходу на haxe
СообщениеДобавлено: Ср июн 18, 2014 12:04 am 
Не в сети

Зарегистрирован: Чт июл 01, 2010 2:39 pm
Сообщений: 1201
ReMind писал(а):
Привет.
Решил переходить на мобильные. В текущем и следующем проекте нужна производительность. Т.к. идёт много расчётов математики. Потестил Air и haxe + OpenFL. Выбор пал на второе. Появилось несколько вопросов. Если кто ответит хотя бы несколько, думаю будет полезно всем кто собрался переходить.


Добавляйся в чат http://haxe.ru/haxe_chat )


Вернуться наверх
 Профиль Отправить e-mail  
 
 Заголовок сообщения: Re: Нужен совет по переходу на haxe
СообщениеДобавлено: Ср июн 18, 2014 12:43 am 
Не в сети

Зарегистрирован: Сб апр 07, 2012 1:20 am
Сообщений: 44
ReMind писал(а):
1. Как вообще в openFL работает рендер? Добавив сотню векторных мувиклипов я как и ожидал увидел 5 ФПС. Я так понимаю логично, что вектор работает на CPU. При использовании битмап - ФПС максимальный. Битмапы работают на GPU?


Код на хаксе, как я писал в соседней ветке, может компилироваться в swf или превращатсья в код на других языках. В этом случае игровой код, написанный на хаксе, транслируется в код из которого можно собрать нативное приложение. А openFL – это вообще такая штука, которая по сути реализует Flash API на разных платформах, для того, чтобы привычный код можно было собрать в нативное приложение.
Так вот, рендер в опенэфэле сильно зависит от целевой платформы.
На самом деле, сейчас разработчики опенэфэля выделили дополнительный слой абстрации. Есть либа lime, которая реализует отрисовку на низком уровне, специфичную для каждой платформы, написанную на "родном" языке (java/objc/cpp) а опенэфэль выступает в качестве обертки для лайма.
Если платформа мобильная, а Flash API не критичен, можно попробовать работать с лаймом напрямую.

Вектор, само собой, на гпу напрямую рендериться не может. То есть, даже если он отрисовывается через OpenGL, то сначала надо что-то срендерить в текстуру.


ReMind писал(а):
2. Стоит ли на haxe использовать Старлинг для работы с Stage3D. Увеличит ли это производительность или смысла нету?

Непонятный вопрос. Начнем с того, Stage3D или не Stage3D вообще.
Если мобилы, то можно собирать air со Stage3D, а можно нативное ( Stage3D тогда не используется – это флэшовское понятие, а используется вроде SDL, хотя точно не знаю). Быстродействие в обоих случаев зависит от прямизны рук и нюансов.

ReMind писал(а):
3. Как организована работа с ресурсами на haxe+openFL? Собираем атласы, спрйтшиты, текстуры и дальше работаем как со спрайтами во флеше? Или же рендер в битмапы из вектора через подключенный swc?


Да как сделать, так и будет. В опенфль есть класс Tilesheet. Ему на вход атлас, а на выходе – от платформы. На флэше – через graphics.drawTriandles(), на мобилках через нативное гпу.

Рендер атлосов из swf в рантайме нативным приложением тоже возможен, авторы openfl позаботились, написали свой парсер. Можно макросом. Хакси вообще гибкий очень.

ReMind писал(а):
4. Есть ли удобные средства профилирования. Что-то вроде Скаута как у флеша и эира?


Ответ на этот вопрос будет очевиден, если понять, как все работает. Если свф компилишь – то скаутом и профайлится, ключик у компилятора для включения телеметрии есть. Если нативное приложение, то нужно искать решения для нативных приложений. Но там не все так радужно, как со скаутом.

ReMind писал(а):
5. Вообще много костылей по ходу разработки? Ибо сообщество есть, но оно как-то разбросано. И не всегда удаётся найти решение на ту или иную ошибку/вопрос.

Опять же, как делать. Какие библиотеки использовать, какие API. Сообщество не разбросано, сидит в скайп-чатике, про него уже написали.


Вернуться наверх
 Профиль Отправить e-mail  
 
 Заголовок сообщения: Re: Нужен совет по переходу на haxe
СообщениеДобавлено: Чт июн 19, 2014 1:21 pm 
Не в сети

Зарегистрирован: Сб сен 29, 2012 1:28 pm
Сообщений: 856
Откуда: BY
DYxmZPr писал(а):

Код на хаксе, как я писал в соседней ветке, может компилироваться в swf или превращатсья в код на других языках. В этом случае игровой код, написанный на хаксе, транслируется в код из которого можно собрать нативное приложение. А openFL – это вообще такая штука, которая по сути реализует Flash API на разных платформах, для того, чтобы привычный код можно было собрать в нативное приложение.
Так вот, рендер в опенэфэле сильно зависит от целевой платформы.
На самом деле, сейчас разработчики опенэфэля выделили дополнительный слой абстрации. Есть либа lime, которая реализует отрисовку на низком уровне, специфичную для каждой платформы, написанную на "родном" языке (java/objc/cpp) а опенэфэль выступает в качестве обертки для лайма.
Если платформа мобильная, а Flash API не критичен, можно попробовать работать с лаймом напрямую.

Вектор, само собой, на гпу напрямую рендериться не может. То есть, даже если он отрисовывается через OpenGL, то сначала надо что-то срендерить в текстуру.

Ага, кажется начинаю вникать понемногу. Глянул сорцы опенфль. При создании BitmapData для натива (iOs, Android и прочее):
Код:
lime_bitmap_data_create (width, height, flags, fillColor & 0xFFFFFF, alpha, gpuMode);

Для флеша дефолтные средства flash.display.BitmapData
Для html5:
Код:
__createCanvas (width, height);
__fillRect (new Rectangle (0, 0, width, height), fillColor);

Видимо всё, что идет на натив, оно работает через lime и полюбому это должно работать быстро, как я понимаю.

DYxmZPr писал(а):
Ответ на этот вопрос будет очевиден, если понять, как все работает. Если свф компилишь – то скаутом и профайлится, ключик у компилятора для включения телеметрии есть. Если нативное приложение, то нужно искать решения для нативных приложений. Но там не все так радужно, как со скаутом.

Натив конечно. Под мобилы. Я нашел какой-то профайлер в наборе Android SDK, там вроде можно отслеживать процессы, и даже некоторые функции что-ли. Правда там только нагрузка на проц. Да и с iOs как быть. Вообщем надо еще разбираться. Если что, думаю можно собирать .swf, профайлить его и собирать уже на мобилы. Не 100% рабочая схема, но хоть можно будет сразу увидеть узкие места.

DYxmZPr писал(а):
Опять же, как делать. Какие библиотеки использовать, какие API. Сообщество не разбросано, сидит в скайп-чатике, про него уже написали.

Да, в скайп чате я есть. Всё же в скайпе трудно отслеживать ответы, да и 100% уже были такие вопросы. На форуме было бы конечно легче это всё отыскать и изучить.


Вернуться наверх
 Профиль Отправить e-mail  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 5 ] 

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB