Від атомного енергетика до розробника ігор. Як світчнутися в геймдев
Привіт! Мене звати Ігор, і я — UE/C++ Developer в компанії Kevuru Games. Щиро люблю геймдев та свою роботу, але перед тим, як втілити мрію дитинства та зануритись в ігровий світ, я декілька років працював у галузі атомної енергетики. Історію мого світчерства, а також поради тим, хто бажає стати розробником — читайте у блозі.
Чорна магія програмування
Я з дитинства полюбляв відеоігри, ще з дошкільного віку багато грав на консолі та комп’ютері. Спочатку в мене з’явилася ігрова приставка Dendy, потім — Sony PlayStation, пізніше — комп’ютер. Але я ріс в сім’ї шахтарів, і батьки завжди негативно ставилися до відеоігор. Тому я не замислювався над тим, що це може бути роботою. Навіть програмування ніколи не розглядав як можливу сферу для навчання.
Я закінчив Київський політехнічний інститут за спеціальністю «Атомна енергетика». З четвертого курсу почав працювати за фахом. Змінив декілька компаній: як державних, так і приватних.
Мені траплялися доволі цікаві проєкти з розрахунку нейтронно-фізичних констант та створення програмного забезпечення для моніторингу стану активної зони реактора. На той час в Україні активно зменшували частку російського палива на користь інших виробників. Необхідно було виконати багато роботи, щоб збільшити самодостатність атомної галузі країни.
Загалом я пропрацював в атомній сфері понад чотири роки. Також паралельно навчався в аспірантурі за своєю спеціальністю та вів активну наукову роботу. Брав участь у різних професійних конференціях, писав та публікував наукові статі. Понад двох років працював над своєю науковою дисертацією.
Вже під час навчання в університеті я дізнався, що є багато IT-спеціальностей та напрямів. Але тоді для мене це було якоюсь чорною магією. Я на цьому геть не розумівся і лякався, якщо хтось поруч говорив про мови програмування, операційні системи тощо. Я був повним нулем в IT, і це було соромно визнавати.
Згодом, вже працюючи в атомній сфері, я більше дізнався про програмування і навіть почав опановувати Python та С++ для робочих задач. Я зрозумів, що це звичайні інструменти, і майстерність в них залежить виключно від кількості часу витраченого на навчання та досвіду роботи з ним.
Я почав більше цікавитися світом програмування, дивитися різні вакансії. Усвідомив, що, на жаль, в Україні кар’єра в науці чи в атомній галузі не відрізняється гарними умовами праці та високими компенсаціями. Ти можеш роками працювати на одній посаді, не маючи можливостей для зростання.
А програмування та геймдев — це, напевно, одні з найдинамічніших напрямів у світі. Тут твої успіхи більшою мірою залежать від твоїх зусиль. Тому вирішив, що час повернутися до ігор, але вже як розробнику.
Перша спроба виявилася вдалою. Але це, швидше, вдача та виняток
Для мене найважчим було визначитися з напрямком. Коли я тільки вирішив розвиватися у програмуванні, то побачив, наскільки широкими та різноманітними є можливості у цій сфері. Я намагався читати та дивитися все й одразу. При цьому ще не мав поняття, що може бути корисним, а що ні. Мої вподобання змінювались ледь не щодня.
Але через те, що по роботі вже зіштовхнувся з С++ та Python, то зрештою почав розглядати ці мови програмування як пріоритетні. Згодом дізнався, що розробка ігор — це одна з можливостей застосовувати саме ці мови, і тоді вже остаточно визначився, що хочу бути Game Developer.
Також я дуже довго не наважувався вперше надіслати своє резюме — вважав себе занадто неготовим. Боявся, що буду виглядати зовсім безпомічним у порівнянні з людьми з профільною вищою освітою та великим досвідом у розробці ігор. Чомусь я думав, що тільки суперкруті програмісти можуть працювати в геймдеві.
Зрештою я зміг себе побороти — і відправив резюме в одну компанію. Мене покликали на співбесіду, я її пройшов, виконав тестове завдання та отримав пропозицію Junior Game Developer. Тож перша ж спроба пошуку роботи виявилася вдалою. Але це, швидше, вдача та виняток.
Програмування — це не так страшно
Світчерство в геймдев — це, з одного боку, складніше, ніж в інші IT-сфери, тому що тут вищий поріг входу. Від тебе одразу вимагають певних навичок та розуміння. Мені не доводилося зустрічати Trainee-програм для програмістів в геймдеві, та й з працевлаштуванням джунів зазвичай теж важко. Але, з іншого боку, якщо ви справді бажаєте потрапити в геймдев, для вас це не просто робота, а й хобі та мрія, то і весь процес освіти та здобуття навичок перетворюється на дуже захопливий та цікавий шлях.
Навчався я здебільшого самостійно за книжками та уроками на YouTube. Також пройшов декілька офлайн та онлайн курсів. Це були курси з розробки ПЗ, та вони пропонували різні мови для вивчення, але база та більша частина матеріалу була орієнтована на С/С++. До того ж на цих курсах викладали спеціалісти з ігрової індустрії, тому й приклади та історії були пов’язані зі світом ігор, що було дуже цікаво для мене.
Водночас намагався створювати свої невеликі ігрові проєкти. Починав із консольних змійок та тетрисів, потім вже почав використовувати графічну складову з QT та SFML.
Найбільшою своєю перевагою вважаю відсутність страху перед математикою
Попередній досвід роботи виявився для мене дуже корисним. На минулій роботі я займався фізикою та математикою, намагався програмувати невеликі розрахунки, автоматизовував роботу розрахункових кодів. Все це стало у пригоді і в геймдеві. Звісно, тут інша специфіка та інструменти, та багато чому доводиться вчитися щодня, але, загалом, підхід до розв’язання проблем дуже схожий.
Найбільшою своєю перевагою вважаю відсутність страху перед математикою та фізикою. Звісно, я не пам’ятаю всю векторну алгебру, але розумію, як можна вирішувати ті чи інші задачі.
Але, крім хардових скілів, корисними є також навички в організації робочого дня, досвід командної роботи тощо.
Я починав працювати в напрямку мобільних ігор на позиції Junior C++ Developer. Менш як за рік отримав оцінку Strong Junior, а за два роки від початку роботи став повноцінним Middle C++ Developer.
Але робити ігри для смартфонів мені не дуже подобалося, тому поступово я почав вивчати Unreal Engine, щоб перейти в консольні та PC-ігри. Через 2,5 роки у мобільному геймінгу змінив напрямок на UE Developer. Знайшов роботу в Kevuru Games на дуже крутому та цікавому проєкті. Тож останній рік я працюю як Middle UE/C++ Developer і продовжую розвиватися в Unreal Engine.
Поради світчерам
Найважливіше — мати бажання працювати з іграми. Звісно, рожевих поні в розробці ігор не так вже й багато. Але якщо бажання є, то це майже гарантований успіх! Ти просто можеш робити те, що тобі подобається, — наприклад, написати власну гру. Для початку, звісно, це можуть бути зовсім прості ігри в консолі без графічної складової.
Мені на самому початку опанування програмування дуже допомогла книга Майкла Доусона «Програмуємо на Python». Якщо ти, як і я ніколи не стикався з програмуванням, то, на мою думку, краще почати з мови на кшталт Python. Вона лояльна до початківців, опанування базового синтаксису та принципів побудови програми будуть корисними і для інших мов програмування. Потім можна братися за С# чи С++. Мова С# використовується в рушії Unity, а С++ — для Unreal Engine та багатьох внутрішніх рушіїв в ігрових компаніях.
За поширеною думкою C# легше вивчати за С++, та основна її сфера застосування — здебільшого мобільний геймінг. Та оскільки я працюю з Unreal Engine, то рекомендувати можу саме цей рушій. Unreal Engine — це дуже перспективний інструмент, який є свого роду стандартом у світі AA та AAA проєктів, та може використовуватись не лише в іграх. Він дуже динамічно розвивається, має можливість безкоштовного використання, дуже широке ком’юніті. Unreal Engine та C++ дозволяють створити гру будь-якого рівня, багато відомих ігрових компаній починають використовувати Unreal Engine замість своїх рушіїв.
Окрім самостійного вивчення, на мою думку, треба цікавитися загалом світом геймдеву — слухати підкасти, дивитись новини ринку, технологій та ігрових компаній. Коли ти занурюєшся у світ розробки ігор — це дуже додає мотивації.
Ще одну порада, яку хочеться дати, — це намагатися побудувати навколо себе коло однодумців, людей, які, як і ти, цікавляться розробкою та іграми. Таке коло простіше за все знайти на курсах чи тематичних пабліках в соцмережах. На початковому етапі дуже корисно мати людину, до якої ти можеш звернутися за порадою чи допомогою.
Головне — не зупинятися. Інколи настають моменти, коли ти усвідомлюєш, наскільки твої спроби далекі від God Of War або Cyberpunk. Тоді руки опускаються, і здається, що все марно. Утім, ти повинен запитати себе, чи хочеш ти створювати ігри? Якщо так, то цей шлях — для тебе.
7 коментарів
Додати коментар Підписатись на коментаріВідписатись від коментарів