Ruby

Я продолжила подготовку к сдаче экзамена The Unity Certified User: Programmer и для закрепления полученных знаний на практике выбрала проект Ruby’s Adventure: 2D Beginner (предыстория тут), где главная героиня Руби чинила роботов.

В итоге, после завершения проекта, у меня были навыки работы с ассетами 2D, анимацией и tilemaps, а также я успела позаниматься творчеством (создать из ассетов проекта небольшую сцену, при этом в самом учебном проекте готовых сцен не было). Но все этого и близко не было похоже на законченную игру, даже мини-игру. Чтобы привести проект из простой сцены, где игрок просто бросал шестеренки в роботов и тем самым их чинил, в мини игру — пришлось добавить много нового. Коротко об этом и скриншоты получившейся игры ниже.

От мини-сцены до мини-игры

Работа с Audio (Audio Mixer и новые звуки)

Чтобы превратить одну мини-сцену в мини-игру, я научилась работать с Audio Mixer и добавила много аудиоклипов. Были отрегулированы зкуки игрока и фоновая музыка, которая могла меняться в зависимости от того, где игрок находится (в меню или например, под действием грибов).

Новый враг — грибы

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

Экран мигает и меняет оттенки пока игрок под действием грибов

Новые элементы интерфейса

Было добавлено отображение количества шестеренок, которые есть у Ruby, добавлена ​​панель с отображением количества сломанных роботов и телеграфных вышек, а также таймер.

Добавлен таймер, количество шестеренок и количество сломанных роботов и телеграфных вышек.

Новые экраны

Был добавлен экран настроек, где вы можете редактировать настройки громкости и экрана.

Экран настроек

Был добавлен экран с главным меню, экран паузы с возможностью приостановить игру, а также добавлены экраны на случай поражения и победы.

Главное меню
Экран паузы
Экран в случае проигрыша
А такой экран увидит игрок в случае победы

Добавление предыстории в игру

В учебном проекте предусматривалось только, что Руби должна починить роботов, я добавила к этому предысторию: как будто молния ударила в одну из телеграфных башен (около дома), и Джамби (лягушка) попросил Руби помочь отремонтировать всех роботов и телеграфные башни, вышедшие из строя из-за неисправности той, в которую ударила молния.

В отличие от других телеграфных башен — в эту попала молния и она визуально отличается от других телеграфных башен

Эта предыстория отразилась на игре: был добавлен мини-диалог с лягушкой (правда, она только слушает, она не любит много говорить), которая рассказывает что, чтобы игрок выиграл ему нужно починить всех роботов и все телеграфные башни, расположенные по всей карте, за определенное время.

Диалог
Сломанные телеграфные башни искрятся, пока игрок их не починит

На починку башни и робота нужно разное количество шестеренок. Их можно найти в ящиках или в мешках. Причем ящики с шестеренками отличаются по цвету от ящиков у телеграфной башни и обычных ящиков, которые без шестеренок.

Фиолетовая стрелка на картинке указывает на ящик с шестеренками

Если говорить о программировании, то я использовала паттерн Singleton и Event System.

Мне понравилось творить

Мне особенно понравилось, как, используя смену цветов и размеров из нескольких ассетов, можно было создавать на карте различные места со своими особенностями (где-то все растения были в синих оттенках, где-то в красных и розовых и т. д.). Примеры можно посмотреть на скриншотах внизу статьи.

Поиграть и оцените игру можно здесь: Ruby game.

Некоторые скриншоты игрового процесса:

Контакты