Був коміком, а зараз розроблюю мінімалістичний платформер
Привіт! Мене звати Тимофій, я живу у Києві. Раніше займався стендапом (5 років), робив імпровізаційне шоу «Твої Проблемі», був ведучим Просмажки та разом з Данилом Поваром робили комедійну виставу «Ведучі». Все це є на ютубі. Частіш за все я самостійно і монтував ці проекти, та був режиссером. Рік тому я почав занурюватися у геймдев та розробляти власну гру самостіно. Ось нарешті в мене готова демо-версія, яка буде приймати участь у Steam Next Fest вже на наступному тижні.
Leo: The Square — це мінімалістичний 2д платформер який робить акцент на атмосфері та дизайні рівнів. Ігровий процесс тут медитативний і не швидкий. А челлендж здобувається завдяки новим перешкодам. Наприклад, є рівні де потрібно торкнутися невеликих лампочок, щоб побачити куди йти далі. Ворогів тут не має, тож поспішати не потрібно. При створенні мене надихали такі ігри як, Thomas Was Alone та Super Meat Boy.
Як з’явилася ідея
Раніше я займався стендап-комедією, виступав п’ять років і працював над різними комедійними проєктами. Але рік тому я зрозумів, що втратив інтерес до цього заняття і почав шукати нову мету. Довго розмірковував, що мене насправді цікавить, поки випадково не натрапив на чергову статтю про розробку ігор.
Згадав, як ще в дитинстві мріяв створити власну гру, але завжди думав, що це занадто складно. Колись мене лякали програмування, створення графіки, публікація в Steam та купа інших нюансів. Але цього разу вирішив не здаватися і просто почати.
До Leo: The Square вже пробував працювати над іншими проєктами, але вони були хаотичними, без чіткого бачення. Спочатку я просто експериментував, намагався навчитися розробці, пробував різні ідеї. Але без чіткого розуміння, що хочу створити, ці проєкти швидко згасали.
У якийсь момент почав читати книгу Джессі Шелла «Геймдизайн». Вона змусила переосмислити багато речей і зрозуміти, наскільки важливо мати чітке бачення гри ще до початку розробки. У цей період в моїй голові вже була одна ідея — уявляв платформер, де використовуються прості форми на світлому фоні, без бойової системи. Але на той момент ще не був упевнений, що саме хочу зробити.
Один з моїх останніх виступів. Комедійна вистава «Ведучі» разом із Данилом Поваром
Важливим поштовхом стало відео геймдизайнера Filip Hráček, яке змінило мій підхід до розробки. Я почав аналізувати, які елементи гри для мене найцікавіші, і склав список всього, що хотів би бачити у своєму проєкті. Потім оцінив кожну фічу за двома критеріями — наскільки вона крута та скільки часу потребує на реалізацію. Так я відмовився від бойової системи, нових здібностей для персонажа, складної камери та інших механік, які лише ускладнювали розробку.
Мені важливіше завершити гру, а не створити щось надто амбітне та застрягти в нескінченній розробці. Це підтвердилося і в книзі Шелла, де автор пише, що перші 10 ігор у розробника будуть поганими — головне якомога швидше випускати проєкти, набираючись досвіду.
Натхненням для мене стали Thomas Was Alone та E.Z.. Побачивши, що подібний стиль можна зробити стильно та атмосферно, я зрозумів, що моя ідея має потенціал. Остаточне бачення оформилося, коли я уявив головного героя — квадрат на ім’я Лео. Із цього моменту почалася реальна розробка гри.
Проблеми при розробці
Як тільки завершив планування, завів журнал розробки в Telegram, куди записував кожну зроблену дрібницю. Це виявилося корисним, бо допомагало бачити прогрес і мотивувало в моменти, коли здавалося, що все йде надто повільно. Також одразу почав використовувати тайм-трекер TMetric та дошку Trello, щоб організувати процес роботи.
Платформер важко зробити якісним, якщо персонаж керується незграбно. Здавалося б, рух і стрибки — це найпростіше. Але якщо просто взяти стандартні туторіали, керування виходить жахливим і неприродним. Спочатку я додав рух і стрибок, потім coyote time (можливість стрибнути трохи після виходу з платформи) та jump buffer (якщо гравець натиснув стрибок трохи раніше, він все одно спрацює). Але jump buffer працював неправильно, і я просто проігнорував цю проблему (пізніше, звісно, довелося переробляти).
Ще одна проблема — стрибок від стіни. Спочатку просто взяв код із різних туторіалів, але він працював погано, і я не міг зрозуміти, що не так. До того ж, після перерви в розробці зрозумів, що майже нічого не пам’ятаю з C#, і мої знання були надто уривчастими.
Тоді я написав знайомому, який працював у Ubisoft і 4A Games (він ходив на мої виступи колись). Він погодився допомогти, і ми розібрали мій код. Виявилося, що я зробив все неправильно. Було соромно, що майже весь код складався з уривків туторіалів, які я навіть не до кінця розумів. Після першої розмови він порадив переписати рух персонажа з нуля, враховуючи знайдені помилки. Також я почав дивитися базові курси по Unity та C#, і вирішив більше не копіювати код із відео, а спочатку самостійно розбиратися в логіці.
Коли переписав систему руху, проблеми з jump buffer та стрибком від стіни стали очевиднішими. Ми ще раз розібрали код зі знайомим, і цього разу я вже самостійно розумів, що роблю. Він лише підштовхував мене до правильного рішення. За один дзвінок ми зробили працюючий стрибок від стіни, і потім я ще трохи його доопрацював сам.
Цей досвід допоміг мені зрозуміти важливі принципи програмування:
- Перед тим як писати код, важливо описати словами, як саме має працювати механіка. Той самий стрибок від стіни можна реалізувати по-різному, і якщо спочатку не розуміти, як саме він має працювати, буде багато помилок.
- Краще писати кілька маленьких зрозумілих методів, ніж намагатися умістити всю логіку в один величезний метод. Якщо код виглядає як «робить це, А ЩЕ...», отже, потрібно розділити його на окремі частини.
Після виправлення руху персонажа я нарешті почав працювати над анімаціями: додав ефект стиснення та розтягування під час стрибка, а також реакцію персонажа на бездіяльність (він дивиться навколо, якщо гравець не рухається). Це було нескладно, але потрібно було правильно налаштувати тригери анімацій, щоб усе виглядало природно.
У процесі з’явилася ще одна несподівана проблема: багато механік працювали погано. Вони здавалися нормальними, коли тестував їх на окремих рівнях, але коли почав створювати реальні рівні, виявилося, що потрібно багато виправлень. Наприклад, рухомі платформи некоректно змінювали масштаб персонажа, а гравець міг «зависати» в повітрі на краях платформ.
Це ж стосувалося й лампочок, що освітлюють шлях — спочатку просто зробив базову механіку, а потім, коли почав створювати рівень із нею, довелося тестувати різні варіанти та змінювати баланс. В результаті ця механіка виявилася однією з найцікавіших у грі.
Як я створюю рівні
Головний герой у грі вміє лише рухатися, стрибати від землі та стін — і все. Тут навіть немає подвійного стрибка чи нових здібностей, які відкриваються з часом. На перший погляд це обмеження може здатися кроком назад, але насправді воно допомогло мені зосередитися на глибокій розробці рівнів. Чим більше здібностей у персонажа, тим складніше балансувати складність гри. Тому тут, як і в Super Meat Boy чи Celeste, виклик гравця будується за рахунок нових перешкод і механік, а не розширення можливостей персонажа.
Перед тим як перейти до створення рівнів, я заміряв метрики — визначив, яку максимальну відстань гравець може перестрибнути при звичайному стрибку, при зажатій клавіші, при стрибку від стіни тощо. Це допомогло при подальшому проєктуванні. Але, незважаючи на всю підготовку, постійно відкладав створення рівнів. Замість цього займався анімаціями, додавав систему чекпоінтів або вигадував нові механіки. Думаю, це було пов’язано з тим, що я боявся зробити щось нецікаве — все ж це мій перший досвід. Але коли нарешті сів і почав будувати рівні, страх швидко зник.
Спочатку малював ескізи рівнів на планшеті, а потім переносив їх в Unity, тестуючи кожен фрагмент, поки не залишався задоволеним результатом. Після цього додавав освітлення, ефекти частинок і переходив до наступного рівня.
Але коли механіки стали складнішими, малювати рівні заздалегідь стало марним — після тестування вони суттєво змінювалися. У результаті я почав працювати прямо в редакторі, придумуючи ключову ідею рівня — наприклад, «спуск вниз», «тільки стрибки від стіни» чи «темний підйом угору» — а потім імпровізував, створюючи перешкоди. Саме такий підхід дозволив мені знайти найцікавіші моменти гри.
Так, наприклад, придумав лампочки, що освітлюють шлях. Спочатку просто зробив механіку — і відклав. А коли прийшов час використовувати її на рівні, методом проб зібрав дизайн, який чудово працював. На папері мені було б складно передати ефект темряви та зрозуміти, на яку відстань має поширюватися світло лампочки.
Ще один важливий момент — під час роботи над одним рівнем в голову приходять ідеї для нових перешкод або головоломок. Це відбувається тому, що мозок постійно шукає рішення. До того ж з кожним рівнем краще розумієш, які ситуації працюють цікаво, а які — ні. Тому тепер для мене очевидно, що починати створювати рівні потрібно якомога раніше.
Демо та участь у Steam Next Fest
Демо-версія вже готова, і наступного тижня гра братиме участь у Steam Next Fest! Для мене це важливий крок, адже хочеться, щоб якнайбільше людей спробували гру. Випуск демо це як тренування перед повноціним релізом, тому для мене це дуже цікавий та корисний досвід. Наприклад, на днях працював над музикальним рядом гри та сауд-дизайном взагалі. Здаєтсья вийшло більш менш, як я того хотів (переключати музику між рівнями важче, ніж здається!).
Також нещодавно виклав перший трейлер гри:
Для нього написав музику самостійно, для мене це було важливо, адже таким чином він відчувається більш авторським. Тут був корисним досвід занять з фортепіно (після стендапу, вирішив також нарешті зайнатятися і цим також). Раз на тиждень відвудую музикальну школу та намагаюся хоча б кілька разів практикуватися вдома. Дуже круто, що при розробці гри усі навички корисні.
Сподіваюсь для когось ця стаття буде корисною чи інформативною. Не забувайте додавати гру у Steam до бажаного, це дуже допомагає та надихає при розробці.
Сторінка гри в Steam:
store.steampowered.com/...p/2973810/Leo_The_Square
Мій Instagram:
www.instagram.com/timmishakov
Буду радий вашим відгукам)
5 коментарів
Додати коментар Підписатись на коментаріВідписатись від коментарів