Форум розробників: ігрові движки

  1. за поняттями
  2. Не в грошах щастя?
  3. Хто винен і в чому секрет?
  4. * * *

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

Але от невдача, на перевірку движок виявляється дивним архівом з купою незрозумілих файлів. Доводиться кликати програміста, який «рік сидить на Сі» (Delphi, Pascal та іншими мовами), щоб він з цим добром розбирався. Програміст мружить око, просить місяць і купує з цього приводу товсту книжку. У підсумку через півроку майстер коду сумно повідомляє: призначення більшості функцій невідомо, як ними користуватися - неясно, і взагалі - краще за рік написати движок заново, ніж розбиратися далі.

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

Насправді розмова у нас вийшов значно ширший, ніж очікувалося на початку. Зрештою, бесіда з обговорення движків плавно перетекла в обговорення проблем вітчизняного ігростроенія і пошуку кадрів для геймдев-студій. Втім, від цього стаття вийшла ще більш цікавою. З нами сьогодні розмовляють:

dab - Олексій Дубовой, керівник і головний програміст Elemental Games;

nek - Юрій Некрасов, генеральний директор CrioLand;

shodan - Андрій Аксьонов, технічний директор компанії Skyfallen Entertainment;

Айвен - Іван Магазінніков, геймдизайнер Katauri Interactive;

Vlasov - Олексій Власов з Skyfallen Entertainment;

Feodor - Федір Мукін, директор компанії Arise;

gyv - Гліб Яльчики, керівник ігрового відділу Creat Studio;

DM - Дмитро Гусаров, керівник Katauri Interactive.

Представники «Игромании» - Володимир Болвинов, Олексій Макаренко і Світлана Померанцева - прислухалися до авторитетної думки, вели протокол засідання і навіть іноді розуміли, про що говорять розробники.

за поняттями

[Ігроманія]: В пресі часто згадують можливості того чи іншого движка. Часом коду движка приписують мало не магічні властивості, а іноді навіть всі достоїнства якоїсь конкретної гри. Що ж це таке і що він включає в себе?

[gyv]: Для початку потрібно відзначити, що проблема, коли вся робота ставиться в залежність від наявності ігрового движка, не має нічого спільного з технологіями. Вона має відношення до того, що молоді розробники не розуміють реалій ринку. Не розуміють, що гра це не тільки твір мистецтва, а й продукт. І вже зовсім помилково думати, що якість тайтла залежить від графіки або фізики.

Ці речі можуть бути хорошим доповненням до гри, але ніяк не її основою. Якщо команда говорить, що «графіка застаріє», - це перша ознака того, що гри не буде ніколи. Всі ті, хто сумнівається можуть подивитися на Duke Nukem Forever, який в розробці вже десять років, і на «Космічних рейнджерів 2». Графіка останніх чомусь ніяк не старіє.

Ну а тепер про самі движки. Студія Creat спочатку робила і робить все свої ігри на власному движку, йому вже близько восьми років. На ньому ми робимо все гри, під всі платформи і у всіх жанрах.

- Платформи: PC, PS3, PS2, PSP, Xbox, GameCube, Nintendo DS.

- Жанри: гонки, файтинг, шутери від першої і від третьої особи, квести, пазли, симулятори гольфу.

Дати чітке визначення ігровому движку зовсім не просто. Це як обговорювати, що таке операційна система і що таке ядро. Я б сформулював так: ігровий движок - це все, що дозволяє створювати гру: Pipeline + Tool Set + Core Game Engine + інтерфейси до підсистем + набір модулів підсистем.

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

Іноді міркують про движок якоїсь конкретної гри, наприклад Gamebryo, Aurora, «Операції Silent Storm». Може здатися, що це ті самі движки, які заточені під виробництво конкретних паровозів, але це не так (точніше кажучи, не можна сказати про це напевно). В даному випадку ми бачимо не стільки движок, скільки Game Creation Framework (фреймворк - середовище розробки), тобто заздалегідь зібраний і налагоджений інструмент під найбільш зручне і швидке виробництво гри в рамках конкретних обмежень.

Найголовніше в двигунах - це Pipeline + Toolset (тулсети, вони ж тулзи - додаткові інструменти). Від них залежить якість і швидкість розробки, і це як раз те, що дуже важко поміняти, так як доведеться багато починати заново, включаючи переучування всієї команди.

У багатьох початківців девелоперів склалася думка, що зробити ігровий движок - це вже півсправи

Скриптова движок - це тисячі рядків коду. Побачити в хитросплетінні текстів квестовую сітку здатний тільки професіонал.

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

