Когда мне следует начинать разработку GUI / игр? - PullRequest
4 голосов
/ 11 июля 2009

Я хобби-разработчик консоли C ++. Я работал с указателями, массивами, std :: vectors, std :: strings, классами и несколькими структурами данных, включая стеки и двоичные деревья. У меня есть некоторый опыт в линейной алгебре и геометрии, и я знаю основы физики. У меня нет опыта работы с win32, QT, openGL, DX9, OGRE и т. Д. Я все еще изучаю более ценные части ООП, такие как полиморфизм.

Я начал C ++ как первый язык, и у меня нет опыта работы с другими языками. Я мог бы, вероятно, работать с C, но мне нужно привыкнуть манипулировать char * и обычными массивами (а не инициализировать переменные).

Мой вопрос, исходя из моего опыта, когда мне следует заняться разработкой приложений с графическим интерфейсом / игровых приложений? Нужно ли мне более твердо обосновываться в определенных областях математики, освоиться с win32, привыкнуть к SDK?

Если этот вопрос слишком субъективен для вас, чтобы с комфортом давать советы, то когда вы начали заниматься разработкой графического интерфейса пользователя / игры и какие шаги вы предприняли, чтобы вам было комфортно с ним?

Редактируя это так, чтобы оно получило удар. У кого-нибудь еще есть мнения?

Ответы [ 4 ]

5 голосов
/ 11 июля 2009

Предостережение: я очень «учусь на практике», поэтому возьмите это с крошкой соли.

Звучит так, будто вы знаете достаточно основ программирования, чтобы перейти к чему-то более реалистичному, и имеете достаточно оснований, чтобы оправдать этот реалистичный проект как игру.

Я бы рекомендовал загрузить Visual C # Express и Microsoft XNA Game Studio 3.0 .

XNA - это игровая среда, в которой много чего сделано для вас (звук, спрайты, поддержка 3D и т. Д.), Построенная на платформе профессионального качества C #, и она станет хорошей отправной точкой. Создайте новый проект XNA и поиграйте с ним. Получите некоторые вещи, которые появятся на экране, затем научитесь манипулировать ими с помощью пользовательского ввода. Если вы заинтересованы в 3D, создайте трехмерную фигуру, такую ​​как треугольник. Затем заставьте это вращаться. Затем заставьте его вращаться на основе пользовательского ввода. Затем добавьте другие объекты и столкновения.

Конечно, в рамках будут вещи, которые вы не понимаете. Решайте их по мере их поступления - используйте Google и задавайте вопросы здесь, пока вы их не поймете. Делайте это по одному шагу за раз, и с вами все будет хорошо.

1 голос
/ 26 июля 2009

, поскольку этот вопрос является своего рода субъективным, потому что у каждого программиста есть любимая библиотека для начала, я порекомендую SDL , поскольку она проста, хорошо структурирована и очень полна, есть много учебников там, чтобы помочь вам шаг за шагом от создания простого окна до сложных трехмерных манипуляций. Все может быть легко реализовано.

В качестве примечания: если вы хотите начать программировать игры, я бы также порекомендовал вам прочитать некоторые уроки или книги об основах игры (инициализация, игровой цикл, циклы обновления), чтобы вы знали, как поставить ваши знания для хорошей работы.

1 голос
/ 26 июля 2009

Кажется, вы уже приобрели базовые знания языка программирования, чтобы начать программирование игры. Я помогу вам развить то, что вы уже приобрели, например, изучить ООП и больше практиковаться с помощью указателей. Я рекомендую вам двигаться дальше и не переходить к изучению другого инструмента «язык программирования» для достижения ваших целей.

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

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

Также HGE - еще один хороший 2D-движок.

Подводя итог, погрузитесь в программирование больше, фактически "делая это" с тем, что у вас есть сейчас. Вот как вы будете прогрессировать, и вы будете поражены результатами. И когда «делать это» не мешают другие языки и инструменты, вы уже знаете что-то похожее на это, и в то же время, когда вы изучаете инструмент, который помогает вам использовать ваши текущие знания, в вашем случае я имею в виду C ++ двигатель, не выбирайте очень сложные (IMO, такие как OpenGL, DirectX, Win32 ... и т. д.), потому что вы в конечном итоге потратите время на изучение инструмента, не использующего его, и есть большой шанс, что вы расстроитесь. Вы всегда можете изучить вещи низкого уровня позже, и тогда это будет иметь гораздо больше смысла.

1 голос
/ 26 июля 2009

Я лично рекомендую вам начать с Win32; попробуйте создать основное окно и двигаться дальше с этой точки. Попробуйте создать простой 2D игровой движок, в котором вы сможете создать такую ​​игру, как шахматы или около того. Это также может послужить проектом, для которого вы можете написать ИИ; что является еще одной частью разработки игр!

После того, как вы закончите, следующий шаг должен быть 3D. Вы можете использовать движок, который вы написали ранее, и изменить его с 2D на 3D. Выбрать 3D API; OpenGL или DirectX. Как только у вас появится базовый движок, начните писать игру. Нужна дополнительная функциональность? Затем добавьте его в двигатель!

Математически вы должны знать, что такое матрицы. Тригонометрия также может пригодиться.

Я бы не стал тратить время на Xna, это просто ажиотаж. : P

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...