Игровое программирование: общие методы и шаблоны проектирования [закрыто]

Я начал писать очень простой игровой движок, чтобы лучше изучить OpenGL 3.x, но поскольку моя неопытность и мои редкие знания о том, как должна быть разработана 3D-игра, я обычно сталкиваюсь с проблемами, когда понимаю, что я должен разработал мои классы по-разному. Другие проблемы, с которыми я столкнулся, - это как отслеживать время в краткой манере игры и обновлять движение по мере необходимости и как сообщать визуализатору, что ему нужно перерисовать. Также мне нужно делать функции Get и Set для передачи различных флагов от одного объекта к другому, это плохая практика?

Итак, как говорится в названии, меня интересуют любые книги или статьи /учебники и источники, которые могут помочь мне, и объяснят некоторые общие шаблоны проектирования в дизайне игр (например, обработчики состояния игры, шрифты и т. д.).

Btw, я все еще использую freeglut, вы бы посоветовали мне перейти к лучшей оконной системе перед тем, как прогрессировать или после того, как я получу лучшее понимание OpenGL?

9 голосов | спросил Grieverheart 15 Mayam12 2012, 01:37:42

1 ответ


11

Я напишу правильный ответ, так как я был на вашей сцене около 2 месяцев назад.

  

Я начал писать очень простой игровой движок, чтобы я мог изучить OpenGL   3.x лучше, но поскольку моя неопытность и мои редкие знания о том, как должна быть разработана 3D-игра, я обычно сталкиваюсь с проблемами, когда я   поймите, что я должен был разрабатывать свои классы по-разному.

Не беспокойтесь об этом. С вашим отсутствием опыта вы никогда не сможете думать обо всех возможностях и способах использования данного класса в вашем движке. Лучше всего рассмотреть основные функции этого класса, реализовать его и реструктурировать позже. Не пытайтесь переусердствовать, вы будете тратить свое время на этом этапе. Моя первая игра была полным беспорядком, я уверен, что это было для большинства людей.

  

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

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

  

Также мне нужно делать функции Get и Set для передачи различных   флаги от одного объекта к другому, это плохая практика?

Это скорее вопрос программирования. Со временем вы увидите, какие данные вам нужно защитить, и что безопасно. Это, вероятно, лучше всего, если вы просто реализуете функцию, а затем видите, что не отображается за ее пределами, и могут рассматриваться как общедоступные данные.

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

Статьи и книги:

  • Разработка игрового движка

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

http://www.amazon.com/Game-Engine-Architecture-Jason-Gregory/dp/1568814135

http://www.amazon.com/Game-Coding-Complete-Third-Edition/dp/1584506806

  • OpenGL

http://ogldev.atspace.co.uk/index.html

http://www.arcsynthesis.org/gltut/index.html

http://www.opengl.org/sdk/docs/man3/

  • GLSL

http://www.lighthouse3d.com/tutorials/glsl- ядро-учебник /GLSL-ядро-учебник-индекс /

http://www.opengl.org/sdk/docs/manglsl/

  • Обнаружение столкновений

http://www.peroxide.dk/papers/collision/collision.pdf

(Я связываю это, потому что мне трудно найти статьи о том, как правильно выполняется обнаружение 3D-коллизий.)

Есть больше книг, но к тому времени, когда вы закончите с этим (особенно Game Engine Architecture), вы будете лучше знать, что хотите.

  

Btw, я все еще использую freeglut, вы бы порекомендовали, что я перехожу к лучшему   оконной системы перед прогрессированием или послелучше понять   OpenGL?

WinAPI, если вы считаете, что у вас есть время и будет изучать программирование Windows (если вы разрабатываете для Windows). FreeGLUT отлично подходит для обучения, но в конечном итоге вам понадобится больше возможностей. Хотя, если вы хотите перейти на совершенно другой маршрут, вы можете запустить OpenGL с такими библиотеками, как SFML или SDL. Придерживайтесь FreeGLUT, если вы не упрямы, как я. Я пошел прямо в WinAPI.

ответил dreta 17 Maypm12 2012, 12:37:19

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132