Тобто виходить так: від якості Core Engine залежить розширюваність (можливість додавання нових можливостей), простота модифікації коду і зручність підключення спеціалізованих модулів. Причому саме від набору модулів залежить, яку гру теоретично можна зробити на цьому движку. Все інше обмежує потенційні можливості модулів рамками реалій. Після конкретних налаштувань і дописок виходить фреймворк, в якому зручно або незручно робити те, що задумували.

Наведу простий приклад. Для створення файтинга потрібна хороша система анімації. В принципі, її можна написати або купити. Після цього гра потенційно зможе обробляти всі необхідні рухи, включаючи анімаційні навороти: таймінг, Блендінг, инверсную кинематику і так далі.

Але цього недостатньо для хорошого файтинга! Потрібно мати можливість легко і швидко створювати комбо, негайно переглядати результати, змінювати параметри анімацій. Тобто має бути ще купа роботи, заснованої на циклі проб і помилок. Якщо ігровий движок не дозволяє цього робити - прощайте, мрії про хороше файтинг. Нічого не вийде, якою б геніальною не була система анімації, колліжена (система зіткнень) і фізики.

[dab]: Ігровий движок - поняття розпливчасте. Справа в тому, що ігрове програмне забезпечення включає в себе безліч різноманітних модулів, деякі з яких теж іменуються двигунами. Наприклад, в «Космічних рейнджерів 2» спільно працюють движок 2D-ефектів, інтерфейсний движок, квестовий движок, скриптова, аркадний, звуковий і відеодвіжок. І це далеко не все. Свій движок ми створювали п'ять років.

[nek]: З основних компонентів я б виділив наступні:

- Графічний движок - надбудова над DirectX / OpenGL, яка дозволяє обробляти графічні ресурси різних форматів (завантажувати, обробляти, виводити на екран).

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

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

Для цього пишуть скриптова движок, який текстовими командами дозволяє управляти всім іншим: графічним і фізичним двигунами, AI, інтерфейсом, ефектами. З звичайним текстом Геймдизайнер працювати набагато приємніше.

Огляд безкоштовних движків

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

Не в грошах щастя?

[Ігроманія]: Виглядає досить складно. Чи не тому код ігрових движків варто так дорого? Може бути, основна проблема в тому, що в російському ігропрома немає грошей на виготовлення високоякісних двигунів для проектів AAA-класу?

[Feodor]: Ігровий движок - це взагалі не код! Це набір утиліт, з яким будь-яка мавпа теоретично може зробити гру. А якщо замість мавпи посадити фахівця, то можна навіть отримати хорошу гру.

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

Іноді кажуть, що хороших ігор у нас немає, тому що немає грошей. Це не зовсім вірно. В першу чергу, у нас немає фахівців. Добути їх можна одним сумнівним способом - виростити. А це дуже довго і дорого. Гроші йдуть практично в нікуди. Віддача сумнівна і можлива лише в далекій перспективі. Тому грошей на виріст ніхто не дає, окрім окремі приватні «оранжереї».

Ходять чутки, що у всьому винна якась «витік мізків». Насправді такої проблеми вже давно немає - все, що могло, давним-давно спливло і назад не втечеть. Коли мова йде про передові технології, більш актуальний приплив свіжих мізків. На жаль, сьогодні вони з'являються на порядок, а то і на два рідше, ніж за часів Радянського Союзу.

[shodan]: По-перше, AAA-проект - це далеко не один лише движок. Це високоякісний (і страшно дорогою!) Арт, хороший (бажано інноваційний) геймдізайн, грамотний маркетинг. У російському ігрострой професійних кадрів за всіма згаданими спеціальностями вистачить від сили на 3-4 команди. Причому зібрати їх разом практично нереально.

І справа не в грошах. Розумні гроші на проект високого класу в Росії знайти легше, ніж зібрати команду такого ж рівня. Грамотний кадр мегазарплатой не створюється, а лише купується. Але якщо грамотних кадрів немає, нічого не вийде при будь-якій кількості вкладених грошей. Сьогодні програмістів готують багато вузів. Проблема в тому, що в кожному випуску, навіть з релевантних спеціальностей, профпридатних одиниці! Можливо, в Москві, Пітері та інших центрах ситуація трохи краща.

[gyv]: Нітрохи не краще. Тільки вона ще посилюється тим, що великі закордонні мажорів на кшталт Sun і Intel можуть дозволити собі витрачати гроші на перспективних студентів, починаючи з молодших курсів. А ми не можемо, так як студенти молодших курсів нерентабельні. Просто коли вони підгодовують студента з другого курсу, то до п'ятого він отримує вже більше, ніж ми можемо йому запропонувати ...

