forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Android (http://forum.boolean.name/forumdisplay.php?f=150)
-   -   Движки. Графические движки. AndEngine (http://forum.boolean.name/showthread.php?t=17921)

Reizel 22.02.2013 02:01

Движки. Графические движки. AndEngine
 
Купил себе на днях вдройдную машинку - explay informer 921. Забавная штука, понравилось всё (ибо ранее не имел подобной техники). Наигравшись во всякую муть, и вдоволь поюзав его, решил написать на него какую-нито примитивную игрулю. Почитал прикрепленные тут темы (большое спасибо odd за его туторы :) ), потратил пару минут на изучение Жабы, намутил некий прототип игрули, чисто потестить мультитач, и для общего развития. Но мне не вставило то, что стандартное рисование на канве - потенциально медленное, и нифига не перспективное, плюсом к тому был беглый список всех граф.функций графики, их мне показалось недостаточно.

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

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

К тому же, меня добила идея засовывать графику в объекты, ибо для рендера элементарного эллипса\квадрата\линии - нужно создавать отдельный объект, аттачить к сцене... Геморой, это оправдано в 3Д, но в 2Д я не вижу необходимости в этом.

На основании всего этого, хочу спросить у людей с опытом:
1) Есть ли какие-либо движки с примитивным принципом вывода графики?
2) Как заставить AndEngine мутить рендер постоянно?

Заранее спасибо)

jimon 22.02.2013 02:39

Ответ: Движки. Графические движки. AndEngine
 
попробуй напрямую opengl по-юзать

Цитата:

эллипса
GPU не умеет рисовать эллипс, потому тебе понадобится его рисовать в текстуре, а текстуру выводить прямоугольником

Mr_F_ 22.02.2013 02:43

Ответ: Движки. Графические движки. AndEngine
 
Цитата:

потому тебе понадобится его рисовать в текстуре, а текстуру выводить прямоугольником
оч сомневаюсь что достаточно чёткую текстуру эллипса, да ещё и с прозрачностью вокруг читать/рисовать будет быстрее чем тупо швырнуть на рендер полигональное подобие эллипса.

Reizel 22.02.2013 13:19

Ответ: Движки. Графические движки. AndEngine
 
Цитата:

Сообщение от jimon (Сообщение 253487)
попробуй напрямую opengl по-юзать

Пробовал, но сейчас там OpenGL ES, и много гемора с вершинными буферами. Если только свой примитивный недодвиг-враппер мутить. Хотелось просто взять уже готовое решение.

Есть Monkey, он вроде как умеет на ведройды компилять, и двигло там норм, хоть и язык басик. Но я не нашел, можно ли бесплатно заставить его это делать. В конце-концов, не охота вкладывать деньги в кота в мешке.

RegIon 22.02.2013 17:03

Ответ: Движки. Графические движки. AndEngine
 
Unity3d, или тебя только 2D устраивает?

Reizel 22.02.2013 17:17

Ответ: Движки. Графические движки. AndEngine
 
Цитата:

Сообщение от Костян (Сообщение 253520)
Unity3d, или тебя только 2D устраивает?

Ни в коем случае не юнити, + нужно именно 2Д

RegIon 22.02.2013 19:37

Ответ: Движки. Графические движки. AndEngine
 
Цитата:

Сообщение от Reizel (Сообщение 253521)
Ни в коем случае не юнити, + нужно именно 2Д

по сути, 2d умер уже, в любом случае это будет 3d. Пиши на голом GL как советовали

jimon 22.02.2013 19:40

Ответ: Движки. Графические движки. AndEngine
 
Reizel
Скрытый текст (вы должны войти под своим логином или зарегистрироваться и иметь 100 сообщение(ий)):
У вас нет прав, чтобы видеть скрытый текст, содержащийся здесь.

ARA 22.02.2013 20:05

Ответ: Движки. Графические движки. AndEngine
 
Цитата:

Ни в коем случае не юнити, + нужно именно 2Д
Ты гонишь. Rovio соих свинок на Unity сделали. Чем тебе не 2д?
http://www.badpiggies.com/

Reizel 23.02.2013 00:46

Ответ: Движки. Графические движки. AndEngine
 
Arenshi: у юнити своя идеология, и мне кажется, что слишком много там сделано через жопу. Все уже заточено так, как сделали создатели юнити. Это мое имхо, и меня не переубедишь. На чистом огле, повторюсь, слишком много гемора, я хочу писать игру, а не очередной г-новраппер.

Все таки пока склоняюсь именно к манки, идеология у нее мне доставляет)
jimon,
мэйби подскажешь как содеять такое?

Данил 18.03.2013 21:10

Ответ: Движки. Графические движки. AndEngine
 
гы, сколько там лицензия разработчика на гугле + лицензия монки стоит?...
а то скоро релиз, хочу кинуть на гугл плей, дак лицензиями надо обзавестись...

dimanche13 18.03.2013 22:00

Ответ: Движки. Графические движки. AndEngine
 
25 баксов вроде стоит + манки баксов 100.

devolonter 18.03.2013 22:08

Ответ: Движки. Графические движки. AndEngine
 
Если быть точнее ровно $25 аккаунт разработчика на Google Play и $99 Monkey. Оба платежа единоразовые.

pozitiffcat 16.04.2013 10:28

Ответ: Движки. Графические движки. AndEngine
 
Вложений: 2
Скоро будет m4engine. Все операции сводятся к такому стилю написания
m4::load_texture
m4::draw_texture_opt
m4::draw_texture_prop

m4::begin_batch_opt
m4::add_to_batch_opt
m4::end_batch

