QtSDK: Это слишком медленно для игры?Предложения иначе? - PullRequest
0 голосов
/ 17 декабря 2011

Я создаю игру OpenGL и ищу лучшее кроссплатформенное решение. У меня есть опыт работы с QtSDK с использованием QtCreator, и мне нравится парадигма сигнал / слоты (не фанат MFC, который исключает wxWidgets), и я думаю, что могу легко перенести то, что я уже сделал, на Qt, однако я боюсь, что из-за того, что Qt на основе виджетов это может быть слишком медленно для моей игры. В настоящее время я генерирую (довольно) большую местность и обрабатываю много объектов (2-500+), некоторые из которых содержат много частиц (~ 2-500 ^ ~ 2-500), при этом мне необходимо эффективно обрабатывать ввод с клавиатуры и мыши (все что я делаю в настоящее время в OpenGL, без каких-либо более высокого уровня за исключением GLew).

Мне также интересен SFML, поскольку он может обрабатывать создание окон и аудио / сети, и, кажется, довольно дружелюбен с OpenGL.

Мой вопрос: вы сделали трехмерную игру, используя QtSDK? Это было отзывчиво? Любые советы будут полезны, прежде чем я начну портировать множество кода на Qt, только чтобы разочароваться.

Заранее спасибо!

Ответы [ 4 ]

1 голос
/ 20 декабря 2011

Хотя у меня только небольшой опыт работы с QT, недавно я наткнулся на одну интересную новость: http://labs.qt.nokia.com/2011/12/15/qt-4-8-0-released/

Теперь можно создавать «многопоточные» решения OpenGL.Я думаю, что это может улучшить производительность.Один поток может нести полную ответственность за графический интерфейс (виджеты), а другие - за OpenGL (один за рендеринг, один за загрузку ресурсов и т. Д.).

В общем, я думаю, что для простых или казуальных игр достаточно QT.Конечно, вы не сможете создавать в ней игры ААА:)

1 голос
/ 17 декабря 2011

В общем, если вы создаете игру, вам следует избегать использования Qt для создания вашего окна OpenGL. Вы можете использовать Qt для некоторых вещей (строки Unicode, сигнализация и т. Д.), Но Qt не обеспечивает все входные данные, звуковой процесс и т. Д., Которые вам понадобятся при создании игры. Это не облегчит соблюдение строгих сроков, в которых нуждается большинство игр.

Если вы ищете кроссплатформенную основу для разработки игр, вам следует изучить SFML / SDL / Allegro5. Все это идеально подходит для разработки игр.

1 голос
/ 17 декабря 2011

Если вы уже все делаете в OpenGL, я не вижу причин для переключения.Сигналы и слоты работают медленнее, чем в ручном режиме, и требуют этапа сборки перед компиляцией, что затрудняет перенос через них.

Qt не повлияет на производительность (или не должно хотя бы), если все QGLWidgetпараметры установлены правильно (скорость обновления и перерисовки).Если вы собираетесь использовать OpenGL для рисования виджетов Qt GL (что также возможно), это, вероятно, повлияет на производительность.

Я полагаю, вы забыли, что такое SDL : API по категориям

0 голосов
/ 18 декабря 2011

Я недавно создал примеры с моделями и т. Д. В Qt.Qt не слишком медленный или что-то в этом роде.Если вы хотите создать игру или что-то в Qt, тогда продолжайте.Qt предлагает конечному пользователю многое, используя Qt.Так что игнорируйте все остальные ответы.У меня никогда не было проблем со скоростью.

...