[Vlasov]: Кадри вирішують все, особливо в розробці комп'ютерних ігор і подвійно при розробці двигунів. Однак гроші не роблять професіоналів! Навпаки, набагато частіше навіть при значних грошових вливань (в розмірі $ 5-10 млн) не вдається збити в СНД скільки-небудь пристойну команду, здатну зробити гру ААА-класу.

Менталітет, чи знаєте, деякі «особливості національної риболовлі». Ті, хто їдуть «туди» робити «Крайзіс», - звичайно дивні персонажі, з не менш дивними цілями в житті і кар'єрі.

короткий словничок

У статті ми навмисно використовували деякі англомовні терміни, щоб ви їх запам'ятали - вони часто використовуються в інтернеті. Так що якщо зустрінете в статті незнайоме англійське слово, то відразу повертайтеся сюди і дивіться розшифровку.

  • Pipeline - виробничий ланцюжок, конвеєр.
  • Toolset - тулзи, автономні або напівавтономні допоміжні програми, призначені для виконання якихось конкретних завдань.
  • Core Engine (Core Game Engine) - ядро движка. Стабільна, малоизменяющейся частина коду.
  • Game Creation Framework - фреймворк, середовище розробки.
  • Collision (колліжен, повністю Collision Detection) - система зіткнень, включається в момент перетину кордонів ігрових об'єктів. Вона відстежує зіткнення ігрових об'єктів і інформує про ситуацію ігровий движок. А реагує на зіткнення ігрова логіка. Реакція залежить від типу зіткнулися об'єктів. Спрощений приклад: якщо в танк потрапила ракета - танк вибухає, але якщо кидати в танк камінням (за умови, що вони є в грі), то нічого подібного не відбудеться.
  • AI - штучний інтелект (ШІ).
  • UI (User Interface) - призначений для користувача інтерфейс.
  • Source (Source Engine) - движок Half-Life 2.

теорія підсистем

[shodan]: Є ряд підсистем загального призначення (кожну з яких можна, до речі, назвати двигуном), без яких уже не обійтися жодної великій грі. Це математика, AI, UI, анімація, графіка, фізика, скрипти, управління камерами, підтримка контролерів введення і так далі. Поверх усього цього працює власне ігрова логіка, ідеологічно різна для ігрових жанрів і неоднакова для ігор в одному жанрі.

Движок - це не тільки і не стільки архів з вихідними кодами. Це процес виготовлення, в якому задіяні різні програми, бібліотеки та модулі. Наприклад, графічний движок - це процес виготовлення графічних матеріалів (моделей, анімації, текстур), що включає в себе бібліотеку для виведення цієї графіки з гри, розробку утиліт, плагінів до 3D-пакетам, ряд спеціальних інструментів, документацію для художників і програмістів.

Відповідно, «ігровий движок» - це процес виготовлення гри. Зрозуміло, що графічний, фізичний, скриптова движки задіяні в цьому процесі як окремі компоненти. У нас на цю роботу пішло трохи більше трьох років за календарем. Однак я також включаю сюди грубу оцінку часу, який витратили художники і Геймдизайнер на боротьбу з виникаючими помилками. Абсолютний чемпіон по витраченому часу, як і всюди, вилов і виправлення помилок!

Хто винен і в чому секрет?

[Ігроманія]: В Росії немає практично жодного гучного проекту ААА-класу. За запевненням знавців, у всьому винні програмісти - не можуть написати движок відповідного класу, не знають, не хочуть. Постає одвічне питання: хто винен і що робити?

[Zorich]: А чому, власне, не визнати такими движки «Іл-2», «В тилу ворога», «Операції Silent Storm»? Можна і «Шторм» згадати, і «Периметр», і «Козаків» ... Всі перераховані технології послужили основою для відмінних ігор.

Можна, звичайно, сперечатися, чи є згадані гри (як кінцевий продукт) проектами ААА-класу, або просто А-класу, або якогось ще класу, але самі движки на момент своєї появи демонстрували більш ніж гідний рівень. З відносно недавнього гарне враження справляють технології «Морського мисливця», Heavy Duty, «Офіцерів». Досить пристойні можливості у движка гри «Завтра війна».

І мені здається, що проблеми російського геймдева в основному лежать поза технологічної площині. Куди більше проблем з артом, дизайном, презентацією, балансом, ігровий механікою, левел-дизайном, бета-Тестінг. Якби всі ці елементи у нас з гарантією виконувалися хоча б на тверду «четвірку», гри на багатьох вітчизняних двигунах отримували б оцінки ніяк не нижче 85%. А при покупці ліцензії на «топовий» движок (той же горезвісний Source) - від 88% і вище. З відповідним комерційним успіхом на внутрішньому і зовнішньому ринку. Але, як мені здається, наші продюсери поки не горять бажанням викласти півмільйона доларів за одну тільки технологію.

