06:33

Games

D'oh!
Хочу научиться писать простенькие игры, вроде летящего в 2d самолётека стреляющего вперёд по наземным целям. Задумка Visual C, возможно QT + OpenGL/DirectX. Посоветуйте с чего начать, интересуют хорошие сайты, где толково изложат принципы работы движков и графики.

Спасибо!

Комментарии
11.02.2009 в 16:29

"Да?" - сказал Волк и сломал ей ногу
QT тут не надо однозначно. Если хочется сделать что-нибудь сразу - возьми какой-нибудь бесплатный 2D движок, типа HGE - благо их туча. Документация к ним прилагается.

Изучение Direct3D/OpenGL - это достаточно длительная задача, и для 2D игрушек как бы не нужно. Конечно, для винды без Direct3D нынче даже для 2D графики не обойдёшься. Хотя виндовый GDI+ (WinAPI для рисования простой графики) может и прокатить - я с ним никогда током не работал, поэтому больше не скажу.
11.02.2009 в 18:32

IDDQD - Команда молодости нашей, команда, без которой мне не жить.
QT тут не надо однозначно.
А вот не факт. Графическая подсистема у Qt весьма мощная, и вполне позволит создать подобного рода скроллер.
11.02.2009 в 19:10

"Да?" - сказал Волк и сломал ей ногу
Flex Ferrum хм, возможно.
Меня в сторону увела фраза QT + OpenGL/DirectX (+, а не "или")
11.02.2009 в 21:19

IDDQD - Команда молодости нашей, команда, без которой мне не жить.
Меня в сторону увела фраза QT + OpenGL/DirectX (+, а не "или")
Легко. По крайней мере, с OpenGL. Например:

Шарик рисуется с помощью OpenGL (в QGLWidget). Остальной интерфейс - Qt.
Здесь:

план рисуется с помощью QGraphicsView + QGraphicsScene, фрагмент глобуса (в правом верхнем углу) - все тот же QGLWidget.
11.02.2009 в 21:28

"Да?" - сказал Волк и сломал ей ногу
Да я прекрасно понимаю, что есть такой виджет. Вопрос в том - зачем тянуть с собой QT для создания одного виджета. Можно конечно и интерфейс на QT сделать, только всё-таки лучше это на своём движке делать.
11.02.2009 в 21:40

IDDQD - Команда молодости нашей, команда, без которой мне не жить.
зачем тянуть с собой QT для создания одного виджета. Можно конечно и интерфейс на QT сделать, только всё-таки лучше это на своём движке делать.
А зачем делать "на своем движке", если Qt специально предназначен для создания интерфейсов? А с помощью StyleSheet'ов и наследования соответствующих стилевых классов его можно разукрасить так, как того возжелал дизайнер?
11.02.2009 в 23:21

"Да?" - сказал Волк и сломал ей ногу
Ну тут как бы ничего не скажешь, но изначально вопрос был - зачем? Зачем смешивать OpenGL и QT, если можно всё сделать или на QT, или на OpenGL ?
На QT вроде как удобнее будет.
12.02.2009 в 00:48

IDDQD - Команда молодости нашей, команда, без которой мне не жить.
или на QT, или на OpenGL
Второе 'или' - под большим вопросом. :) Если автор готов в терминах OpenGL-примитивов описывать всяческие кнопочки, списочки и прочие UI-фишки, то да - разницы, конечно, не будет. В противном случае трудозатраты несоизмеримы.
12.02.2009 в 09:18

"Да?" - сказал Волк и сломал ей ногу
Так понятно :) Канеш я с этим даже спорить не буду. А лучше всего - взять готовый движок. Который скорее всего будет пользовать Direct3D.
12.02.2009 в 12:02

IDDQD - Команда молодости нашей, команда, без которой мне не жить.
А лучше всего - взять готовый движок. Который скорее всего будет пользовать Direct3D.
Ну, можно, конечно. Но зачем Direct3D для простого скроллера?
12.02.2009 в 12:05

"Да?" - сказал Волк и сломал ей ногу
Потому что игровых движков на QT я ещё не видел (и гугл мне сходу в этом не помог). А любой нормальный движок по определению лучше, чем голая графическая библиотека.
12.02.2009 в 12:11

"Да?" - сказал Волк и сломал ей ногу
hauff мы немного ушли в сторону от вашего вопроса :) если интересуют принципы работы движков - тут два варианта
1. Для начала почитать "Программирование игр для Windows". Автор - Андрэ Ламот, изд. Вильямс, 2004г.
2. Поглядеть в исходники имеющихся движков. Путь более быстрый, но это намного сложнее, плюс имеется хороший шанс упустить что-то важное.

Это я написал с учётом того, что Аналитическую Геометрию и Линейную Алгебру вы изучали как минимум в базовом виде в университете. Без этого кое где наверное будет слегка непонятно.
12.02.2009 в 12:21

IDDQD - Команда молодости нашей, команда, без которой мне не жить.
любой нормальный движок по определению лучше, чем голая графическая библиотека.
Позволь уточнить - чем именно (в данном случае)? Понятно, что если речь идет и спиномозговике с навернутой графикой и физикой, то спец. движки - самое оно. А в данном случае?
12.02.2009 в 12:51

"Да?" - сказал Волк и сломал ей ногу
Да всякая туча алгоритмов, а-ля particles, и collision detection. Плюс поддержка главного цикла, в который просто можно удобно засунуть обработчики конкретных событий с игровой логикой, гламурные менюшки в две строки (по крайней мере в HGE, с которым мне приходилось иметь дело) и т.д.

До кучи лично я всё-таки не совсем уверен в производительности QTшных рисовалок - как он себя поведёт с тысячей зайчиков, которые летают по экрану, сжимаясь, поворачиваясь и растягиваясь? Может такое и не пригодится, но зачем себя заранее ограничивать, тем паче что это ничего не стоит?
12.02.2009 в 13:00

IDDQD - Команда молодости нашей, команда, без которой мне не жить.
До кучи лично я всё-таки не совсем уверен в производительности QTшных рисовалок - как он себя поведёт с тысячей зайчиков, которые летают по экрану, сжимаясь, поворачиваясь и растягиваясь? Может такое и не пригодится, но зачем себя заранее ограничивать, тем паче что это ничего не стоит?
Прекрасно. :) У него соответствующие демки есть. Если есть установка Qt, посмотри демку Chips. Там счет идет на миллионы объектов. С определением коллизий тоже, вроде, проблем нет. parctcles - тут да. Ну а всякие гламурные менюшки - тоже не проблема. :)
12.02.2009 в 13:10

D'oh!
спасибо всем
30.04.2009 в 09:51

hauff Ещё довольно неплохая книга - "Программирование стратегических игр с DX9"
В ней хорошо описан процесс создания движка и что в нём должно присутствовать.