Від VR-тренажерів для ПЗРК до роботи в 4A Games: як студенту потрапити в топову студію та поєднувати геймдев з сесіями

Дмитро Кліщ — Render Programmer у 4A Games, чий шлях у геймдев почався з ігнорування порад оточення. Поки знайомі відмовляли його від «неперспективної» ніші, Дмитро ще під час навчання пройшов шлях від перемог на олімпіадах і Big Data до розробки VR-тренажерів для ПЗРК у N-iX.

В інтерв’ю він розповідає про «обхідні шляхи» в індустрію, роботу з Unreal Engine 5 та чому власний рушій — це найкраща школа для рендер-інженера. Також ділиться порадами для тих, хто планує поєднувати кар’єру зі студентством — від технік Active Recall та Spaced Repetition до лайфхаків, як отримувати «автомати» та домовлятися з викладачами про зарахування робочих проєктів замість лабораторних.

«Мене відмовляли. Казали, що у цій ніші менше перспектив». Про навчання, спортивне програмування та вхід в індустрію

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

Вибір університету був продиктований ще й юнацьким бажанням незалежності. Мені хотілося втекти з-під постійного нагляду батьків, тому я зосередився на київських ВНЗ, а львівські розглядав як запасний варіант. Оскільки на етапі вступу я ще не визначився зі спортивним програмуванням, обрав програмну інженерію в КНУ. Чув, що там потужна олімпіадна база, ґрунтовна підготовка та високий відсоток випускників у топових ІТ-компаніях.

Геймдев цікавив мене ще зі школи, але тоді це було лише хобі: я пробував писати невеликі консольні ігри. На жаль чи на щастя, на той час мені бракувало рішучості зробити розробку ігор основною справою. До того ж люди з мого оточення мене відмовляли, казали, що у цій ніші менше перспектив. Оскільки я ще не випробував себе в інших напрямках, вирішив відкласти геймдев «у далеку шухляду».

Мій професійний шлях розпочався на першому курсі, коли я потрапив у Grid Dynamics на позицію Big Data інженера. Після інтернатури я перейшов на реальний проєкт і загалом пропрацював у компанії півтора року. Саме там я отримав перше справжнє розуміння того, як це — працювати розробником.

Десь посередині проєкту з’явилося бажання у вільний час створити власну гру — щось у жанрі Grand Strategy, на кшталт проєктів Paradox Interactive. Спершу я спробував написати власний рушій з нуля, але швидко збагнув: це забере забагато часу, якого й так бракувало. Тому вирішив перейти на готове рішення.

«Прямі подачі в геймдев-студії спочатку приносили лише відмови»

Вибір Unreal Engine 5 був для мене логічним: я вже мав досвід із C++ і зовсім не хотів витрачати ресурси на вивчення нової мови. Мені здавалося, що перехід на рушій має економити час, а не змушувати вчити все заново. Зараз я розумію, що це рішення було помилковим для цієї мети, але було дуже вигідним для мене особисто.

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

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

Коли через півтора року мій проєкт у Grid Dynamics перейшов у стадію підтримки, частину розробників (і мене зокрема) перевели на бенч. Провівши там близько півтора місяця, я остаточно впевнився, що розробка власної гри мене цікавить значно більше. Проте на той момент я вже мав достатньо часу, щоб зрозуміти, що розробка ігор не така проста, як мені здавалось, тому вирішив спершу отримати комерційний досвід роботи на UE, перш ніж пробувати робити щось своє.

Прямі подачі в геймдев-студії спочатку приносили лише відмови. Тоді я вирішив шукати «обхідні шляхи» і записався на курси від N-iX Game & VR. Мене зацікавила можливість потрапити в команду за результатами навчання. На курсах я намагався бути максимально проактивним: сумлінно виконував усі домашні завдання та готував списки питань для Q&A-сесій із розробниками студії, спираючись на власні спроби ігрової розробки. Цього, як виявилось було достатньо, щоб зацікавити компанію і отримати інтерв’ю, яке вдалось пройти і отримати свою першу роботу в геймдеві.

