Всем привет.
Сейчас занимаюсь разработкой научного проекта (с последующей возможностью коммерциализации), если в двух словах - 3D моделирование солнечной системы на мобильных платформах. В приложении используются различные алгоритмы (от моделирования ньютоновский физики до эфемеридных теорий),практически реализован full-scale рендеринг планет, поэтому скорость здесь критически важна, отсюда необходимость разработки на C++.
Меня интересует, существуют ли такие игровые движки:
- С открытым исходным кодом (C++)
- Высокоуровневые
- Активно развивающиеся
- Поддерживают мобильные платформы (Android / iOS / UWP)
Экспериментировал с парой популярных движков - Unity и UE4. На юнити кстати сейчас реализован прототип, но не устраивает конкретно скорость работы managed кода, а в UE4 уж больно все нагромождено.
Понравилось писать на C++/Qt, но насколько я понял для разработки на мобильных платформах мне нужна коммерческая лицензия.
Есть какие-либо дельные советы?
quinzer
> Понравилось писать на C++/Qt, но насколько я понял для разработки на мобильных
> платформах мне нужна коммерческая лицензия.
Да нет вроде, и бесплатная сойдёт. Вот только приложение жирное будет, так как придётся таскать Qt с ним. Но это не движок.
quinzer
> На юнити кстати сейчас реализован прототип, но не устраивает конкретно скорость
> работы managed кода
А точно дело именно в скорости кода? Может быть затык в другом и можно оптимизировать?
Да нет вроде, и бесплатная сойдёт. Вот только приложение жирное будет, так как придётся таскать Qt с ним. Но это не движок.
Мне вот не особо понятна сама лицензия LGPL: можно ли публиковать приложение платным, при условии что исходный код закрыт и библиотеки Qt статически линкованы?
P.S. Я согласен с тем что Qt не 3D движок, но на нем писать легче чем на на голом С++ с STL, ибо уровень абстракции в Qt выше.
А точно дело именно в скорости кода? Может быть затык в другом и можно оптимизировать?
К сожалению вот такие вод хардкорные алгоритмы, а раньше все вообще работало в главном потоке, благо я через UniRx все вынес в отдельный поток, так что сейчас FPS относительно стабильный.
Да честно говоря дело тут не только в managed коде, а еще и в потребности кастомизации движка под нужды проекта, что по крайней мере в Unity не сделать. Про UE4 не берусь говорить, т.к. там сложная структура проекта.
quinzer
> На юнити кстати сейчас реализован прототип, но не устраивает конкретно скорость
> работы managed кода
для тяжелых участков, где требуется скорость кода - используй unsafe код, неуправляемый с поддержкой указателей
Остаётся только один вариант — голый C/C++ и SDL для кроссплатформенного OpenGL, загрузки текстур, ttf-шрифтов.
1) Я бы все таки советовал попрофайлить код в Unity. Скорее всего у вас много аллокаций, и из за этого GC постоянно дергается и садит вам перфоманс. Ну в крайнем случае - ленивый алгоритм сделайте.
2) Конкретно по вашему вопросу - либо SDL, либо Marmalade.
Marmalade SDK, в принципе не дорогая лицензия, с++, кроссплатформенность
gary_cho
> Marmalade SDK, в принципе не дорогая лицензия
Та, что не дорогая, требует мармеладовский splash screen
gary_cho
vater
Под мобилки там бесплатная лицензия, и вроде без сплеша ;-) ну и у тс научный проект - я думаю можно и на фришной пока пособирать...
Народ, если вы хотите на этом заработаете или оплачивает контора, то $500 в год не супер большие деньги( 40 баксов в месяц )
Cocos2d-x
С++ кроссплатформенный (винда, мак, линукс, ios, android) движок с открытым кодом. Попробуй
Тема в архиве.