Язык c++
скорость на высоте, возможность работать с матрицами, компиляция по windows, linux, android. Свое приложение для сборки приложения. Программирование в Qt creator. Интеграция Box 2D.
Скорее это api чем engine. Оно и логично, для каждого приложения свой скелет.
Из фич:
текстуры, рендер в текстуру, любой растровый формат текстур, хоть psd.
виртуальное рабочее пространство, при любом разрешении приложение выглядит одинаково
2 вида рисования, легкое и про, легкое - быстрое, про - использует матрицы
наложение цвета, алфы
работа с атласами
звуки
работа с 3д и шейдерами, эта часть движка выполнена очень гибко и прозрачно, можно творить все что угодно, в рамках opengl es 2, очень сложна эта часть для новичков, т.к. здесь нужно знать тонкости работы 3д. Но я тружусь над созданием helper библиотеки для этого

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

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

вот список команд на данный момент:
PHP код:

extern "C" void M4EXPORT log(const char *fmt, ...);
extern "C" void M4EXPORT load_pak(const m4::String &fileName);
extern "C" void M4EXPORT init(const m4::uint16 width, const m4::uint16 heightm4::function initFuncm4::function loopFunc);
extern "C" m4::Texture M4EXPORT *load_texture(const m4::String &fileName);
extern "C" m4::Texture M4EXPORT *create_texture();
extern "C" void M4EXPORT remove_texture(m4::Texture *texture);
extern "C" bool M4EXPORT is_file_exists(const m4::String &fileName);
extern "C" m4::File M4EXPORT *load_file(const m4::String &fileName);
extern "C" void M4EXPORT remove_file(m4::Filefile);
extern "C" void M4EXPORT draw_texture_opt(m4::Texturetexture, const m4::DrawOptions *options);
extern "C" void M4EXPORT draw_texture_prop(m4::Texturetexture, const m4::DrawProperties *prop);
extern "C" float M4EXPORT get_time();
extern "C" float M4EXPORT get_delta_time();
extern "C" bool M4EXPORT is_key_down(const m4::uint8 key);
extern "C" bool M4EXPORT is_key_hit(const m4::uint8 key, const bool reset false);
extern "C" bool M4EXPORT is_key_up(const m4::uint8 key, const bool reset false);
extern "C" bool M4EXPORT is_mouse_down(const m4::uint8 id);
extern "C" bool M4EXPORT is_mouse_hit(const m4::uint8 id, const bool reset false);
extern "C" bool M4EXPORT is_mouse_up(const m4::uint8 id, const bool reset false);
extern "C" int16 get_mouse_x(const m4::uint8 id);
extern "C" int16 get_mouse_y(const m4::uint8 id);
extern "C" m4::SoundM4EXPORT load_sound(const m4::String &fileName);
extern "C" void M4EXPORT remove_sound(Sound *sound);
extern "C" void M4EXPORT play_music(const m4::String &fileName);
extern "C" void M4EXPORT stop_sound();
extern "C" void M4EXPORT set_z_buffer(const bool value);
extern "C" void M4EXPORT set_alpha_thresold(const float thresold);
extern "C" void M4EXPORT set_virtual_screen(const m4::uint16 width, const m4::uint16 height);
extern "C" void M4EXPORT open_url(const m4::String &url);
extern "C" int M4EXPORT set_parameter(const m4::String &parameter, const m4::String &value);
extern "C" m4::String M4EXPORT get_locale();
extern "C" m4::String M4EXPORT get_application_data_path();
extern "C" bool M4EXPORT is_batch_begin_prop(m4::uint32 index 0);
extern "C" bool M4EXPORT is_batch_begin_opt(m4::uint32 index 0);
extern "C" void M4EXPORT begin_batch_prop(m4::uint32 index 0);
extern "C" void M4EXPORT begin_batch_opt(m4::uint32 index 0);
extern "C" void M4EXPORT add_to_batch_opt(const m4::DrawOptions *optionsm4::uint32 index 0);
extern "C" void M4EXPORT add_to_batch_prop(const m4::DrawProperties *propm4::uint32 index 0);
extern "C" void M4EXPORT end_batch_prop(m4::Texturetexturem4::uint32 index 0);
extern "C" void M4EXPORT end_batch_opt(m4::Texturetexturem4::uint32 index 0);
extern "C" m4::uint32 M4EXPORT get_draw_calls();
extern "C" m4::uint32 M4EXPORT get_draw_objects();
extern "C" m4::uint16 M4EXPORT get_window_width();
extern "C" m4::uint16 M4EXPORT get_window_height();
extern "C" m4::uint16 M4EXPORT get_virtual_screen_width();
extern "C" m4::uint16 M4EXPORT get_virtual_screen_height();
extern "C" m4::ShaderM4EXPORT create_shader(const m4::String &vertexSource, const m4::String &fragmentSource);
extern "C" void M4EXPORT RemoveShader(m4::Shadershader);
extern "C" m4::GeometryM4EXPORT create_geometry(m4::bytevertData, const m4::uint32 verticesm4::uint16indexData, const m4::uint32 indicesm4::uint16 vertexSize);
extern "C" void M4EXPORT remove_geometry(m4::Geometrygeometry);
extern "C" void M4EXPORT draw_geometry(m4::Geometrygeometrym4::Shadershaderm4::VertexAttributeList *attributesm4::uint32 offset 0m4::uint32 count 0); 

Пример и скрин во вложении
Файл zip, переименовать в apk!!!!


Часовой пояс GMT +4, время: 17:26.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot