|
Android Разработка игр на платформе Android |
22.02.2013, 02:01
|
#1
|
Задрот
Регистрация: 24.07.2009
Адрес: Ивановская область, г. Кинешма
Сообщений: 1,574
Написано 407 полезных сообщений (для 863 пользователей)
|
Движки. Графические движки. AndEngine
Купил себе на днях вдройдную машинку - explay informer 921. Забавная штука, понравилось всё (ибо ранее не имел подобной техники). Наигравшись во всякую муть, и вдоволь поюзав его, решил написать на него какую-нито примитивную игрулю. Почитал прикрепленные тут темы (большое спасибо odd за его туторы ), потратил пару минут на изучение Жабы, намутил некий прототип игрули, чисто потестить мультитач, и для общего развития. Но мне не вставило то, что стандартное рисование на канве - потенциально медленное, и нифига не перспективное, плюсом к тому был беглый список всех граф.функций графики, их мне показалось недостаточно.
Порывшись в инете, нашол движок AndEngine, ибо есть множество хороших отзывов. Скачал, прилепил к про экту, создал поток для логики, графикой, как я думал, должен заняться сам движок.
В итоге:
Логика работает исправно, а вот рендер зависит от фазы луны. Т.е. первый кадр рендерит, последующие - нет, такое впечатление, будто надо либо специфически настраивать EngineOptions для постоянного рендера, либо насильно заставлять двигло работать. Так и не разобрался с этим вопросом.
К тому же, меня добила идея засовывать графику в объекты, ибо для рендера элементарного эллипса\квадрата\линии - нужно создавать отдельный объект, аттачить к сцене... Геморой, это оправдано в 3Д, но в 2Д я не вижу необходимости в этом.
На основании всего этого, хочу спросить у людей с опытом:
1) Есть ли какие-либо движки с примитивным принципом вывода графики?
2) Как заставить AndEngine мутить рендер постоянно?
Заранее спасибо)
|
(Offline)
|
|
22.02.2013, 02:39
|
#2
|
|
Ответ: Движки. Графические движки. AndEngine
попробуй напрямую opengl по-юзать
GPU не умеет рисовать эллипс, потому тебе понадобится его рисовать в текстуре, а текстуру выводить прямоугольником
|
|
|
22.02.2013, 02:43
|
#3
|
Терабайт исходников
Регистрация: 13.09.2008
Сообщений: 3,947
Написано 2,189 полезных сообщений (для 6,051 пользователей)
|
Ответ: Движки. Графические движки. AndEngine
потому тебе понадобится его рисовать в текстуре, а текстуру выводить прямоугольником
|
оч сомневаюсь что достаточно чёткую текстуру эллипса, да ещё и с прозрачностью вокруг читать/рисовать будет быстрее чем тупо швырнуть на рендер полигональное подобие эллипса.
|
(Offline)
|
|
Эти 2 пользователя(ей) сказали Спасибо Mr_F_ за это полезное сообщение:
|
|
22.02.2013, 13:19
|
#4
|
Задрот
Регистрация: 24.07.2009
Адрес: Ивановская область, г. Кинешма
Сообщений: 1,574
Написано 407 полезных сообщений (для 863 пользователей)
|
Ответ: Движки. Графические движки. AndEngine
Сообщение от jimon
попробуй напрямую opengl по-юзать
|
Пробовал, но сейчас там OpenGL ES, и много гемора с вершинными буферами. Если только свой примитивный недодвиг-враппер мутить. Хотелось просто взять уже готовое решение.
Есть Monkey, он вроде как умеет на ведройды компилять, и двигло там норм, хоть и язык басик. Но я не нашел, можно ли бесплатно заставить его это делать. В конце-концов, не охота вкладывать деньги в кота в мешке.
|
(Offline)
|
|
22.02.2013, 17:03
|
#5
|
Элита
Регистрация: 16.01.2010
Адрес: Новосибирск
Сообщений: 2,158
Написано 502 полезных сообщений (для 1,012 пользователей)
|
Ответ: Движки. Графические движки. AndEngine
Unity3d, или тебя только 2D устраивает?
|
(Offline)
|
|
22.02.2013, 17:17
|
#6
|
Задрот
Регистрация: 24.07.2009
Адрес: Ивановская область, г. Кинешма
Сообщений: 1,574
Написано 407 полезных сообщений (для 863 пользователей)
|
Ответ: Движки. Графические движки. AndEngine
Сообщение от Костян
Unity3d, или тебя только 2D устраивает?
|
Ни в коем случае не юнити, + нужно именно 2Д
|
(Offline)
|
|
22.02.2013, 19:37
|
#7
|
Элита
Регистрация: 16.01.2010
Адрес: Новосибирск
Сообщений: 2,158
Написано 502 полезных сообщений (для 1,012 пользователей)
|
Ответ: Движки. Графические движки. AndEngine
Сообщение от Reizel
Ни в коем случае не юнити, + нужно именно 2Д
|
по сути, 2d умер уже, в любом случае это будет 3d. Пиши на голом GL как советовали
|
(Offline)
|
|
22.02.2013, 19:40
|
#8
|
|
Ответ: Движки. Графические движки. AndEngine
Reizel
Скрытый текст (вы должны войти под своим логином или зарегистрироваться и иметь 100 сообщение(ий)):
У вас нет прав, чтобы видеть скрытый текст, содержащийся здесь.
|
|
|
|
Сообщение было полезно следующим пользователям:
|
|
22.02.2013, 20:05
|
#9
|
ТЫ ЧООО?
Регистрация: 26.02.2007
Сообщений: 3,369
Написано 2,020 полезных сообщений (для 7,192 пользователей)
|
Ответ: Движки. Графические движки. AndEngine
Ни в коем случае не юнити, + нужно именно 2Д
|
Ты гонишь. Rovio соих свинок на Unity сделали. Чем тебе не 2д?
http://www.badpiggies.com/
__________________
Вертекс в глаз или в пиксель раз?
|
(Offline)
|
|
Эти 4 пользователя(ей) сказали Спасибо ARA за это полезное сообщение:
|
|
23.02.2013, 00:46
|
#10
|
Задрот
Регистрация: 24.07.2009
Адрес: Ивановская область, г. Кинешма
Сообщений: 1,574
Написано 407 полезных сообщений (для 863 пользователей)
|
Ответ: Движки. Графические движки. AndEngine
Arenshi: у юнити своя идеология, и мне кажется, что слишком много там сделано через жопу. Все уже заточено так, как сделали создатели юнити. Это мое имхо, и меня не переубедишь. На чистом огле, повторюсь, слишком много гемора, я хочу писать игру, а не очередной г-новраппер.
Все таки пока склоняюсь именно к манки, идеология у нее мне доставляет)
jimon,
мэйби подскажешь как содеять такое?
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
18.03.2013, 21:10
|
#11
|
Модератор
Регистрация: 11.07.2007
Сообщений: 2,910
Написано 686 полезных сообщений (для 1,694 пользователей)
|
Ответ: Движки. Графические движки. AndEngine
гы, сколько там лицензия разработчика на гугле + лицензия монки стоит?...
а то скоро релиз, хочу кинуть на гугл плей, дак лицензиями надо обзавестись...
|
(Offline)
|
|
18.03.2013, 22:00
|
#12
|
Мастер
Регистрация: 19.03.2007
Сообщений: 1,039
Написано 153 полезных сообщений (для 252 пользователей)
|
Ответ: Движки. Графические движки. AndEngine
25 баксов вроде стоит + манки баксов 100.
|
(Offline)
|
|
18.03.2013, 22:08
|
#13
|
Разработчик
Регистрация: 17.01.2007
Сообщений: 409
Написано 114 полезных сообщений (для 281 пользователей)
|
Ответ: Движки. Графические движки. AndEngine
Если быть точнее ровно $25 аккаунт разработчика на Google Play и $99 Monkey. Оба платежа единоразовые.
|
(Offline)
|
|
16.04.2013, 10:28
|
#14
|
Мастер
Регистрация: 09.05.2010
Адрес: Самара
Сообщений: 1,083
Написано 254 полезных сообщений (для 533 пользователей)
|
Ответ: Движки. Графические движки. AndEngine
Скоро будет 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 работает на порядок быстрей, и проще
вот список команд на данный момент:
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 height, m4::function initFunc, m4::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::File* file); extern "C" void M4EXPORT draw_texture_opt(m4::Texture* texture, const m4::DrawOptions *options); extern "C" void M4EXPORT draw_texture_prop(m4::Texture* texture, 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::Sound* M4EXPORT 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 ¶meter, 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 *options, m4::uint32 index = 0); extern "C" void M4EXPORT add_to_batch_prop(const m4::DrawProperties *prop, m4::uint32 index = 0); extern "C" void M4EXPORT end_batch_prop(m4::Texture* texture, m4::uint32 index = 0); extern "C" void M4EXPORT end_batch_opt(m4::Texture* texture, m4::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::Shader* M4EXPORT create_shader(const m4::String &vertexSource, const m4::String &fragmentSource); extern "C" void M4EXPORT RemoveShader(m4::Shader* shader); extern "C" m4::Geometry* M4EXPORT create_geometry(m4::byte* vertData, const m4::uint32 vertices, m4::uint16* indexData, const m4::uint32 indices, m4::uint16 vertexSize); extern "C" void M4EXPORT remove_geometry(m4::Geometry* geometry); extern "C" void M4EXPORT draw_geometry(m4::Geometry* geometry, m4::Shader* shader, m4::VertexAttributeList *attributes, m4::uint32 offset = 0, m4::uint32 count = 0);
Пример и скрин во вложении
Файл zip, переименовать в apk!!!!
Последний раз редактировалось pozitiffcat, 16.04.2013 в 17:32.
Причина: пример
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 01:35.
|