[Айвен]: Движок ААА-класу і програмісти такого ж високого рівня зовсім не гарантують високоякісної гри (згадаймо недавній RoboBlitz на Unreal Engine 3). Особливо якщо графікою і дизайном займатимуться студенти «Еех" -класу.

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

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

[gyv]: Програмісти - взагалі найостанніші люди в розробці гри. Як тільки програмісти самі починають робити гру або движок замість гри, відразу виходить типовий російський ігровий проект. Справедливості заради треба сказати, що і у буржуїв існує не менше бурхливий потік помиїв. Просто там по цій каламутній водичці час від часу проскакує щось цікаве.

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

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

Почім двигло для народу?!

Думка, що ціни на ліцензійний движок у всіх випадках захмарно високі, помилково. Наприклад, CrioLand готова видати ліцензію на движок «Завтра війна» за суму близько $ 10 000. Компанія також береться за навчання фахівців (зацікавленим особам можливість підтримувати зв'язок з керівництвом компанії через редакцію).

Skyfallen Entertainment за суму близько $ 20 000 (точна цифра і тема роялті обговорюються індивідуально) ліцензує движок «Магії крові», надає вихідні коди і підтримку в розумних межах. Цією можливістю скористалися в Katauri Interactive. Вони роблять на цьому движку «Легенду про лицаря».

[DM]: В нашому випадку довелося трохи змінити движок під свій контент. Але в результаті ми отримали економію часу. Розклад приблизно такий.

- Створення движка і інструментарію з нуля зайняло б приблизно два роки. Потім ще два роки пішло б на виготовлення самої гри. Разом чотири роки.

- Взявши движок від Skyfallen, ми всього за два роки розробки зробили цілком іграбельних демоверсію, яку залишається тільки заповнити контентом (приблизно рік). Таким чином, ми витратимо на розробку нової гри рівно три роки.

Разом: якщо отримати велику гру в допустимі строки, краще взяти готовий движок. Навіть з урахуванням доопрацювання це заощадить масу часу, який можна з користю витратити на створення геймплея. Тоді гравці подякують, і гра окупиться.

Прийняття рішень

Ми поцікавилися, як відбувається процес прийняття технологічних рішень в Creat Studio.

[gyv]: Так в общем-то все дуже просто. У нас на кожному проекті є Core Team - основний склад команди розробників, кістяк групи, ті люди, які працюють над грою з самого початку і до переможного. Вона завжди представлена ​​наступними ролями: продюсер, ведучий геймдизайнер, провідний програміст, головний художник, головний 3D-моделлер, фахівець з контролю за якістю, технічний директор проекту. Плюс так званий Project Integrator - людина, яка бере у програмістів код, у художників - персонажів і моделі, все це перевіряє на відповідність діздоку, збирає з усього цього робочий білд і віддає Геймдизайнер і скриптер, які вже з усього цього набору будуть робити гру. На невеликих проектах одна людина часто поєднує кілька ролей.

Ще на етапі планування проекту визначаються всі технології, які передбачається використовувати. В обговоренні бере участь вся Core Team. У разі необхідності керівник свого напрямку консультується у своїх підлеглих або у інших фахівців. Зазвичай продюсер проекту взаємодіє з технологічним директором, але втручання останнього мінімально, так як всі знайомі з прийнятими в компанії технологіями.

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

* * *

Як з'ясувалося, придбати ліцензію на хороші сучасні двигуни російського виробництва не проблема. Тільки ось движок - ще не гра. Як стверджують розробники, основна проблема в кадрах. Тобто в вас, дорогі студенти, школярі та інші учні. Якщо з усього курсу можна відібрати все пару чоловік, придатних до роботи, то чим же займалися всі інші? Грали в ігри? А хто ж буде робити в Росії проекти ААА-класу?

Хто винен і в чому секрет?
Що ж це таке і що він включає в себе?
Не в грошах щастя?
Чи не тому код ігрових движків варто так дорого?
Може бути, основна проблема в тому, що в російському ігропрома немає грошей на виготовлення високоякісних двигунів для проектів AAA-класу?
Хто винен і в чому секрет?
Постає одвічне питання: хто винен і що робити?
Почім двигло для народу?
Якщо з усього курсу можна відібрати все пару чоловік, придатних до роботи, то чим же займалися всі інші?
Грали в ігри?