Share

Как я создал свою первую игру на Unity

snake gameplay screenshot

Привет, коллеги-игроделы и все сочувствующие! Эта статья посвящена первой созданной мной игре!
Да, это всего лишь учебный проект. Но! — целостный и доведённый до конца! Её можно запустить, поиграть… и даже получить удовольствие — если до этого, конечно, вы вообще не играли в игры ))

О проекте

Small Snake — это полноценная мини-игра, основанная на механиках классической Змейки, с некоторыми модификациями. Есть геймплей, игровой цикл, UI и HUD элементы, звуки и даже локальная таблица лидеров.

Игровой цикл весьма прост: управляй змейкой, ешь, расти, не врезайся. Условие победы — набрать рекордное количество очков. Каждые 10 съеденных яблок повышается уровень игры, тело змейки обнуляется, а скорость возрастает.

Для того, чтобы сделать геймплей немного динамичнее, я реализовал несколько типов яблок:

  • Красные (обычные) — при съедании прибавляют 10 очков и тригерят спаун следующего яблочка.
  • Золотые — появляются редко, дают сразу +100 очков, но на несколько секунд инвертируют управление (нажимаете вправо, а змейка ползет на лево).
  • Ядовитые — появляются после определённого уровня (по несколько штук за раз), если вы их съедите то у вас отнимется 5 очков. Ядовитки исчезают сами спустя некоторое время.
  • Замедляющие — появляются каждый четвёртый уровень (по 3 штуки); если съесть все три до того, как они исчезнут, то скорость змейки снижается на один уровень.

Все параметры (количество яблок для перехода на новый уровень, частота спавна золотого яблока, время инвертированного управления и тд) вынесены в инспектор Unity, что делает настройку баланса игры быстрой и наглядной, без необходимости лезть в код.

inspector screenshot

Игра реализована в одной сцене: на которой размещены игровое поле и все UI-элементы. Дополнительные экраны — Game Over, Rules, Credits и прочие — оформлены как всплывающие панели. Использовал я только примитивы и стандартные спрайты Unity (за исключение иконок соцсетей) и бесплатные звуки из интернета.

От прототипа — к мини-игре

Изначально я планировал сделать простенький прототип: змейка ползает, ест, очки считаются, пауза работает. Но в процессе разработки начал «развивать идею»:

  • Ввёл разные типы еды с уникальными эффектами;
  • Спроектировал UI и HUD;
  • Добавил звуковые эффекты — удивительно, но это оказалось самым простым;
  • Реализовал локальную таблицу лидеров — моя настоящая гордость;
  • Создал экран с правилами;
  • Сделал экран Создатели с информацией обо мне и ссылками на мои ресурсы, которые меняют цвет при наведении;
  • Даже добавил заставку с логотипом бренда и ярлык на рабочий стол.
credits panel screenshot

В итоге из простого учебного прототипа получилась законченная мини-игра. На её создание ушло около трёх месяцев. Еженедельно я проводил за разработкой примерно по десять часов.

Спасибо, Мудрый Змей

За это время я значительно углубил свои знания и навыки в таких областях разработки игр на Unity, как:

  • Система ввода;
  • Кинематическое движение (то есть движение без воздействия физических сил);
  • Коллизиях;
  • Создании UI/HUD;
  • Событийной архитектуре кода;
  • Паттерне «Синглтон»;
  • Корутинах;
  • Работе со звуком.

А главное — я стал увереннее кодить. В начале проекта я почти полностью полагался на ИИ. К концу — начал спорить с ним: «Постой-ка, зачем такие сложности, если это же решается одной переменной и парой строк кода!»

С какими трудностями я столкнулся

Главная сложность с которой я столкнулся при создании своего первого учебного проекта — это полное отсутствие бэкграунда в программировании и разработке. Я буквально не знал, чего не знаю. Представьте, что вы потеряли память и забыли даже то, что такое кружка и как ею пользоваться. Вот так же и новичкам-разработчикам приходится разбирать с нуля каждый элемент и каждый блок кода.

Для взрослого человека 30+ это психологически непросто. Но выход есть: системный подход и регулярная практика. День за днём, шаг за шагом.

code screenshot

От ученика — ученику

Если вы вдохновились моими словами и решили приступить к созданию своего первого учебного проекта, то позвольте дать вам несколько советов:

  • Не спешите. Ваша цель не в том, чтобы быстрее «доделать» игру, а в том, чтобы научиться чему-то в процессе. Я делал так:
    • Писал запрос ИИ: «Хочу реализовать то-то и то-то — распиши пошагово».
    • Затем выполнял эти шаги. Вручную переписывал код (не копировал!). Проверял, что всё работает.
    • Далее брал непонятные фрагменты и просил нейрика объяснить: «Что это? Как работает? Можно ли реализовать иначе?»
    • И так, крупица за крупицей, ко мне начало приходить понимание того, что я делаю.
  • Обязательно доведите проект до конца. В какой-то момент вам может стать скучно. Или покажется, что вы уже изучили все, что можно было изучить делая этот проект. Но ни в коем случае не бросайте! Завершение проекта — это отдельный навык. О нём поговорим чуть ниже.
  • Не гонитесь за сложностью. Не пытайтесь сразу реализовать какие-то сложные механики и задумки. Обучение — как спорт. Вы же не жмёте 150 килограмм с первого дня в зале? Нет вы, конечно можете, но боюсь, что это плачевно закончится. Приходя в зал вы постепенно наращиваете нагрузку, регулярно и системно тренируясь. Так и в разработке: начинайте с простого. Так вы не перегорите и сможете добраться до вашего следующего проекта, который будет уже более масштабным и технически сложным.
my workplace

Маленькая победа — большие перспективы

Возможно вы спросите зачем я делаю из казалось бы незначительного достижения целое событие? Отвечаю. Потому, что:

  • Это ценнейший опыт. Вы проходите полный цикл разработки — от создания проекта до сборки билда. Каждый этап учит чему-то важному, и только завершив его, вы поймёте, как всё связано и как не потянуть ошибки с самого старта проекта .
  • Это психологический прорыв. Ваш мозг говорит: «Смотри ка, ты всё таки это сделал – довел проект до конца! Разобрался, научился, преодолел сопротивление. Значит идея стать профессиональным разработчиком игр не такая уж сумасбродная и нереальная! И тут же выдаёт порцию мотивации, дофамина и энергии для следующего шага.
  • Это отличный пункт в портфолио. Пусть проект и «простой» — но завершённый, работающий и с продуманной механикой. Для работодателя это весомый аргумент: вы — человек, который доводит дела до конца.

Именно поэтому я настоятельно рекомендую довести ваш первый проект до финала — каким бы «простым» он ни казался. А я, как только смонтирую это видео, допишу статью и оформлю страницу игры на сайте, так сразу приступлю к следующему учебному проекту.

Удачи, Коллеги! — и помните: геймдев после 30 — это не поздно, это только начало.

Если статья оказалась для вас полезной, то нажмите «Поделиться» вверху или низу страницы. Спасибо, что делаете мою работу значимой!

Share