OpenGL ES Изобретение велосипеда
В общем тыкался я на днях в икскод (хотел для Unity плугин написать), понял что знаний мне не хватает и решил, что изучение Obj-C хочется начать с самописного движка для OpenGL ES, но написать его хочется на С++, чтобы потом попробовать запустить его на NDK (со временем, если хватит желания). Так вот хочу попросить сообщество дать советов - на что стоит обратить внимание при разработке такого чудо велосипеда, как соединить С++ движок с Obj-C, дать ссылок по теме. Можно ли подключать С++ библиотеки (например физику) к такому гибриду? в общем прошу дать советы на любые вопросы, которые могут появится по ходу.
Всем заранее спасибо. PS: в С++ я тоже очень начинающий, писал совсем немного на нем. Заниматься велосипедом буду потихоньку и не факт что начну сразу, хотелось бы сначала теоретически исследовать вопрос что и как. |
Ответ: OpenGL ES Изобретение велосипеда
Цитата:
Но раз пошла такая пьянка, то от obj-c потребуется только делегат приложения и GLES вьюха (инициализация GL, обработка тачей), плюс по необходимости что там тебе потребуется (акселерометр, гироскоп, геймцентр, бла-бла-бла). Весь движок можно спокойно писать на плюсах. Для начала пойдет что-то такое: http://developer.apple.com/library/m...bjectiveC.html , потом можно книги какие-нибудь почитать. А, ну и да, любые С++ либы прикручиваться без проблем. |
Ответ: OpenGL ES Изобретение велосипеда
Вопрос по ходу: Допустим пишу движок на С++, писать его можно не в XCODE, а в любой другой IDE с компиляцией в либу, а в XCODE подключить и использовать?
|
Ответ: OpenGL ES Изобретение велосипеда
Да, но либы только статические линкуются, поэтому проще таки Xcode и юзать. Алсо движку в либе все равно нужна как минимум вьюха, это тоже решаемо, но зощем самому себе создавать проблемы?
|
Ответ: OpenGL ES Изобретение велосипеда
Ну я рассматривал вариант, что ядро движка будет независимой либой, а то что касается конкретно iOS, а потом может и Android будет уже отдельно.
А cpp файлы икскод компилит? А то смотрю везде mm. |
Ответ: OpenGL ES Изобретение велосипеда
Компилит, mm просто поддерживает смесь obj-c и C++, m - только obj-c. В срр соответственно только С++.
|
Ответ: OpenGL ES Изобретение велосипеда
pax
либы ? но зачем ? clang\llvm настолько шустрый что ~150 compile units простого цпп кода компилит секунд за 10-20 когда будешь проектировать движок то учти андроид - он теряет все opengl ресурсы (текстуры, шейдера и тд) при сворачивании\разворачивании программы ps. ща pax узнает что селекторы obj-c связываются в рантайме :crazy: а вызов отсутствующего селектора это ошибка рантайме, а не времени компиляции :crazy: |
Ответ: OpenGL ES Изобретение велосипеда
Цитата:
Так что думаю что если PAX и будет разрабатывать, то ведь не на вчерашний день, а на "после-завтра", а там уже и 2.3 почти ни у кого не останеться. По сути ты пишешь движёк, в котором есть разные "Input'ы". Например для тачя. Если пишешь логику тача на С++ (игру), то данные о таче должны попадать в движёк сперва, и для этого пишеться некий "драйвер" под разные платформы. Это простая обёртка минимальных вещей - создание view'а, ловля input'а и отправка его в движёк, и других данных (gps, accelerometer, etc.). Получается что берёшь твой двиг, игру, и драйвер под нужную платформу и играешь (естественно нужен будет deploy на каждую платформу отдельно чтобы всё это в одну хрень паковать и соединять). |
Ответ: OpenGL ES Изобретение велосипеда
MoKa
ваше так званное "будущее" в андроидах не наступает уже год, так что еще как минимум год 2.3 надо поддерживать, а 2.2, да, уже сдает позиции |
Ответ: OpenGL ES Изобретение велосипеда
Вложений: 1
Вложение 17237
Дооооо, прям уже можно брать и не поддерживать 2.х. От фанатиков ондроеда только и слышно - вот новая версия сейчас выйдет, все кааааак перейдут на нее и будет круто, можно старые и не поддерживать. А вендоры как хуй клали на них, так и кладут, скоро так и 5 версию изрыгнут, а 2.х будет еще больше половины рынка. |
Ответ: OpenGL ES Изобретение велосипеда
Цитата:
Цитата:
я бы начал только с ОбжЦэ, потому что два-три языка параллельно осваивать довольно нервное занятие. почему Objective-C++ - плохо? потому что икскод не умеет его рефакторить и для него не работают тесты из коробки (яблоки всё делают для ОбжЦэ). В ОбжЦэ появилась новая фича - Automatic Reference Counting - избавляет от необходимости руками дергать retain и release у объектов, но как всегда накладывает свои ограничения, но всё равно мегаудобно). в общем - начни с ОбжЦэ, а так посмотришь. |
Ответ: OpenGL ES Изобретение велосипеда
Цитата:
|
Ответ: OpenGL ES Изобретение велосипеда
Цитата:
ну и да, чота я разочаровался в кроссплатформенности - это ведь как наименьшее общее кратное - приходится отбрасывать фичи, которых нету во всех поддерживаемых платформах. |
Ответ: OpenGL ES Изобретение велосипеда
Цитата:
Цитата:
Ну и я спешить не буду, времени свободного все равно мало. Может начну писать этот двиг не скоро еще, не загадываю. Спасибо всем за советы! Есть пища для размышлений теперь. PS: если у кого есть желание дальше пообсуждать вопрос iOS/Android движка, то было бы интересно почитать :-) |
Ответ: OpenGL ES Изобретение велосипеда
Появилось немного времени покопаться в интернетах на тему математической библиотеки для GLES (не хочу писать свою). Нашел следующие варианты:
1. GLM 2. CML 3. http://eigen.tuxfamily.org/index.php?title=Main_Page Первая в стиле OpenGL API, что не очень радует, третья шаблонная, вторая вроде бы нормальная, но что-то не нравится она мне. Хочется математику, как в Unity: PHP код:
|
Часовой пояс GMT +4, время: 21:16. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot