Дневник Шарлатана. Моя первая игра на Unity. День 1-5

Всем привет. В связи последними событиями - ВУЗ, в котором я учусь, отправил на каникулы даже во время дистанционного обучения. Появилось много свободного времени и я решил попробовать пощупать геймдев, а конкретно юнити. Сразу скажу, что с программированием я никогда не имел дел и это есть мой первый опыт. Собственного из-за этого и "Дневник Шарлатана".

День 1

Скачал все необходимые штуки для геймдева - движок в виде юнити и визуал студио для написания скриптов.

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

День 2

На второй день я определился с жанром будущей игры - это будет Space Shooter на андроид. Думаю, для начала сойдет, учитываю что геймплей там особо не перегружен сложными деталями. Сначала думал двигать сам корабль по просторам сцены. Однако потом мне показалось, что я слишком все усложняю и сделал корабль статичным (к тому же я не знаю, насколько перемещение по сцене игры нагружает систему). Добавил стартовой площадке физику, благодаря которой после старта игры она "падала" вниз, имитируя взлет корабля персонажа.

Добавил в игру первых противников - ими стали астероиды, которые должны падать вниз, якобы на игрока. Опять же благодаря гайдам из интернета написал код, который заставляет астериоды в случайном месте появляться за пределами камеры и лететь вниз, на игрока. При столкновении коллайдера астероида с коллайдером персонажа происходил "гейм овер". Пришлось прописать код для рестарта.

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

Дневник Шарлатана. Моя первая игра на Unity. День 1-5

День 3

Создал скрипт, который позволяет стрелять. Добавил его кораблю персонажа. Теперь нужно было создать возможность уничтожения астероидов. Для этого был написан код, который добавлял главному герою и астероидам здоровье. А попадание считывалось когда коллайдеры объектов сталкивались друг с другой (в том числе коллайдер пули, которая выпущена игроком).

Необходимо было также добавить счет, который будет увеличиваться по мере уничтожения противников. Добавил Canvas, прикрепил к нему текст со счетом. В скрипте здоровья противников прописал награду за уничтожение.

Дневник Шарлатана. Моя первая игра на Unity. День 1-5

День 4

На четвертый день добавил задний фон, который состоит из монотонного спрайта и текстуры мелких звезд. Заставил этот фон прокручиваться вниз, чтобы имитировать полет.

Создал корабли противников, которые появляются по подобию астероидов, однако имеют большую задержку между собой по времени спауна. Добавил к ним скрипты астероида, к тому же написал код, позволяющий им стрелять.

Захотелось добавить возможность собирания монет. Для этого сначала создал скрипт на основе кода для счета. Добавил все это дело также в Canvas. Чтобы собирать монеты, нужно добавить возможность их выпадания. Написал код, согласно которому перед командой "Destroy" противника просчитывалась возможность выпадания монет. Монеты были двух типов - номиналом в 1 и 3.

Теперь это стало походить на какую-никакую игру.

Дневник Шарлатана. Моя первая игра на Unity. День 1-5

День 5

Пятый день выдался разгрузочным. Сделал так, чтобы корабли противников сначала "падали" в поле зрения камеры сверху, после этого прекращали падение и начинали стрелять, попутно меняя свое местоположение по оси X. Добавил звук выстрелам. Также подправил код в некоторых других аспектах, подстраивая игру под свои представления.

Дневник Шарлатана. Моя первая игра на Unity. День 1-5

Итог

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

Продолжать?
Да
Нет
3535
11 комментариев

Не надо спрашивать других продолжать ли тебе вести личный дневник. Если продолжаешь что-то делать, то отчитывайся перед собой, это помогает. Пиши сюда, если даже десятки минусов будешь хватать, всяко лучше чем очередной "смещной" видосик.

22
Ответить

Комментарий недоступен

6
Ответить

Комментарий недоступен

4
Ответить

Я начал изучать юнити по книжке Бонд Д. - Unity и CS. Геймдев от идеи до реализации. Рассказывается и про основы шарпа и про основы геймдева. И доступные и подробные гайды по созданию нескольких простеньких игр. На данный момент самое годное, что нашел для самообучения. Прими во внимание.

2
Ответить

Хорошая книга, спасибо!

Ответить

Если не хочется возиться с кодом, а хочется накидать прототипов, то поищи библиотеки ассетов с готовыми механиками, только добавляй в редактор, и настраивай как тебе надо. Для примера есть такая вещь https://learn.unity.com/project/unity-playground. Уже включает в себя ассеты для управления персонажем разными способами, примитивные системы инвентаря, и взаимодействий. Думаю есть библиотеки посвежее и по разнообразнее.

1
Ответить

так себе совет, вырастет очередной накидыватель библиотечек ассетиков, в топку их

3
Ответить