Гральний рушій

Матеріал з Вікіпедії — вільної енциклопедії.
(Перенаправлено з Рушій гри)
Перейти до: навігація, пошук

Гральний рушій (англ. Game engine) — програмний рушій, центральна програмна частина будь-якої відеогри, яка відповідає за всю її технічну сторону, дозволяє полегшити розробку гри за рахунок уніфікації і систематизації її внутрішньої структури. Важливим значенням рушія є можливість створення багатоплатформових ігор (сьогодні найчастіше одночасно для ПК, PS3 та Xbox 360).

Основну функціональність гри зазвичай забезпечує рушій гри, що включає рушій рендеринга («візуалізатор»), фізичний рушій, звук, систему скриптів, анімацію, ігровий штучний інтелект, мережевий код, керування пам'яттю, багатонитевість і граф сцени. Часто на процесі розробки можна заощадити за рахунок повторного використання одного рушія гри для створення декількох різних ігор.

Історія[ред.ред. код]

Такі системи, як Infocom'івська Z-Machine і SCI компанії Sierra, можна вважати першими закінченими гральними рушіями. Проте, термін «гральний рушій» з'явився в середині 1990-х років, головним чином, у зв'язку з 3D-іграми, такими як шутери від першої особи. Ігри Doom і Quake від id Software виявилися настільки популярними, що інші розробники замість того, щоб працювати із чистого аркуша, ліцензували основні частини програмного забезпечення й створювали свою власну графіку, персонажів, зброю й рівні — «ігровий контент» або «ігрові ресурси». Рушій Quake був використаний у більш ніж десяти проектах і дав серйозний поштовх розвиткові middleware-індустрії.

Пізніші ігри, такі як Unreal 1998 року (рушій Unreal Engine) і Quake III Arena (на рушії id Tech 3) 1999 року, були спроектовані із застосуванням даного підходу, з окремо розробленими рушієм і наповненням. Практика ліцензування такої технології виявилася корисним допоміжним прибутком для деяких розробників ігор. Так, вартість однієї ліцензії на комерційний гральний рушій класу high-end може варіюватися від 10 тис. до 3,75 млн. $ (у випадку Warcraft III)[Джерело?], а число ліцензіатів може досягати кілька десятків компаній (як для Unreal Engine). Принаймні, багаторазово використовувані рушії прискорюють і спрощують розробку гри, що є цінною перевагою в конкуруючій індустрії комп'ютерних ігор.

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

Шутери від першої особи залишаються переважними користувачами сторонніх гральних рушіїв, але зараз такі рушії також використовуються в інших жанрах. Наприклад, RPG Morrowind і MMORPG Dark Age of Camelot засновані на рушії NetImmerse, у той час, як Oblivion і Fallout 3 використовують нову версію даної технології — Gamebryo. Відома MMORPG Lineage II побудована на рушії Unreal Engine 2 (попри те, що даний рушій спочатку призначався для використання в шутерах).

Гральні рушії також використовуються в іграх, спочатку розроблених для гральних консолей; наприклад, рушій RenderWare використовується у франчайзах Grand Theft Auto III і Burnout.

Сучасні гральні рушії — одні з найскладніших у написанні застосунків, що найчастіше складаються з десятків різних компонентів, кожний з яких можна налаштовувати окремо під потреби гри. На сайті Future Game Coders є різні теми про підсистеми сучасних ігор.

Огляд[ред.ред. код]

На додаток до багаторазово використовуваних програмних компонентів, гральні рушії надають набір візуальних інструментів для розробки. Ці інструменти зазвичай складають інтегроване середовище розробки для спрощеної, швидкої розробки ігор на зразок потокового виробництва. Ці гральні рушії іноді називають «гральним підпрограмним забезпеченням» (скор. ППЗ; англ. middleware), тому що, з погляду бізнесу, вони надають гнучку й багаторазово використовувану програмну платформу з усією необхідною функціональністю для розробки грального застосунка, скорочуючи витрати, складність і час розробки — усі критичні фактори в сильно конкуруючій індустрії відеоігор.

Як й інші ППЗ рішення, гральні рушії зазвичай платформо-незалежні й дозволяють деякій грі запускатися на різних платформах, включаючи гральні консолі й персональні комп'ютери, з деякими внесеними у сирцевий код змінами (або взагалі без них). Часто гральне ППЗ має компонентну архітектуру, що дозволяє заміняти або розширювати деякі системи рушія більш спеціалізованими (і часто дорожчими) ППЗ компонентами, наприклад, Havok — для фізики, FMOD — для звуку або SpeedTree — для рендеринга. Деякі гральні рушії, такі як RenderWare, проектують як набір слабо зв'язаних ППЗ компонентів, які можуть вибірково комбінуватися для створення власного рушія, замість традиційнішого підходу розширення або налаштовування гнучкого інтегрованого рішення. Проте розширюваність досягнута й залишається високопріоритетною в гральних рушіях через широкі можливості їхнього застосування. Незважаючи на специфічність назви, гральні рушії часто використовуються в інших типах інтерактивних застосунків, що вимагають графіку в реальному часі, таких як рекламні демо-ролики, архітектурні візуалізації, що навчальні симулятори й середовища моделювання.

Деякі гральні рушії надають тільки можливості 3D рендеринга в реальному часі замість усієї функціональності, необхідної іграм. Ці рушії довіряють розроблювачеві гри реалізацію іншої функціональності або її складання на основі інших гральних ППЗ компонентів. Такі типи рушіїв зазвичай відносять до «графічних рушіїв», «рушіїв рендеринга» або «3D рушіям» замість змістовнішого терміна «гральний рушій». Однак ця термінологія використовується суперечливо: так, багато повнофункціональних гральних 3D рушіїв згадані просто як «3D рушії». Деякі приклади графічних рушіїв: RealmForge, Ogre 3D, Power Render, Crystal Space і Genesis3D. Сучасні гральні або графічні рушії завичай надають граф сцени — об'єктно-орієнтовані представлення 3D світу гри, що часто спрощує ігровий дизайн і може використовуватися для ефективнішого рендеринга величезних віртуальних світів.

Апаратна абстракція[ред.ред. код]

Найчастіше 3D рушії або системи рендеринга в гральних рушіях побудовані на графічному API, такому як Direct3D або OpenGL, що забезпечує програмну абстракцію GPU або відеокарти. Низькорівневі бібліотеки, наприклад, DirectX, SDL і OpenAL, також використовуються в іграх, тому що забезпечують апаратно-незалежний доступ до іншого апаратного забезпечення комп'ютера, такого як пристрої уведення (миша, клавіатура й джойстик), мережні й звукові карти. До появи апаратно прискорюваної 3D графіки використовувалися програмні візуалізатори. Програмний рендеринг усе ще використовується в деяких інструментах моделювання для рендеринга зображень, для яких візуальна достовірність важливіша за продуктивність (кількість кадрів за секунду) або коли апаратне забезпечення комп'ютера не задовольняє вимогам, наприклад, не підтримує шейдери.

Дивись також[ред.ред. код]

Посилання[ред.ред. код]