|
27.07.2012, 06:50
|
#1
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
OpenGL ES Изобретение велосипеда
В общем тыкался я на днях в икскод (хотел для Unity плугин написать), понял что знаний мне не хватает и решил, что изучение Obj-C хочется начать с самописного движка для OpenGL ES, но написать его хочется на С++, чтобы потом попробовать запустить его на NDK (со временем, если хватит желания). Так вот хочу попросить сообщество дать советов - на что стоит обратить внимание при разработке такого чудо велосипеда, как соединить С++ движок с Obj-C, дать ссылок по теме. Можно ли подключать С++ библиотеки (например физику) к такому гибриду? в общем прошу дать советы на любые вопросы, которые могут появится по ходу.
Всем заранее спасибо.
PS: в С++ я тоже очень начинающий, писал совсем немного на нем. Заниматься велосипедом буду потихоньку и не факт что начну сразу, хотелось бы сначала теоретически исследовать вопрос что и как.
|
(Offline)
|
|
27.07.2012, 08:48
|
#2
|
Дэвелопер
Регистрация: 14.02.2007
Сообщений: 1,471
Написано 824 полезных сообщений (для 2,920 пользователей)
|
Ответ: OpenGL ES Изобретение велосипеда
изучение Obj-C хочется начать с самописного движка для OpenGL ES, но написать его хочется на С++
|
/0
Но раз пошла такая пьянка, то от obj-c потребуется только делегат приложения и GLES вьюха (инициализация GL, обработка тачей), плюс по необходимости что там тебе потребуется (акселерометр, гироскоп, геймцентр, бла-бла-бла). Весь движок можно спокойно писать на плюсах.
Для начала пойдет что-то такое: http://developer.apple.com/library/m...bjectiveC.html , потом можно книги какие-нибудь почитать.
А, ну и да, любые С++ либы прикручиваться без проблем.
|
(Offline)
|
|
Эти 2 пользователя(ей) сказали Спасибо Knightmare за это полезное сообщение:
|
|
27.07.2012, 09:17
|
#3
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: OpenGL ES Изобретение велосипеда
Вопрос по ходу: Допустим пишу движок на С++, писать его можно не в XCODE, а в любой другой IDE с компиляцией в либу, а в XCODE подключить и использовать?
|
(Offline)
|
|
27.07.2012, 09:22
|
#4
|
Дэвелопер
Регистрация: 14.02.2007
Сообщений: 1,471
Написано 824 полезных сообщений (для 2,920 пользователей)
|
Ответ: OpenGL ES Изобретение велосипеда
Да, но либы только статические линкуются, поэтому проще таки Xcode и юзать. Алсо движку в либе все равно нужна как минимум вьюха, это тоже решаемо, но зощем самому себе создавать проблемы?
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
27.07.2012, 09:31
|
#5
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: OpenGL ES Изобретение велосипеда
Ну я рассматривал вариант, что ядро движка будет независимой либой, а то что касается конкретно iOS, а потом может и Android будет уже отдельно.
А cpp файлы икскод компилит? А то смотрю везде mm.
|
(Offline)
|
|
27.07.2012, 09:33
|
#6
|
Дэвелопер
Регистрация: 14.02.2007
Сообщений: 1,471
Написано 824 полезных сообщений (для 2,920 пользователей)
|
Ответ: OpenGL ES Изобретение велосипеда
Компилит, mm просто поддерживает смесь obj-c и C++, m - только obj-c. В срр соответственно только С++.
|
(Offline)
|
|
Эти 2 пользователя(ей) сказали Спасибо Knightmare за это полезное сообщение:
|
|
27.07.2012, 10:47
|
#7
|
|
Ответ: OpenGL ES Изобретение велосипеда
pax
либы ? но зачем ? clang\llvm настолько шустрый что ~150 compile units простого цпп кода компилит секунд за 10-20
когда будешь проектировать движок то учти андроид - он теряет все opengl ресурсы (текстуры, шейдера и тд) при сворачивании\разворачивании программы
ps. ща pax узнает что селекторы obj-c связываются в рантайме а вызов отсутствующего селектора это ошибка рантайме, а не времени компиляции
|
|
|
Эти 3 пользователя(ей) сказали Спасибо за это полезное сообщение:
|
|
27.07.2012, 14:27
|
#8
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Ответ: OpenGL ES Изобретение велосипеда
Сообщение от jimon
когда будешь проектировать движок то учти андроид - он теряет все opengl ресурсы (текстуры, шейдера и тд) при сворачивании\разворачивании программы
|
Новые версии уже имеют возможность это избегать, и сохранять графический процесс, сворачивая и разворачивая без потери контекста.
Так что думаю что если PAX и будет разрабатывать, то ведь не на вчерашний день, а на "после-завтра", а там уже и 2.3 почти ни у кого не останеться.
По сути ты пишешь движёк, в котором есть разные "Input'ы". Например для тачя. Если пишешь логику тача на С++ (игру), то данные о таче должны попадать в движёк сперва, и для этого пишеться некий "драйвер" под разные платформы. Это простая обёртка минимальных вещей - создание view'а, ловля input'а и отправка его в движёк, и других данных (gps, accelerometer, etc.).
Получается что берёшь твой двиг, игру, и драйвер под нужную платформу и играешь (естественно нужен будет deploy на каждую платформу отдельно чтобы всё это в одну хрень паковать и соединять).
|
(Offline)
|
|
Эти 2 пользователя(ей) сказали Спасибо moka за это полезное сообщение:
|
|
27.07.2012, 15:22
|
#9
|
|
Ответ: OpenGL ES Изобретение велосипеда
MoKa
ваше так званное "будущее" в андроидах не наступает уже год, так что еще как минимум год 2.3 надо поддерживать, а 2.2, да, уже сдает позиции
|
|
|
Сообщение было полезно следующим пользователям:
|
|
27.07.2012, 15:38
|
#10
|
Дэвелопер
Регистрация: 14.02.2007
Сообщений: 1,471
Написано 824 полезных сообщений (для 2,920 пользователей)
|
Ответ: OpenGL ES Изобретение велосипеда
Дооооо, прям уже можно брать и не поддерживать 2.х. От фанатиков ондроеда только и слышно - вот новая версия сейчас выйдет, все кааааак перейдут на нее и будет круто, можно старые и не поддерживать. А вендоры как хуй клали на них, так и кладут, скоро так и 5 версию изрыгнут, а 2.х будет еще больше половины рынка.
|
(Offline)
|
|
Эти 2 пользователя(ей) сказали Спасибо Knightmare за это полезное сообщение:
|
|
27.07.2012, 15:51
|
#11
|
Дэвелопер
Регистрация: 10.09.2007
Сообщений: 1,442
Написано 793 полезных сообщений (для 1,460 пользователей)
|
Ответ: OpenGL ES Изобретение велосипеда
Сообщение от pax
хотел для Unity плугин написать
|
расскажи что за плагин задумал делать?
Сообщение от pax
в С++ я тоже очень начинающий, писал совсем немного на нем. Заниматься велосипедом буду потихоньку и не факт что начну сразу, хотелось бы сначала теоретически исследовать вопрос что и как.
|
моё ИМХО, что Си, С++ и Обджектив Си это три вообще разных языка.
я бы начал только с ОбжЦэ, потому что два-три языка параллельно осваивать довольно нервное занятие.
почему Objective-C++ - плохо? потому что икскод не умеет его рефакторить и для него не работают тесты из коробки (яблоки всё делают для ОбжЦэ).
В ОбжЦэ появилась новая фича - Automatic Reference Counting - избавляет от необходимости руками дергать retain и release у объектов, но как всегда накладывает свои ограничения, но всё равно мегаудобно).
в общем - начни с ОбжЦэ, а так посмотришь.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
27.07.2012, 16:45
|
#12
|
☭
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений (для 2,707 пользователей)
|
Ответ: OpenGL ES Изобретение велосипеда
почему Objective-C++ - плохо?
|
потомучто автор хочет в перспективе андроид. разве это не очевидно?
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
27.07.2012, 16:51
|
#13
|
Дэвелопер
Регистрация: 10.09.2007
Сообщений: 1,442
Написано 793 полезных сообщений (для 1,460 пользователей)
|
Ответ: OpenGL ES Изобретение велосипеда
Сообщение от HolyDel
потомучто автор хочет в перспективе андроид. разве это не очевидно?
|
это был риторический вопрос и сразу на дан него ответ мной же.
ну и да, чота я разочаровался в кроссплатформенности - это ведь как наименьшее общее кратное - приходится отбрасывать фичи, которых нету во всех поддерживаемых платформах.
|
(Offline)
|
|
Эти 2 пользователя(ей) сказали Спасибо ffinder за это полезное сообщение:
|
|
30.07.2012, 01:26
|
#14
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: OpenGL ES Изобретение велосипеда
Сообщение от ffinder
расскажи что за плагин задумал делать?
|
Тут была необходимость в добавлении поддержки smaato рекламы в Unity. Писал плугин не я, а другой человек, тоже начинающий, но более легко разобравшийся в Obj-C, а я даже заголовок от smaato подключить не смог
Сообщение от ffinder
В ОбжЦэ появилась новая фича - Automatic Reference Counting - избавляет от необходимости руками дергать retain и release у объектов, но как всегда накладывает свои ограничения, но всё равно мегаудобно).
|
И тут выясняется, что Unity не создает ARC, который используется в smaato, на чем в общем интеграция пока и закончилась.
Ну и я спешить не буду, времени свободного все равно мало. Может начну писать этот двиг не скоро еще, не загадываю. Спасибо всем за советы! Есть пища для размышлений теперь.
PS: если у кого есть желание дальше пообсуждать вопрос iOS/Android движка, то было бы интересно почитать
|
(Offline)
|
|
06.08.2012, 12:44
|
#15
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: OpenGL ES Изобретение велосипеда
Появилось немного времени покопаться в интернетах на тему математической библиотеки для GLES (не хочу писать свою). Нашел следующие варианты:
1. GLM
2. CML
3. http://eigen.tuxfamily.org/index.php?title=Main_Page
Первая в стиле OpenGL API, что не очень радует, третья шаблонная, вторая вроде бы нормальная, но что-то не нравится она мне. Хочется математику, как в Unity:
Vector3 from = new Vector3(0f, 0f, 0f); Vector3 to = new Vector3(1f, 1f, 1f); Vector3 pos = Vector2.Lerp(from, to, 0.5f)
Есть ли еще альтернативы? Причем хотелось бы, чтобы в библиотеке по умолчанию использовался GLShort, GLInt, GLFloat и т.д.
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 04:54.
|