«Працюючи в N-iX, мої спроби зробити власну гру відійшли на задній план, а навчальний рушій зайняв більш важливе місце». Розробка навчального тренажера для роботи з ПЗРК і свіч на рендер-програмування

В N-iX я пропрацював півтора року і встиг долучитися до двох великих проєктів, де займався сумішшю геймплейних та рендер-задач. Першим проєктом був Dart Range — тренажер для правоохоронних органів, який дозволяє створювати різноманітні сценарії та симулювати їх без використання справжньої вогнепальної зброї, тим самим збільшуючи різноманіття тренувань та роблячи їх більш безпечними. Спершу я фокусувався на виправленні багів та роботі з UI, але з часом перейшов до складніших завдань — детекції та обробки пострілів. Це включало інтеграцію та підтримку нових камер, а також їх калібрування для детекції тощо.

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

«Працюючи в N-iX, мої спроби зробити власну гру відійшли на задній план»

На обох проєктах команди були відносно невеликими, що давало простір для ініціативи. Можна було взяти на себе розробку певної системи або підтримати складні процеси. Такий підхід дозволив мені не просто виконувати таски, а з часом фокусуватися на найцікавіших задачах або принаймні бути безпосередньо залученим до їх вирішення. Досвід в N-iX навчив мене працювати з різними системами та дав розуміння, як влаштовані робочі процеси у невеликих командах.

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

«В 4A Games я займаюся підтримкою та вдосконаленням апскейлерів й алгоритмів антиаліасингу»

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

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

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

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

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

Я закінчив ліцей і вступив до університету у 2021 році. Тоді ще тривали ковідні карантини (🥹 - прим. ред.), а згодом, у 2022-му, почалося повномасштабне вторгнення. Більшість навчального процесу проходила дистанційно, що дозволило зекономити час на дорогу. Очно ми вчилися зовсім трохи: на самому початку, завдяки послабленню карантину, та вже згодом, адаптуючись до нових реалій. На щастя, того короткого періоду офлайну вистачило, щоб познайомитися з одногрупниками та сформувати коло друзів зі схожими інтересами.

На той час дистанційка вже не була новиною, тож кожен викладач мав свій підхід. До прикладу, був випадок, де викладач, щоб зменшити шанси на списування, робив простіші, але значно коротші тести: ~15 секунд на питання та 10-15 хвилин на усю роботу. Також були викладачі, хто уважно слідкували за камерами та ті хто вимагали додатковий усний захист.

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

«Не всім викладачам подобається, коли студенти працюють»

Щоб оптимізувати процес, я відкрив для себе методи Active Recall та Spaced Repetition. Суть Active Recall у тому, щоб не просто перечитувати конспекти, а активно відтворювати інформацію через запитання або переказ по пам’яті. Це допомагає ефективно засвоїти матеріал на короткій дистанції. А Spaced Repetition допомагає перенести ці знання в довготривалу пам’ять завдяки повторенню матеріалу через певні проміжки часу, що залежать від рівня засвоєння.

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

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

«Значна частина моїх знань та досвіду походить із різноманітних особистих проєктів»

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

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

Ще одна порада, яку я й сам собі часто нагадую: «Рим не за один день будували». На початку кар’єри важливо розуміти, що не завжди випадає нагода одразу потрапити на проєкт мрії. Іноді варто попрацювати над тим, що є, і використати цей досвід як трамплін для наближення до своєї цілі.

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

Підписуйтеся на Telegram-канал @gamedev_dou, щоб не пропустити найважливіші статті і новини

👍ПодобаєтьсяСподобалось6
До обраногоВ обраному3
LinkedIn


Ctrl + Enter
Ctrl + Enter

Було приємно бачити цей ріст зсередини

Підписатись на коментарі