LINUX.ORG.RU

Нужно ли мне использовать Qt?


0

0

В планах есть написать графическую игрушку на плюсах, а заодно с этим получше углубиться в язык. Вопрос: стоит ли мне для этого использовать кути? Для себя нашел несколько плюсов и минусов.
Плюсы:
- Мощная и удобная среда разработки QtCreator
- Сотни документации в том же креаторе
- Более легкая портируемость на другие платформы
Минусы:
- Необходимость качать лишние мегабайты библиотек тем, кто захочет поиграть
- Вероятно, более низкая производительность (если не прав - поправьте)
- Ну костыль же!
В общем, хотелось бы услышать ваше мнение.

★★★★★

Сразу извините, если вопрос вам покажется глупым. Пока в этом совсем новичок.

pevzi ★★★★★
() автор топика
Ответ на: комментарий от panter_dsd

Ну типа. Вместо прямого обращения к опенглю буду использовать кутишную обертку. Это никаких недостатков за собой не несет?

pevzi ★★★★★
() автор топика
Ответ на: комментарий от pevzi

Я как раз понимаю, что это сильно упрощает разработку под разные платформы, я уже об этом написал. Но хотелось бы и о минусах услышать (:

pevzi ★★★★★
() автор топика
Ответ на: комментарий от pevzi

Я минусов пока не нашел. Использую уже больше 3-х лет.

panter_dsd ★★★★
()
Ответ на: комментарий от pevzi

>Вместо прямого обращения к опенглю буду использовать кутишную обертку

Скачай книжку по опенгл и почитай, если так переживаешь - скажу сразу - там много много и еще раз много всего)

А так, если замыслил что-то действительно стоящее то бери тот же Ogre3D, как бы опенгл в кути никакого отношения к игрушкам не имет (:

xscrew ★★
()

Видел забавную демку где на opengl наваяли простенький 3d лабиринт, а в стенах были встроенные qt-шные виджеты.
Забавно выглядит)

CyberTribe ★★
()
Ответ на: комментарий от xscrew

++
Вопрос в цели. Просто игрушку, а не заказ - легче взять огр. Кстати, недавно его новый релиз вышел(нужно запилить новость, кстати).
Если есть желание понять как всё это делается(от создания эмиттеров до целого движка), то учи opengl. Для движка лучше юзать голый апи. Хотя я не смотрел обёртку кути, хотя может быть что там много чего уже готово, так сказать основа для движка.
Писать движок на огл с нуля - ужас. Одному не реально. По опыту говорю. Если хочешь что-то нормальное сделать - бери огра.
Конечно, без элементарных знаний о том что такое эмиттер, шейдер, матрицы opengl(проекций, перемещения, поворота, «зума» etc), ragdoll, кубмеппинг и другие способы создания окружения etc etc etc, ты не сможешь заюзать даже огра. По сему почитай что-нить о гейм-деве и огл чисто для получения теории.
И да. Вопрос о применении кути очень важен. Сейчас лично я не хочу писать на плюсах без кутей. Почему? Да потому что без кутей приходится сначала мастерить тысячи велосипедов, разбираться в том, на чём ты делаешь велосипеды, узнавать что что-то придётся делать кросс-платформенным и опять делать велосипеды. Не делать велосипеды - брать что-то готовое. Возьмёшь буст - ещё год точно будешь бояться плюсов. Простынки ошибок темплейтов буста очень сильно воздействуют на мозг, знаешь ли.
Так вот, лучше в любом случае используй среду qt для разработки, в т.ч. и все фичи кутей(сигналы/слоты, проперти etc), ибо они облегчат тебе жизнь, а оверхеда не будет вообще.

tia
()
Ответ на: комментарий от CyberTribe

Угу, тоже видел кое-что подобное. Только там было как в думе:
комната и в ней терминал, подходишь к нему и твой курсор становится в виде указателя на терминале, на котором кутишная форма с виджетами.

tia
()

