Привіт! Настала пора продовжити історію про мій шлях у геймдев.
Зразу уточню, що цей текст є продовженням минулої статті, і тим, хто бажає повністю погрузитися, рекомендую спочатку прочитати попередній текст. Для тих, хто не має такого бажання, максимально короткий переказ: мене звуть Діма, зараз мені 31, з дитинства мріяв розробляти ігри. Закінчив школу, ледацював декілька років, у 20 завдяки своїй жінці закохався у програму 3ds Max і в результаті став архітектурним візуалізатором. Незважаючи на гарний заробіток, настільки перевантажив себе працею, що перетворив колись улюблену справу на завод, вигорів вщент і просто став з люттю ненавидіти свою справу. Однак, у страху стати безпритульним, продовжував послухно брати замовлення, і так все було до 24 лютого 2022 року, коли в один момент змінилось моє життя і всі цінності. Подякувавши 3D за все і обійнявши востаннє, я почав свій шлях у геймдев. Продовжимо.
Не маючи жодних ідей для майбутньої гри, я розумів, що головне - почати навчання, а з усім іншим буду розбиратися по ходу справи. Для пошуку потрібних уроків, перше, з чим треба визначитися - це ігровий двигун. Виділивши два лідера на сьогоднішній день - Unreal Engine і Unity, мій остаточний вибір впав на Unreal, так як він більше заточений під 3D (в якому у мене великий досвід) + у нас вже було невеличке знайомство - я переносив кілька своїх архітектурних 3D проектів в інтерактивні сцени на UE4.
Також був дуже вагомий аргумент - візуальне програмування. Хто не знає, на Unreal Engine можна зробити гру будь-якої складності, не написавши жодного рядка коду. За це відповідає нодова система візуального програмування Blueprints (далі блупринти) і замість того, щоб писати вручну код для переміщення героя з точки А в точку Б, ти просто ставиш ноду руху і вписуєш координати, звідки і куди потрібно дістатися персонажу. Так, їх теж треба вміло застосовувати, але це всяко краще, ніж купа незрозумілих букв і цифр на екрані. Дивлячись на код своїх друзів програмістів, у мене завжди було відторгнення, нібито, мене змушують читати єгипетські написи. Так що блупринти були порятунком.
Після завантаження цілої купи уроків та UE5 Beta, я розпочав вивчення як зі звичайного круга, намальованого на папері, перейти до кулястого ігрового героя; що таке ігрова логіка, як навчити персонажа стрибати при натисканні клавіш на клавіатурі, чому фізику потрібно множити на дельта секунди і як можна ненароком потрапити в нескінченний цикл і доведеться завершувати процес у диспетчері завдань. Повністю присвятивши себе навчанню 24/7, слухаючи різні подкасти про розробку ігор, дивлячись відео на YouTube від інших розробників та читаючи kutok, я відчував своє ментальне переродження. Думки та ідеї бурхали в моїй голові. Згадуючи останні роки рабської рутини, я знову відчував себе живим. Крім того, кожен день наближав мене до моєї власної гри. Але...
У житті часто виникає своє "але", і в моєму випадку, чим більше я поринав у ігрову тематику, тим більше я розумів, що на першу гру я витрачу три, а то й більше років. Розумієте, мої плани не включали в себе вивчити Unreal і піти в контору робити 3 у ряд, починаючи як старший помічник молодшого конюха; я не хотів відкривати свою Blizzard, так як у мене поки немає таких амбіцій і фінансів, щоб платити людям заробітну плату; і ще варіант - знайти собі подібних інді-розробників і почати створювати проект своєї мрії. Можливо, останнє - це те, що потрібно, але бажання робити схоже у мене відсутнє. Ви запитаєте чому, але я знову (як і в попередній статті) не зможу відповісти на деякі питання. Можливо, хочу, щоб мій продукт грався і виглядав так, як тільки я хочу, не знаю... Загалом, перспектива одиночної тривалої розробки мене не приваблювала, але і в команду мені не хотілося.
Скріни мого навчання в Unreal Engine
Продовжуючи вивчення UE, я кожен день задавався цим питанням, і ось одного разу в мені спалахнула ідея виходу з даної ситуації, яку я миттєво відкинув. Але чим більше часу минало, тим частіше ця думка відвідувала мене, і, оскільки це було моєю внутрішньою скалкою, вона досягла свого і я перейшов на новий етап прийняття неминучості. Буду чесний з вами, прокладаючи шлях геймдева, я не думав, що через 3 місяці він поверне в цьому напрямку. Але щоб остаточно розібратися в усьому, мені потрібно було поговорити з ще однією людиною. Я встав з крісла, підійшов до своєї жінки і почав діалог:
- Олена, у тебе є хвилинка? Мені потрібно серйозно поговорити з тобою.
- Ти мене лякаєш. Що сталося?
- Ні, ні, заспокойся, все добре. Мені завжди подобалися твої художні роботи. Ти ж навчалася на дизайнера, мала багато уроків з малювання, чи не так?
- Ну, колись було, так, полюбляла малювати, але це все було так давно. А що таке?
- Послухай, ти знаєш, що таке піксель-арт?
- Нуууу… це стиль як на старих ігрових приставках?
- Так-так-так.
- І що?
- Послухай… Мені потрібна твоя допомога. Я сам не вірю, що це говорю, але схоже, що у мене немає іншого виходу. Як ти ставишся до того, щоб ти взяла на себе всю графіку моєї… або вже нашої гри, а я займуся всім іншим?
- Ну покажи/розкажи мені все детально, а там буде видно, я в цілому не проти спробувати.
- Добре, зараз я тобі скину приклади і спробую знайти уроки по твоїй темі.
- А в твоєму "Анреалі" можна і 2D ігри робити?
- Ой, не питай... Ні, UE4 не був пристосований робити 2D ігри, а в п'ятій версії взагалі вирізали все, що пов'язувало Unreal з 2D.
- Що тепер робити?
- Unity... Мені потрібно вивчити Unity…
Після розмови мені хотілося панічно сміятися. Я просто не міг повірити, що моя колись там майбутня гра з 3D перетворилася на 2D, що тепер за весь дизайн відповідає моя дружина, що мені потрібно з нуля вчити Unity і писати код! З останнього мені хотіло “радіти” найбільше. Але (сьогодні буде багато але, але що робити) все це в перспективі повинно принести свої плоди, і мені не доведеться робити перший проект до старості (я сподіваюся).
Щодо моєї дружини, Олени, то сумнівів щодо неї у мене ніяких не було. Я не хочу розкидатися гарними словами, але на даному етапі життя вона мій вірний партнер і друг. Незважаючи на не невеликий ігровий досвід, ця індустрія завжди цікавила її, а минулі навички малювання знадобляться зараз як ніколи (диплом дизайнера до сьогоднішнього дня, так і не знадобився). Я надав їй купу прикладів ігор в стилі піксель-арт, уроків; намагався пояснити, що мені в майбутньому буде потрібно, і сказав, що час на навчання є, оскільки мені належить розібратися з Unity...
Усю “смакоту” Unity можна відчути вже на етапі завантаження/налаштування. Спочатку потрібно визначитися, яка версія тобі потрібна — свіжа чи LTS? На якій ти будеш писати код, звичайний Visual Studio, наприклад, чи Visual Studio Code? А якого року вибрати — 2019 чи 2022? Зараз відповісти на всі ці питання я можу за хвилину, але тоді в голові була така каша, а руки так і тягнулися запустити рідний Unreal Engine. Але рішення прийнято і шляху назад немає.
Коли все було налаштовано і довготривалий курс з 95% позитивних відгуків був завантажений, я вперше запустив Unity. Вивчаємо інтерфейс, створюємо квадрат, фізику, колайдери, і ось момент, коли мені потрібно написати свій перший в житті код. Сказати, що я був у шоці, це нічого не сказати!
Я мушу все це сам писати? Я що, маю все це запам'ятати? Прям обов'язково крапка з комою в кінці? Які ще фігурні дужки, як у школі, чи що? Чому на новому рядку? Що значить помилка? Де? Я що, маю все це запам'ятати???
Цитата щоденних думок у перший місяць вивчення програмування для Unit
В загальному, стадія прийняття — гнів, у всій красі. Припадки тихої люті приходили до мене кожні кілька хвилин, і це повторювалося з дня в день. Написання коду, порівняно з блупринтами в UE, здавалося минулим віком. Мозок сприймав "переїзд" як катування і відмовлявся перебудовуватись з Unreal на інший двигун. Крім того, ось з чим мені довелося зіткнутись — якщо спочатку мені вдавалося написати хоча б якийсь код і я міг виводити “Hello, world!”, то з часом я дійшов до кроку, в якому абсолютно нічого не розумів. З одного боку, це не заважало рухатися далі, просто проскочити незрозумілий урок, але в чому сенс? Якщо я навіть з навчанням основ не впорався. Я раз за разом проходив цей урок і все так само нічого не розумів. Навіть початок всього курсу з нуля не приніс жодних результатів. А потім до мене прийшла геніальна думка, що цей курс поганий, і мені потрібен інший, хороший! Логічно?
Новий курс завантажений: уроки 1, 2, 3 і зупинка, викладач щось вимагає, але я не розумію, що. Повторюю все за відео, але цього мало. Крім повторення, потрібно ще і розуміти, що ти робиш, а з цим проблеми. Як ви зрозуміли, цей урок теж поганий!
Відкриваю новий, на певному етапі все знову повторюється. І так 5 чи 6 різних курсів підряд, після чого приходить усвідомлення, що я дурень і писати код не здатен. Але перед тим, як кинути Unity, я чомусь вирішую відкрити самий перший курс і спробувати пройти його ще раз, і Еврика! А тепер-то я все розумію! Це дивно (хоча нічого дивного), але у кожного викладача я вчився чомусь новому і отримані знання, наприклад, у четвертому курсі допомогли мені пройти перший, а потім вже досвід першого вирішував усі проблеми третього (вибачте, якщо заплутав).
З того часу все пішло як по маслу. Я проходив курс за курсом, на яких вчився робити різні прості ігри, записував будь-які ідеї, що приходили мені в голову, нескінченно мріяв під час прийому їжі і продовжував кодувати у голові після вимикання комп'ютера, знаходячись в ліжку. Що стосується Олени, її життя було схоже на моє, також усі вільні години на навчання, тільки у її випадку — малювання і анімація піксель-арту.
Перші кроки Олени у піксель-арті
Отже, так пройшло приблизно 6 місяців нашого життя. Не знаю, це багато чи мало, але настав день, коли всі уроки, які я знаходив, здавались для мене примітивними, а знайти щось середнього рівня виявилося дуже важко. І тоді я почав усвідомлювати, що моє навчання за курсами підійшло до кінця.
Далі я вирішив ще трохи "потренуватись на кішках" і написати своїми руками механіки з ігрової класики. Так з'явилися свої варіації "змійки", "бомбермена", "танчиків" та інших ігор. Звичайно, без відео з відповіддю під рукою було не так легко, але одна з головних причин, чому я обрав Unity, а не наприклад Godot (який зараз набирає дику популярність), це те, що на 95% твоїх запитань вже дали відповідь в інтернеті, і майже будь-яка проблема, ймовірно, вже вирішена кимось. Взагалі я зрозумів — головне навчитися мислити як програма, і писати код стане легко. Навіть у повсякденному житті цей навик може допомогти (привіт, психлікарня).
Скріни мого навчання в Unity
Якось, копіюючи механіку з чергової старої гри, я замислився — для чого я взагалі сиджу і повторюю щось чуже, коли можна придумати своє і намагатися це написати? І чорт його бери! Чи насправді прийшов цей момент? Чи насправді закінчено навчання? Я починаю робити свою гру...!?!
Отже, отак проходило моє навчання. Моя перша гра (Just Hide) зараз активно розробляється, і я прошу вас додати її в бажане (у Steam), це дуже допоможе у її просуванні. Наступного разу я розповім, як шукав ідеї для гри, робив прототип, десятки разів перемальовував одні й ті ж карти і багато іншого. Обіцяю, що третя частина буде не через півроку.
Велике дякую за читання та додавання гри в бажане, ви молодці! Підписуйтесь і залишайте коментарі, до зустрічі.
P.S. Зроблю невеликий відступ, щоб відповісти на можливі запитання, які виникли у вас, читаючи цю статтю.
- Діма, чи справді все може бути настільки просто, як у дитинстві, в 30 років?
Так і ні. Будь ласка, не забувай, що мені знадобилося майже 20 років, щоб прийти до себе, і ту подію, яка зруйнувала моє минуле життя.
- Ти дуже пощастило з Оленою.
Так, напевно так.
- Олена нічим більше не займається? Вона що не працювала?
Вона працювала, але обставини змусили її призупинити роботу. Вона моя дружина та друг, а ігри часто розробляються з друзями.
- Так Дімон, перша стаття крутіша була.
Читати рефлексію на декілька десятиліть цікавіше, не заперечую; я це розумів сам. Але втискати цей текст в першу частину немало сенсу, а починати цим текстом майбутній (третій) лонг теж не варіант. У нас є дві готові публікації — шлях до геймдеву, навчання; а незабаром я розповім, як почалася розробка, і про всі етапи до сьогоднішнього дня.
- Ще один піксель-арт, ти з дуба звалився?
Розумію і, можливо, погоджуюсь з вами, але для мене важливо придумати, зробити і випустити гру, а піксель-арт — це інструмент, який допоможе реалізувати все це, не розтягуючи розробку двох людей на роки.
- І що думаєш, у майбутньому ти випустиш свій Minecraft і всі побіжать його купувати?
Хммм... хотілося б, але зараз головне для мене — це задоволення від того, чим я займаюсь, а що буде далі, час покаже.
- Я прийшов за відповіддю, як перебудувати себе і не зійти з розуму, а не читати недоумкувате оповідання незнайомця!
Тут кожен повинен вирішувати сам, я не психотерапевт. У моєму випадку це максимальний вихід з зони комфорту, просто почати робити те, про що мріяв багато років. Потім розумієш, що змінювати життя не так і страшно. Задаєшся питанням: "Чого я так довго тягнув і не зробив цього раніше?" Потім приходить задоволення від процесу вивчення чогось нового.
- Правда, що дикі коні сплять стоячи?
Так, як і багато інших диких тварин. Це пов'язано з ймовірністю нападу хижих звірів; секундне зволікання, яке знадобиться, щоб зайняти вертикальне положення, може коштувати життя.
Топ коментарі (2)
Було цікаво почитати про ваш досвід, особливо про диких коней. Успіхів з розробкою:)
Щиро дякую 😉