2011-10-20 2 views
0

Я видел множество фреймворков, библиотек и движков для программирования игр, но, похоже, я не могу погладить это. Кажется, что с каркасами сложнее работать, чем с двигателями.Рамки/Библиотеки и игровые движки - В чем разница

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

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

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

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

+0

На сайте Гамедева есть некоторые ответы: http://gamedev.stackexchange.com/questions/10770/whats-the-difference-between-a-library-and-an-engine/ – thedaian

ответ

0

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

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

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

4

Идущий из самых простых основанных на том, что я понимаю.

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

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

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

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

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

+1

Пример каркаса isn Точный. StringBuilder не является частью XNA. System.Text не является библиотекой. StringBuilder - это класс, входящий в пространство имен System.Text, часть mscorelib (библиотека), часть .NET Framework. – Aleks

+0

@Aleks MSDN не согласна с вами о том, что StringBuilder не является частью XNA http://msdn.microsoft.com/en-us/library/system.text.stringbuilder(v=VS.100).aspx –

+1

@Derrick Право на вверху вашей ссылки: 'Assembly: mscorlib (in mscorlib.dll)' – asawyer

 Смежные вопросы

  • Нет связанных вопросов^_^