Если вбить в поисковике «ogre-qt» то можно найти зачатки :)
Лично я бы сделал на Qt, потому что основные требования закрывает сразу и все библиотеки уже итак находятся в памяти (кдеешник).
А игра в основном зависит от сюжета, моделей, дизайна, озвучки. Сейчас производительности хватит для всего, высоко-технологическую игру сразу делать не стоит, лучше делать интересную игрушку... а уж потом добавлять пост-эффектов...

C_H_A_D_o
()

Мощную и удобную среду разработки Qt Creator можно использовать для создания программ совсем не использующих Qt.

anonymous
()
Ответ на: комментарий от pevzi

>Вместо прямого обращения к опенглю буду использовать кутишную обертку.

Надо же, оказывается Кт уже обернула весь ОпенГЛ.

anonymous
()

И вообще есть LibSDL. Зачем для игрушечной графики и углубления в С++ связываться с Qt?.

anonymous
()

кстате, весь Ogre - это си++, так что начинай на нем писать.

xscrew ★★
()
Ответ на: комментарий от xscrew

Хм, я думаю, огр мне не совсем подходит. И опенгл может даже я зря упомянул. В общем, в планах сделать игру, по графике похожей на World of Goo, т.е. не 3д.

pevzi ★★★★★
() автор топика
Ответ на: комментарий от tia

Спасибо, значит таки остановлюсь на кутях. Кстати, со звездой тебя (:

pevzi ★★★★★
() автор топика
Ответ на: комментарий от anonymous

Затем что проще, удобнее, привычнее, лучше. Нет нужды выбирать среди кактусов если есть «родное».

кстате, весь Ogre - это си++, так что начинай на нем писать.

Если бы шёл разговор о языке...

tia
()
Ответ на: комментарий от pevzi

Тогда да, лучше брать сразу кути или, может даже, какой-нить простой 2д-движок.

Спасибо, значит таки остановлюсь на кутях. Кстати, со звездой тебя (:

Thx ^^'

tia
()
Ответ на: комментарий от tia

>Если бы шёл разговор о языке

Ну а чо - у человека было желание познать кресты, написав игрушку - вот и посоветовали.

xscrew ★★
()
Ответ на: комментарий от tia

Для графики ОпенГЛ надо только создание окна и получение ввода. Использовать для таких задач Qt - это всё равно что на фуре за килограммом колбасы ездить в магазин в соседнем доме.

anonymous
()
Ответ на: комментарий от pevzi

Как будто ОпенГЛ не может быть 2Д. Для cамого начального уровня есть freeglut, для более серьёзного есть libSDL.

anonymous
()
Ответ на: комментарий от anonymous

Стоп стоп стоп. Ты немного путаешь Qt::QUI и Qt. Использовать кути для написания любого софта, но не использовать либы кути - вполне возможно. При этом профит получишь не хилый в сравнении с голым С++.
Однако даже юзать либы кути для такого проекта не значит использовать танк против мух. В любой игре тебе всёравно придётся юзать контейнеры, нити, сонхронизацию etc etc etc. А, по сути, кути поможет практически везде. И такое использование оправдано.

tia
()
Ответ на: комментарий от anonymous

В данном случае как-раз подходит сравнения танка и мухи. Да и глут не для начального уровня. Глут много где юзают(в отличии от фриглута) и это очень хорошо ибо он много делает за программиста. Не потому что ему лень или он нуб, а потому что это удобнее, как qt.

tia
()
Ответ на: комментарий от tia

Так и не надо путать задачи. Тут ведь задача учебная, а не та, где заказчик орёт что ему надо уже завтра продукт иметь готовый. Поэтому использовать, к примеру, QProcess не даст понимания того, что такое fork(), что такое файлы ввода-вывода с их dup2.

anonymous
()
Ответ на: комментарий от anonymous

Дык для обучения я и не спорю :) Конечно лучше смотри что внутри.
А для реальных задач лучше уйти в абстракции :)

tia
()

