Чим займається геймдевелопер | SKVOT
Skvot Mag

Не соромно запитати: чим займається геймдевелопер

3D developer Саша Пучка — про етапи створення ігор, моди і старт в гейдеймві.

Не соромно запитати: чим займається геймдевелопер
card-photo

Юля Романенко

Авторка в SKVOT

11 жовтня, 2021 Дизайн Стаття

Цілий день сидіти за ноутом і рубатися в ігри — звучить, наче робота мрії. Але це не про розробника ігор. Тут усе трохи інакше: прототипи, шейдери, білди та перепрацювання — бо виліз новий баг і треба терміново лагодити.

Перш ніж зануритися у будь-яку професію, важливо дізнатися про її наповнення. Капот розробки відеоігор для нас підняв Саша Пучка — 3D developer із 9-річним досвідом. 

Саша брав участь у створенні п’яти останніх Assassin’s Creed в Ubisoft, а зараз він — 3D Lead у стартапі ZibraAI, який спрощує життя розробникам ігор.

Поставили Саші запитання про роботу в геймдеві, за які може бути дуже соромно (а тому важливі).

 

Які бувають спеціалізації у геймдеві?

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

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

Якщо йдеться про створення великої та складної гри, у геймдев-команді буде багато розробників (іноді навіть їх команд) найрізноманітніших спеціалізацій:

  • Gameplay Developer — програмує ігрову механіку (взаємодію гравця з ігровим світом)
  • 3D Developer / Graphics Programmer — займається відображенням ігрового світу на екрані
  • Physics Programmer — відповідає за ігрову фізику (те, як об’єкти поводяться у просторі та взаємодіють між собою)
  • UI Developer — створює інтерфейс користувача
  • AI Programmer — розробляє ігровий ШІ (систему, яка імітує поведінку персонажів у грі)
  • Audio Developer — займається звуковими ефектами
  • Network Programmer — відповідає за те, щоб (мультиплеєрну) гру можна було грати у мережі
  • Engine Developer — займається ігровими рушіями та допоміжними інструментами для розробки ігор (якщо компанія вирішує написати свій рушій)
  • Back-end Developer — відповідає за серверну частину, щоб гра працювала коректно

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

 

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

Геймдизайнери, як і розробники, бувають різні. Серед них:

  • Game Mechanics Designer — вигадує ігрові механіки
  • Level Designer — спеціалізується на створенні рівнів
  • Сценарист — відповідає за сторітелінг і текстову складову гри
  • Балансувальник — створює систему правил та обмежень, які визначають складність та цікавість геймплею.

Це лише декілька прикладів — спеціалізацій геймдизайнерів значно більше.

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

У масштабних іграх художники можуть цілий рік малювати каміння біля дороги. Згадати той самий Cyberpunk 2077: у студії-розробника CD Projekt — 450 осіб, а над грою працювало 5 000+ людей. Усе це — контентники на аутсорсі, які допомогли створити цей величезний відкритий світ і зробити його живим.

В артнапрямку геймдева також величезне розмаїття спеціалізацій. Наприклад:

  • Concept Artist — пригадує зовнішній вигляд персонажів або локацій (залежно від спеціалізації) і робить нариси (концепт-арти), з якими далі працює 3D Modeller
  • 3D Modeller — малює 3D-моделі персонажів, об’єктів, локацій
  • Animator — «оживляє» персонажів та об’єкти, змушуючи їх рухатися
  • VFX Artist — художник із візуальних ефектів
  • Technical Artist — сполучна ланка між художниками та розробниками, допомагає вписати 3D-моделі в простір так, щоб це виглядало збалансовано та реалістично

У Ubisoft ти був 3D Programmer. Розкажи, чим ти займався?

Я відповідав за оптимізацію та портирування (адаптацію) ігор під різні платформи.

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

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

Так ось, щоби художники змогли використати цю технологію, 3D-програмери писали підтримку цієї фічі для ігрового рушія. Це нетривіальна задача, особливо з урахуванням кількості платформ, на яких зараз випускають ігри: PC, PlayStation 4, PlayStation 5, Xbox One, Xbox Series, ігровий клауд-сервіс Google Stadia. Вони мають різні API (Application Programming Interface, програмний інтерфейс — прим. ред.), можливості та обмеження. Виходить, щоб гра була доступна на різних платформах, потрібно створити шість її технічних варіацій.

