Фреймворки / Библиотеки и игровые движки - в чем разница - PullRequest
0 голосов
/ 20 октября 2011

Я видел множество фреймворков, библиотек и движков игрового программирования, но, похоже, есть разница, на которую я не могу ориентироваться. Кажется, с фреймворками труднее работать, чем с движками.

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

Есть ли какая-то иерархия, связанная с этим? В Java есть игровой движок LibGDX, который построен на основе LWJGL и JOGL и может использоваться для создания игр для Android, потому что он также использует платформу Google Android, как это возможно?

Я также использовал платформу CNA XNA, которую можно использовать для создания полноценных игр, и помимо этого есть движки, зачем вам нужен движок поверх платформы XNA, когда вы можете собрать игра из самого фреймворка?

Кроме того, я мало что знаю о Unity, но, похоже, он может использовать три разных языка в качестве игрового движка.

Ответы [ 2 ]

4 голосов
/ 20 октября 2011

Начну с самого простого, основываясь на том, что я понимаю.

Библиотека - это нечто, расширенное в программу, действительно распространенным примером может быть файл .dll (библиотека динамической компоновки), который расширяет функциональные возможности приложения, в которое она включена. Я склонен считать библиотеки похожими в Есть много способов для классов, потому что они расширяют существующую функциональность до чего-то, что изначально не имеет этой функциональности (я не очень разбираюсь в библиотеках, поэтому, пожалуйста, исправьте меня, если я ошибаюсь). Хотя это еще не все библиотеки, поэтому я укажу на википедию:

http://en.wikipedia.org/wiki/Programming_library

Фреймворк довольно просто объяснить, это в основном набор библиотек. Когда вы ссылаетесь на объект в XNA (скажем, вы хотите создать StringBuilder), тогда среда, которую вы используете, ссылается на System.Text (EDIT: который является частью mscorelib) для доступа к классу StringBuilder. Таким образом, в этом примере (как указал Алекс) речь идет о StringBuilder (класс) Text (пространство имен) System (другое пространство имен), которое является частью mscorelib (или библиотеки .NET согласно MSDN).

Игровые движки похожи на фреймворки, но они немного более сфокусированы и доработаны. В целом, я думаю, что игровой движок включает в себя такие вещи, как ресурсы, редакторы, встроенные функции и т. Д., Которые вы не обязательно найдете в XNA. Я думаю, что одним из самых больших преимуществ (насколько я понимаю) использования игрового движка являются ресурсы. Вам не нужно создавать свои собственные текстуры, они могут иметь некоторые модели, звуки, анимацию. Это более полный набор инструментов для создания видеоигр, в отличие от необходимости создавать все эти вещи с нуля. Я снова укажу вам на Википедию для более подробной информации:

http://en.wikipedia.org/wiki/Game_engine

0 голосов
/ 20 октября 2011

Библиотека - это просто часть, которую вы используете для создания конечного продукта.Обычно он отвечает за одну конкретную вещь, такую ​​как математика, физика, рендеринг и т. Д.

Framework немного больше или может быть просто синонимом библиотеки.Фреймворк может быть всем необходимым для создания такой игры, как математика, физика, рендеринг.Например, у XNA есть основы для аудио, математики, графики, ввода и т. Д. С фреймворком у вас есть основы, но на низком уровне обычно вам нужно написать много кода для создания игры с фреймворком.Во многих случаях вы хотите написать целый слой поверх фреймворка (это может быть целый движок), чтобы создать игру с ним.

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

...