Кстати, если игрушка 2д, то смотри в сторону qt declarative. Оно ещё не стабильное, но к моменту, когда допишешь игрушку - будет.
Ещё есть интересный проект - gluon, там тоже может быть много чего полезного.

CyberTribe ★★
()
Ответ на: комментарий от CyberTribe

Нет нет нет, QML не для этих целей создавался и создаётся.
«Рисовать» силами кути можно подисываясь на евент отрисовки, как в GDI+ в венде. Но и оно делается не для игр, а для некоторых фич интерфейса. И да, скорость работы игры, сделанной на таком методе отрисовки, возможно, будет ужасной.
Да и стабильность... Делать что-то прикладное - да. Делать целую игру - нет.

tia
()

В минусах только отсутствие необходимости. Для этого есть специализированная комбинация SDL+OpenGL.

А так больше минусов нет

vertexua ★★★★★
()

> - Мощная и удобная среда разработки QtCreator

Игрушечная она. Но в принципе, получше многого.

- Сотни документации в том же креаторе

qthelp называется. Куда угодно встраивается.

- Необходимость качать лишние мегабайты библиотек тем, кто захочет поиграть

Виндузятникам можно встраивать.

более низкая производительность (если не прав - поправьте)

Напротив, во многом шустрее.

- Ну костыль же!

Не костыль, а удобнейший инструмент.

Obey-Kun ★★★★★
()
Ответ на: комментарий от Obey-Kun

Во блин, сколько людей — столько мнений. Для кого-то лишняя технология, а для кого-то — удобный инструмент. Сам не поймешь, пока сам не попробуешь походу (:

Ладно, всем спасибо. Попробую поизучать кути, а там посмотрю уже.

pevzi ★★★★★
() автор топика

Куты тормозят, да. А ещё у них очень «своеобразно» сделана отрисовка, правда, к OpenGL это не относится. Советую изучить:
http://www.libsdl.org/opengl/index.php

Divius ★★
()
Ответ на: комментарий от pevzi

QtOpenGL используется только для инициализации контекста, которое платформозависимо! Весь остальной OpenGL дергается напрямую.

Reset ★★★★★
()
Ответ на: комментарий от vertexua

угу, а теперь попробуй этот SDL+OpenGL встроить в уже написанное приложение, или, например, в браузер, а я посмеюсь.

Reset ★★★★★
()
Ответ на: комментарий от Reset

Верно мыслишь, точно так же PL/SQL нельзя встроить в базу, сделанную под M$ SQL Server. Следовательно Micro$oft rulez, Oracle sucks.

anonymous
()
Ответ на: комментарий от Reset

> например, в браузер, а я посмеюсь.

Ссылку на Qt OpenGL приложение в браузере (если я вас правильно понял) ))) Не позорьтесь. Нативный код с сервера... Помните что случилось с ActiveX? Если вам нужна высокопроизводительная графика, то гуглите по JOGL или LWJGL. Никто не будет против апплета, он безопасен, так как verified & sandboxed & managed

Честно говоря для всего есть свои инструменты. Погуглите по FPS которые получаются с Qt. Сталкиваются люди с такой проблемой. Хотя у меня нормальные FPS на Qt. Но где гарантии что везде так, если полгугла трубит об одном.

Поймите меня правильно, в SDL есть все необходимое для создания игры: джойстики, режимы отрисовки, игровые режимы, звук, сеть, загрузка текстур, многопоточность. Идеальное дополнение OpenGL до функциональности DirectX, кроме загрузки моделей. Qt - неплохое решение, просто оно ни к чему. Им нужно пользоваться если нужен GUI, причем не игровой, а с нативным L&F.

vertexua ★★★★★
()
Ответ на: комментарий от Reset

Блин, ответ на ваше глупое сообщение два раза набирал заново. Два раза ошибки. Только потом понял что оно удалено было. Какая трата времени

vertexua ★★★★★
()
Ответ на: комментарий от vertexua

Собственно говоря они и создавались с целью быть переносимыми и независящими от ОС.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.