Ігровий рушій
Ігровий рушій (англ. Game engine) — програмний рушій, центральна програмна частина будь-якої відеогри, яка відповідає за всю її технічну сторону, дозволяє полегшити розробку гри шляхом уніфікації та систематизації її внутрішньої структури. Важливим значенням рушія є можливість створення багатоплатформових ігор (сьогодні найчастіше одночасно для ПК, PS4 та Xbox One).
Основну функціональність гри зазвичай забезпечує її рушій, до якого входить рушій рендерингу («візуалізатор»), фізичний рушій, звук, система скриптів, анімація, ігровий штучний інтелект, мережевий код, керування пам'яттю, багатонитевість і граф сцени. Часто на процесі розробки можна заощадити шляхом повторного використання одного рушія гри для створення декількох різних ігор.
Історія
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 графіки використовувалися програмні візуалізатори. Програмний рендеринг усе ще використовується в деяких інструментах моделювання для рендеринга зображень, для яких візуальна достовірність важливіша за продуктивність (кількість кадрів за секунду) або коли апаратне забезпечення комп'ютера не задовольняє вимогам, наприклад, не підтримує шейдери.
Див. також
- Список ігрових рушіїв
- Графічний рушій — головний компонент ігрового рушія
- Фізичний рушій — компонент ігрового рушія
- Звуковий рушій — компонент ігрового рушія
- Ігровий штучний інтелект — компонент ігрового рушія
Посилання
- Довідковий сайт, що містить велику базу комерційних middleware-рішень (англ.)
- Велика база даних з ігрових рушіїв на сайті DevMaster.net (англ.)
- Terrain in Games — детальний огляд технологій для рендеринга ландшафтів у рушіях 1997–2000 року (англ.)
- Стаття «Анатомія ігрових рушіїв» на сайті 3DNews (рос.)
- Richard Fine. Enginuity (англійською). GameDev.net. Архів оригіналу за 25 січня 2010.