Первая игра на Unity3d или как я не потратил зря отпуск

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

Идея игры - самолётик летит по свету, уворачиваясь от врагов и собирая монетки. То есть обычный скроллер, только без возможности дать сдачи неприятелям.

С результатом моей работы можно ознакомиться здесь - https://play.google.com/store/apps/details?id=com.MrBeard.Fl... . Если будут желающие - позже сделаю версию под win или linux.


А теперь о самой игре и том, как она работает.

Начал я с поиска подходящей графики для игры. После долгих поисков решил остановиться на Kenney Assets pack - http://kenney.nl/assets .

Далее я перенёс интересующие ассеты в проект юнити и начал создавать игровую сцену. Она состоит из нескольких слоёв - задники, игровые объекты(игрок, враги, монеты), передний план UI. Механика схемы следующая - самолёт игрока висит на одном месте по оси Х, перемещаясь по Y, а все прочие объекты движутся справа налево с разной скоростью(которая зависит от Z координаты), создавая ощущение движения самолёта игрока и разного расстояния для различных фоновых объектов.


Для задников создано два генерящих скрипта(один для объектов типа облачков и башенок с деревьями, другой для нижнего уровня задника(облачка внизу или земля, которые идут сплошным потоком). Третий скрипт передвигает объекты каждый кадр на длину, зависящую от Z. В скриптах задаётся частота создания объектов и наборы объектов для генерации( несколько разных облачков, несколько деревьев и башенок, набор спрайтов для "земли")


Когда задники были готовы и радостно пролетали мимо меня в одном направлении (налево), я взялся за игровой самолёт и его управление. Изначально я сделал управление через две кнопки(вверх, вниз) и был вполне доволен результатом, но когда я сделал первый android билд и попробовал поиграть, то быстро пришёл к выводу, что две кнопки, как их не расположи, неудобно. Если их поставить друг над другом слева, игрок не сможет положить пальцы сразу на обе и ему придётся управлять одним пальцем, постоянно его перемещая, промахиваясь и ругаясь. Если расположить кнопки слева и справа внизу, то придётся отказаться от возможности выпускать вражеские самолёты с нижней позиции, ведь иначе игрок их просто не заметит за своим пальцем и, врезавшись в врага, попомнит меня добрым словом. В итоге я пришёл к управлению, напоминающему Flappy bird и retry. нажимаешь на экран - самолёт летит вверх, отпускаешь - начинает лететь вниз. 

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


Генерация монеток в первой редакции была схожа с генерацией задников, но оказалась безумно скучной. Монетки генерировались на случайной величине Y и очень часто было невозможно достать две монетки подряд. Так что первым делом я переписал скрипт так, чтобы величина Y зависела от высоты предыдущей монетки. Их максимальное расстояние по высоте теперь такое же, какое может преодолеть игрок за то время, пока монетка пролетит расстояние, сгенерированное между этими монетками.

И вот монетки генерируются, их можно собирать, но это всё ещё скучно. Тогда я добавил различные наборы, в которых монетки расставлены определённым фигурным образом. Я не искал информации о том, как это лучше всего делать и придумал для себя два способа

1) Создать шаблоны в каком нибудь формате, где будет описана координатная сетка и расположение монеток относительно неё.

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

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

Время добавить в игру врагов. В наборе спрайтов было 4 модельки самолёта, все разного цвета. Красный я решил использовать для игрока, остальные - для врагов. А для того, чтобы было не слишком скучно игроку и мне, врагов я сделал 3 типа(по количеству моделей у меня)

Зелёные - простой, стремительный. Летит по прямой, зато весьма резво.

Синие - Летят по параболе. Всегда начинают свой путь или с самого низа, или с самого верха.

Жёлтые - меняют свой курс, двигаясь к игроку. Приносят наибольший вклад в дело убиения игроков=)

Генератор случайным образом берёт префаб из набора врагов. Для увеличения сложности с каждым врагом уменьшается время между генерациями.


Это основная часть игры, сам геймплей. На его создание я потратил примерно два дня. Чем же я занимался оставшиеся 12 дней из двухнедельного отпуска? Учился создавать GUI, разбирался с Google developer console и плагинами для unity3d.

Дольше всего я пытался найти музыку для игры. Это, оказывается, безумно сложно сделать. Особенно в том случае, если не знаешь точно, что тебе нужно=). В итоге я нашёл короткую дорожку на http://www.playonloop.com/ . Советую сайт всем желающим)

Какие у меня были изначально планы? Я хотел создать 2 игры за 2 недели отпуска, изучить движок, а точнее его 2d составляющую. Получилось же лишь одна игра, да и та едва влезла в этот график. Жалею ли я о потраченном времени отпуска? Нет, было весело!

И это непередаваемое ощущение - залипать в собственную игру=)


Google play - https://play.google.com/store/apps/details?id=com.MrBeard.Fl...

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества