Чим відрізняється бібліотека від двигуна?


31

Я працюю над бібліотекою, щоб допомогти розробці 2D ігор зі Scala. Поки це колекція корисних занять, завантаження файлів, виявлення зіткнень, зображень, спрайтів тощо.

То коли це перестає бути бібліотекою класів і починає бути двигуном? Де саме криється різниця між корисним фреймворком та ігровим двигуном?


Я б сказав, що розрізнення не можна робити, оскільки вони концепції на різному рівні абстракції. "Великий" двигун все ще є основою.
Андре Парамеш

1
Існує менше різниці між ігровим двигуном і рамкою, але від назви, між бібліотекою та двигуном, існує величезна і чітко окреслена різниця. Це посилання підводить підсумки: gamefromscratch.com/post/2015/06/13/…
Серапт

Відповіді:


21

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

То коли це перестає бути бібліотекою класів і починає бути двигуном?

Ніколи.

Де саме криється різниця в корисному рамках та ігровому двигуні?

Немає жодної.

Тепер дозвольте пояснити відповіді. Ігровий двигун складається з бібліотек класів. Вони не перестають бути бібліотеками класів просто тому, що знаходяться в ігровому двигуні. Бібліотека є корисною основою для вирішення конкретних потреб в ігровому двигуні. Основою, яка спричиняє потреби в повноцінній грі, є ігровий двигун.

Ось кілька прикладів ігрових двигунів:

  • Нереальний двигун
  • Двигун реальності
  • Джерело двигуна
  • Quake Engine
  • Unity Engine

І кілька прикладів бібліотек

  • Novodex (фізика)
  • FMOD (аудіо)
  • Хавок (фізика)
  • Ogre3D (візуалізація)
  • BINK (Відеотека)
  • Direct3D (графіка)
  • OpenGL (графіка)
  • DirectSound (аудіо)
  • XInput (введення)

Сподіваюся, це допомагає


1
Як щодо різниці між механізмом візуалізації та графічною бібліотекою? : p
Zaky German

1
@Zaky German - Ogre3D - це графічний двигун, як FMOD - це звуковий двигун. Окремо, однак це не ігровий механізм, наприклад, вони не обробляють введення користувача, мережеве підключення тощо. Саме тут я думаю, що деяка плутанина може ввестись у гру. У цій конотації ви можете замінити бібліотеку, модуль, компонент або двигун. Це, однак, не "Ігровий движок". Графічна бібліотека буде чимось схожою на Direct3D або тонким API на Direct3D, щоб зробити це простіше, але це не буде безпосередньо робити візуалізацію. OpenGL та обгортки навколо нього також потраплять у зону бібліотеки графіки.
Джеймс

14

Насправді немає конкретного визначення для будь-якого терміна (або для пов'язаного з цим терміна "рамки"). Існує сотні різних способів інтерпретації різноманітних тонких відмінностей в програмних пакетах та присвоєння їм класифікацій.

Я особисто розглядаю "бібліотеку" як річ, яка забезпечує відносно невеликий і спрямований набір функціональних можливостей, тоді як "рамка" забезпечує більшу або більш широку функціональність, а "двигун" забезпечує те саме (або більше) і, як правило, має набір пов’язані з цим інструменти.

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


Існує конкретна різниця між рамками та іншими бібліотеками; вони перераховані на сторінці Wiki раніше. Насправді, фреймворк контролює потік програми, і ви підключаєте до нього свій код; в інших бібліотеках ви керуєте потоком і називаєте його код.
Андре Парамеш

1
Я б не вважав це остаточним; У Вікіпедії є також сторінка для «ігрового двигуна», і так само, як «бібліотека» та «фреймворк», ці терміни використовуються так само часто в способах, які відповідають опису на сторінці вікі, як і в моїх випадках досвід. Все ще все дуже хвилясто.
Джош

2

Це складне питання, оскільки лінія між бібліотекою та двигуном іноді може бути дуже тонкою, розмитою. Я б сказав, що точка, коли бібліотека перетворюється на двигун, - це коли вона спрямована на певну гру або певний тип гри.

Наприклад: движок Unreal (або Source, або Quake) призначений для використання в іграх на FPS (це можливо, можна використовувати і для інших ігор, але ви витратили б деякий час, працюючи проти двигуна). Ogre3d (або навіть Directx, SDL або інші загальні бібліотеки) можна використовувати для створення будь-якого типу гри, без необхідності виривати основні частини коду або працювати навколо них.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.