2013-10-16 3 views
-2

Мы небольшая компания с 2 программистами. В настоящее время мы делаем небольшие 2D и 3D-игры для настольных компьютеров и мобильных устройств, используя Adobe Flash/Air. Мы хотим прекратить использовать эту структуру и начать обучение и разработку на C++, потому что на C++ есть намного больше и лучше библиотеки и фреймворки.Нужна консультация по выбору фреймов 3D и 2D C++

Я не уверен в библиотеках, которые нужно использовать для рендеринга. Я знаю, что Ogre3D - отличный движок рендеринга для 3D-контента, но иногда нам нужно делать 2D-игры или игры «2.5D», иногда с воспроизведением видео и все, что нужно смешивать с 3D-сценами.

Я знаю, что существуют 2D-фреймворки, такие как cocos2D-x и smfl, которые работают с OpenGL (я мало знаю об OpenGL) и могу выполнять все 2D-вещи, которые мне нужны, но могут ли эти рамки быть объединены с Ogre3D? И можно ли это сделать без необходимости знать, как все внутренние вещи Ogre3D или OpenGL работают?

Если Ogre3D можно комбинировать с любым 2D-движком, что мне нужно, чтобы научиться объединять фреймворки?

+0

Любая причина, по которой вы не просто используете единство? – bitwise

+1

Вы можете сделать 2D в огре. Не забывайте, что 2D - это просто плоскость в 3D. – paddy

+1

Зачем вам нужно комбинировать 2D-движок с трехмерным? Я думаю, что игра может быть 2D * или * 3D, поэтому нет оснований для объединения. Или нет? Кроме того, на мой взгляд, SFML неплохо подходит для 2D. – Drop

ответ

0

Учитывая, что вы используете flash, я предполагаю, что вы не портируете старый код на C++.

Кроме того, поскольку вы не хотите знать, как работают внутренние рамки используемой структуры или как работает OpenGL, вам не нужен язык с низким уровнем, например C++.

Множество библиотек с открытым исходным кодом не является очень веской причиной для программирования вашей игры на C++.

Unity3D имеет бесплатную базовую лицензию и предоставляет все необходимое из коробки.

На данный момент вы можете использовать самолеты с текстурами для выполнения 2D-работы, но Unity также выйдет с набором Native 2D Tools в ближайшем будущем. Также создается new GUI system.

Для любой библиотеки C++, которую, по вашему мнению, вам может понадобиться, возможно, что-то уже встроенное в единство, которое делает то, что вы хотите. Если этого не происходит, возможно, есть порт .NET, который вы можете использовать. И если все остальное не удается, вы можете написать интерфейс C для любой библиотеки, в которой вы нуждаетесь, и использовать ее в качестве плагина в Unity.

Одна из больших проблем с Unity заключается в том, что вам нужно использовать Unity Pro для использования плагинов. Лицензии Unity для каждой платформы. Поэтому, если вы решите использовать плагины и выпустите свою игру для нескольких платформ, вы можете в конечном итоге заплатить много денег в licensing fees.

И, наконец, это не просто рамка приложения, в которой вы нуждаетесь. Вам также понадобится редактор уровней. Построение редактора уровня 3D не является тривиальной задачей, и учитывая, что ваша команда состоит всего из двух человек, этого факта в одиночку должно быть достаточно, чтобы серьезно рассмотреть возможность использования Unity.

Так что если вы переносите старый код, не требуются низкоуровневый доступ к оборудованию, или имеют особые потребности в машинный код, мой совет не использовать C++, просто использовать Unity.

+0

Прежде всего, следующий выпуск Unreal engine 4, а не 2. Во-вторых, если вы хотите только изучить C++, неважно, какую структуру вы используете. Все они имеют преимущества и недостатки. И поскольку что-то столь же важное, как желание использовать OpenCV, было исключено из вашего первоначального вопроса, вы либо намеренно упускаете важные детали, либо не знаете, чего хотите. Оба этих случая не позволяют кому-либо дать вам реальный осмысленный ответ на ваш вопрос. – bitwise

+0

Не совсем вне темы. Вы просили совета, и это мое. Я тоже предпочитаю C++, но, учитывая вашу цель, которая кажется очень амбициозной для команды из двух человек, C++, вероятно, не самый лучший вариант. Но если вы все еще настаиваете на использовании C++, вы должны отредактировать свой оригинальный пост с более подробной информацией о том, что вам нужно. – bitwise

-1

Мы еще одна небольшая команда, работающая над развитием игры.

Мы попробовали множество движков рендеринга и, наконец, расположились с двигателем Irrlicht Rendering. Irrlicht не лучше, чем Ogre 3D, или я не пытаюсь это доказать. Мы чувствовали, что Irrlicht более гибкий для нашей потребности. Он также поддерживает 2D-рендеринг и довольно быстро с пакетной загрузкой. Irrlicht можно легко портировать на другие платформы. Нам потребовалась неделя, чтобы отправить его в Google Chrome NaCl.

Irrlicht - это очень простая система рендеринга, поддерживающая OpenGL и OpenGL ES, поэтому ее легко перейти на мобильный. Вы можете добавлять любые дополнительные функции без особых усилий. Некоторые из наших игр доступны для iOS, Android, Windows PC, Mac OSX, Linux и Google Chrome.

+1

Поскольку я работаю с Ogre3D, некоторые быстрые комментарии: Ogre3D также доступен для многих платформ, включая порт NaCl. То же самое касается OpenGL и OpenGL ES (так что все iOS, Android, WP8). Bottom Line: Что касается кросс-платформенной поддержки, Irrlicht и Ogre3D очень похожи. –

+0

Единственной причиной, которую мы выбрали против Ogre3d, является то, что она довольно продвинута по сравнению с Irrlicht. Ogre3d имеет расширенные функции, такие как Mesh Batching, Instancing, все реализованные в ядре. Тем не менее, Irrlicht также имеет эти особенности с некоторыми изменениями от сообщества. это дает нам гибкость. Все зависит от ваших потребностей. Если вы пытаетесь изучить материал перед его добавлением, вы можете выбрать Irrlicht, с другой стороны, у Ogre3d все готово для вас. – codetiger

0

Да, Ogre3D может обрабатывать такие «2D-задачи», как воспроизведение видео. Просто плоскость в 3D-пространстве, на которую он проецируется. Однако для чистых 2D-проектов движок 3D-рендеринга, такой как Ogre3D, обычно переполняется. Если вы говорите об 2,5D, вы снова играете с Ogre3D.

Относительно интеграции: Не совсем уверен, но я думаю, что для этих других 2D-фреймворков нужен контекст рендеринга OpenGL, который вы можете получить от Ogre.

EDIT:Same question был спросил у официальных форумов Ogre3D.

Смежные вопросы