Не кожна компанія може дозволити собі повне портирування гри. А якщо й може — не факт, що це працюватиме коректно. У тій же Cyberpunk 2077 розробники, мабуть, робили ставку на PC — тому на консолях у грі вилізло багато багів, які досі не можуть відремонтувати.

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

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

Кому простіше стати геймдевелопером: затятому геймеру чи програмісту з іншої сфери?

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

 

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

Так було і в мене: я починав у IT тестувальником, відучився на програміста, а потім прийшов до геймдева. Це окей.

Що відрізняє геймдев від іншого IT?

Скажу, за що люблю цю сферу особисто:

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

Працюючи над іграми, я робив усе як для себе: відштовхувався від того, який продукт я (як гравець) хочу бачити і сам ставив собі планку. Стандарти, які ставиш собі сам, зазвичай найвищі, але й задоволення від роботи — максимальне.

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

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

#3. Відчуття причетності. Розробка ігор трохи нагадує знімання кіно, де у фінальних титрах перераховано імена усієї команди. Навіть якщо твій внесок невеликий — все одно прикольно. Ось ти запускаєш гру, бачиш якусь кнопку, функціонал, що завгодно і думаєш: «Це робив я». Приємно усвідомлювати, що там є частинка твоєї роботи.

Що важливіше для успіху гри: геймплей, графіка, сюжет — чи щось іще?

Кожен жанр має свою кілер-фічу. Якщо говорити про Action RPG (action role-playing game, рольова гра в жанрі «екшн» — прим. ред.) на зразок Diablo — там найголовніше не сюжет, а ігрові механіки. Те саме в мультиплеєрних іграх-стрілялках — механіка і, можливо, графіка. Якщо це гра з відкритим світом, там має бути багато цікавого контенту, щоб гравцеві було прикольно сидіти там.

В ААА-іграх (клас високобюджетних ігор, як фільми-блокбастери в кіно — прим. ред.) на кшталт GTA 5 та Assassin’s Creed важливий наратив. ААА-тайтли відрізняються рівнем контенту та більшою тривалістю проходження. А наратив, сенс історії — це те, що робить гру та продає її.

Іноді у таких іграх можна пожертвувати графікою. Наприклад, GTA 5: у 2013 році, коли вона вийшла, були ігри набагато крутіші в плані картинки. Але це було неважливо. За історію і те, наскільки круто її подано, можна було пробачити і погані тіні, і нереалістичну воду. Ти просто не звертаєш на це уваги. Спостерігаєш за тим, що говорять персонажі, і просто їм віриш. Все, цього достатньо.

Як влаштований процес розробки гри поетапно?

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

Розкажу, як це відбувається із великими іграми від видавців.

Спочатку визначають концепт гри: жанр, сеттинг, etc. Потім розробляють First Playable Prototype (FPP) — він потрібний для того, щоб відвалідувати ідею. Припустимо, хочемо зробити гру про плавання на кораблях: чи можна буде грати в це, наскільки це прикольно?

Якщо FPP пройшов ревю і все окей, починається безпосередньо розробка: створення контенту, наповнення, фіч. На розробку сучасних ААА-тайтлів йде від 3 до 5 років — залежно від масштабу.

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

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

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

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

У Gold Master не повинно бути багів. Але це в ідеальному світі. Насправді їх там повно. І за кілька тижнів до офіційного релізу, поки заводи друкують диски та розсилають їх продавцям по всьому світу, програмісти роблять first day patch / Day 1 Patch (файл з оновленнями для виправлення багів у грі — прим. ред.), що виходить у перший день. Тобто людина тільки вставила диск, а їй кажуть: «Тут ще треба завантажити трошки оновлень — 50 гігабайт. Тож почекай». Приблизно так.

Але й це ще не все — далі йде Post Launch. Програмісти дуже не люблять цей етап: ти просто сидиш, фіксуєш краші, збираєш баги — і так протягом кількох місяців. Тому в команді зазвичай відбувається так: «Хто залишається на пост-лонч? Так, ти ще ніколи не був — тоді ти. А ти вже був — отже, йдеш на новий проєкт». Це як трудовий обов’язок — нудний, але суперважливий, тому перші місяці після виходу гри найактивніші в плані продажу.

Оскільки розробка ігор стає дедалі дорожчою, геймдев-компанії шукають додаткові способи монетизації. Наприклад, створюють DLC (Downloadable Legal Content) — додатковий платний контент. Це підвищує інтерес до основної гри та допомагає відбити витрати на розробку. Якщо 10 років тому висновки про окупність робили за декілька місяців після релізу, то сучасні ігри завдяки DLC монетизуються ще декілька років. Частина програмістів залишаються на проєкті саппортити DLC.

Чи реально зробити гру самотужки?

Так, є багато таких прикладів. Як правило, для цього використовують рушій Unity або Unreal Engine. Просто знаходиш туторіал («як зробити гру на Unity»), сидиш і робиш: промальовуєш базові версії, механіки, контент. Навіть вміти малювати не обов’язково — є купа платних та безплатних ассетів (набір готових програмних моделей — прим. ред.). Залишиться додати грі індивідуальності.

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

Поясни простими словами, що таке рушії і як вони працюють?

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

Великою мірою, що нам потрібно, щоби зробити гру? Показати якийсь світ, персонажа та додати можливість керувати цим персонажем. Це можна зробити в будь-якому рушієві в базовій версії. Сучасні рушії, звичайно, значно крутіші і складніші. У Unreal Engine 5, наприклад, можна завантажувати кінематографічні ассети — робити практично кіно.

Одна з найбільш простих і зрозумілих платформ для створення ігор — Roblox. Вона розрахована на дітей 8–14 років, але новачкам у геймдеві цілком підійде. Чисто поклацати і розібратися, що до чого, поставити персонажів, подивитися, що вони робитимуть. А потім уже можна перейти на щось складніше, на зразок Unity.

Чи можна за графікою гри визначити, на якому рушієві її створили?

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

Як можна зробити графіку в грі крутішою? Розкажи на прикладі свого поточного проєкту — ZibraAI.

Ми розробляємо технологію, що дозволяє робити воду максимально реалістичною. Зазвичай в іграх симулюють лише водну поверхню, а ми симулюємо воду за партиклами — системами частинок. Завдяки цьому вона реалістично взаємодіє зі складними об’єктами та може брати повноцінну участь у механіці гри. У ролі архіватора форми цих складних об’єктів ми використовуємо ШІ.

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

Ще ми працюємо над технологіями, які дозволяють прискорити процес рендерингу та генерувати 3D-контент. Зараз це супергаряча тема — майже всі великі компанії щось розробляють у цьому напрямку. Все тому, що більшість коштів на розробку йде саме на створення контенту.

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

Як фанати створюють модифікації (моди) для гри? Розробників це не ображає?

Моди всі люблять, тому що вони продовжують життєвий цикл гри. Взяти той самий Skyrim — він вийшов 10 років тому, але в нього продовжують активно грати. Великою мірою завдяки модам.

По суті, створення мода — це просто заміна моделей. Людина розпаковує архів з даними та змінює моделі, текстури, шейдери. Так можна змінити зовнішній вигляд гри по-своєму.

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

Яке запитання про професію тебе найбільше бісить? 

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

Навіть коли ти працюєш з білдом (версія збірки — прим. ред.) і ніщо не заважає тобі запустити та пройти гру — на це просто немає часу, у тебе інші задачі. Скільки я працював над Assassin’s Creed — ніколи не грав у неї до виходу.

Що потрібно знати та вміти, щоб стартувати у професії?

Для людини без досвіду в програмуванні варіант лише один — піти на тестувальника. Це допоможе за 1–2 роки сформувати повноцінну картину того, як влаштований геймдев, і зрозуміти, чи треба воно їй чи ні. А далі вже можна дивитися, який напрямок ближчий.

Якщо знаєш C#, C++ (основні мови, що використовуються у геймдеві), можна відразу піти програмістом. Почати з Generalist Programmer — такий програміст працює над задачами, для яких не потрібна специфічна кваліфікація на кшталт 3D. Попрацювати, подивитися, як влаштовані ігрові рушії — це дуже цінний програмістський досвід.

І в будь-якому разі дуже важлива англійська. Коли мене запитують, яку мову програмування вчити, я відповідаю: «Англійську, а там на місці розберемося».

Як потрапити до крутої геймдев-компанії? Розкажи про свій досвід із Ubisoft.

Я приходив до Ubisoft у 2014 році — давненько. Звісно, з того часу у них змінилися і тестові завдання, і все інше. Але вимоги скрізь приблизно однакові. Насамперед оцінюють програмістські скіли (стандартний набір запитань про алгоритми, структури даних, С++) та мотивацію. Це дуже важливо.

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

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