feelnside

feelnside

Пикабушник
поставил 586 плюсов и 17 минусов
отредактировал 0 постов
проголосовал за 0 редактирований
Награды:
5 лет на Пикабу
4396 рейтинг 80 подписчиков 7 подписок 18 постов 7 в горячем

История создания одной новогодней игры

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


Так началась разработка Animal Adventure: Downhill Rush.

История создания одной новогодней игры Gamedev, Разработка игр, Игры, Unity, Инди, Видео, Длиннопост

Сам по себе я инди разработчик. Ранее, в свободное от работы время, занимался изучением Unity (игровой движок), Blender (3д моделирование), Krita (текстурки порисовать и прочее). Изучение началось в далеком 2015 году. С тех пор за моими плечами вышло 3 проекта на мобильные платформы. Текущий, к слову, разрабатывался на фулл тайм. Последние 2,5-3 месяца и вовсе приходилось сидеть по 16-17 часов в сутки (к сожалению, релиз перенести можно всегда, а вот Рождественские и Новогодние праздники ну никак не поддавались переносу, пришлось делать все возможное, чтобы успеть в срок).


И тут мне сразу вспомнился недавний пост Инди Девелопер. Какая же это все-таки правда :D


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

- Specular (в моем случае это блеск от солнца на поверхности снега)

- Rim light effect (свечение объекта по контуру, хорошо можно увидеть на контуре елок, используемых в игре)

- Mixed lightmaps + shadowmask (тут все просто, компоновка динамического + статического освещения)

- Cubemap fog (туман, который тянется из кубомапы, а не просто одиночный цвет)


Собственно и все, по сути просто, найти решение в интернете да воплотить это все в рамках одного шейдера, но на практике оказалось все куда серьезнее, ибо ключевой момент был - оптимизация. Важно было запустить всю эту красоту в 60fps на Android + чтобы это все работало не 1-2 минуты, а минимум 10 минут без падения частоты кадров в силу нагрева устройства. Получилось ли у меня это сделать, сложно сказать, по отзывам вроде пользователи в восторге от оптимизации, думаю можно считать это маленькой победой :)

История создания одной новогодней игры Gamedev, Разработка игр, Игры, Unity, Инди, Видео, Длиннопост

Серьезной проблемой, с которой столкнулся во время разработки, был размер исходного файла. Хотелось получить размер насколько маленький, насколько это возможно. Можно конечно перечислить что-то банальное, вроде сжатие текстур, звуков, компрессия моделей и прочее. Но очень интересным моментом нашел для себя то, что вставленные на сцену Particle System компоненты жрут очень много памяти.


Если немного отойти в сторонку, уровни у меня практически на 100% состоят из заранее подготовленных префабов. Ну кажется, какая тут может быть проблема, ну встроил ты префаб на сцену, скорее всего там будет некий ссылочный тип, много памяти есть не должно. Оказывается это совсем не так. Банальный инстансинг Particle System объектов в начале запуска сцены мог сэкономить порядка одного мегабайта за сцену. Долго не думая, я начал тестировать наиболее прожорливые компоненты, и пришел к выводу, что Audio Source, Particle System, TextMesh Pro UGUI стоит урезать настолько, насколько это возможно. Для сравнения приведу иерархию карточки уровня из игрового меню до и после:

История создания одной новогодней игры Gamedev, Разработка игр, Игры, Unity, Инди, Видео, Длиннопост

Подобные нехитрые манипуляции в итоге позволили избавится от почти 15 мегабайт лишнего веса. Итоговый apk-файл на данный момент находится в районе 69мб. В принципе, довольно приемлемый размер, не слишком большой, чтобы отпугнуть игрока от скачивания.


При разработке открыл для себя очень хороший инструмент: Trello. В нем я создал свой проект, разбил доску по категориям (To Do, Doing, Done и пару других). В рамках каждой категории просто создаешь карточку, описываешь в ней задачу, устанавливаешь эстимейты по времени, добавляешь необходимые детали и потом можно просто перетаскивать карточку из одной категории в другую. Например сегодня нужно работать над уровнем 10, пожалуйста, перетягиваем карточку из To Do в Doing и вперед за работу. Эстимейты помогают не расслабляться, без них можно не заметить, что какая-та задача отнимает слишком много времени, они позволяют строить планы на будущее, ориентироваться о приблизительных сроках завершения работы и многое другое. Не знаю, почему я раньше не использовал подобный инструмент, это останется загадкой :)

История создания одной новогодней игры Gamedev, Разработка игр, Игры, Unity, Инди, Видео, Длиннопост

Безусловно, в любом проекте очень важно иметь контроль версий. Всякое может случиться, сломался компьютер, сгорел винт, нечаянно удалил всю папку с проектом, над которой работал последние 10 лет и многое другое. Я в этом деле использовал Bitbucket в связке с клиентом Sourcetree. Довольно быстрая настройка и можно уже плодить комиты, пушить все это дело в облако и не бояться, что завтра вдруг что-то пойдет не так и будет страх потерять месяцы, а то и годы неуклонной работы.


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

История создания одной новогодней игры Gamedev, Разработка игр, Игры, Unity, Инди, Видео, Длиннопост

Очень хотелось бы отметить важность открытого бета тестирования в Google Play. Его я запустил ещё в конце сентября. Получилось чуть больше двух месяцев игра была на стадии открытого бета теста. За это время удалось набрать чуть более 40 тысяч установок (ну, радости особой это не прибавило, в основном это Tier 3 страны, от которых доход меньше чем 0). Но с другой стороны, я получил просто колоссальное количество отзывов по игре. Было безумно сложно, но в конечном итоге на выходе получилась чуть ли не новая игра. Так много неочевидных вещей были скрыты от замыленного за многие месяцы разработки глаза, что порой не замечал очевидных недоработок и прочих мелочей.


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


Настоятельно рекомендую хотя бы месяц подержать открытый бета тест. Сложно сказать, как получить большое количество игроков. С моей стороны я всего лишь делал посты в соц сетях (twitter, facebook, vk и инстаграм) и оно как-то само пошло. Кто-то добавлял игру в топ на ютюб (совершенно бесплатно, без моего ведома) и вот так получилось набрать за время бета теста установки.


Если у вас очень хорошая игра, то вместе с бета тестом обязательно стоит отправить заявку на Early Access в Google. Я отправлял, игра не прошла :( , но если все-таки получится, это может дать просто огромный прирост установок!


Помимо Early Access можно попытать удачу в Indie Corner. Заявку на неё я подавал в первый день после релиза и о чудо, вроде бы получил положительный ответ. Сказали подписать NDA и ждать дальнейших указаний. Жаль правда вот-вот наступают Рождественские каникулы в USA и видимо в подборку инди проектов я уже попаду после Нового года, а это немного грустно (если я вообще в неё попаду, мало ли что, ещё пока толком не понятно чем это все закончится).

Что имеем в итоге, релиз был 20-го декабря (в этот четверг). Пока потихоньку игра набирает установки, заказывал обзоры на ютюб (взял просто несколько каналов, которые использовал при продвижении своей прошлой игры). Сейчас посмотрю недельку, какой вообще будет выхлоп от всего этого (чувствую, никакой) и скорее всего попробую стучаться к издателям. Все-таки, если не родился с лишними 10-15к$, то запускать игру - это гиблое дело, ничего хорошего из этого не выйдет.


Как-то так, всех с наступающими новогодними праздниками :)

Показать полностью 5 1

Опасный белый Тигр :)

Опасный белый Тигр :)

Сцены в полигональном стиле для одного мобильного проекта

Давно не делился сценами в полигональном стиле. За последнее время удалось создать достаточно большое количество новых с тем или иным освещением. Собирается все в Unity3d, модели создаются в Blender.


Небольшой городок под утренним рассветом:

Сцены в полигональном стиле для одного мобильного проекта Low poly, Gamedev, Unity3D, Полигональная графика, Level design, Дизайн уровней, Разработка игр, Длиннопост

Та же сцена, но под другим ракурсом :)

Сцены в полигональном стиле для одного мобильного проекта Low poly, Gamedev, Unity3D, Полигональная графика, Level design, Дизайн уровней, Разработка игр, Длиннопост

Ночная сцена с замерзшим судном:

Сцены в полигональном стиле для одного мобильного проекта Low poly, Gamedev, Unity3D, Полигональная графика, Level design, Дизайн уровней, Разработка игр, Длиннопост

Лунное отражение на льду :)

Сцены в полигональном стиле для одного мобильного проекта Low poly, Gamedev, Unity3D, Полигональная графика, Level design, Дизайн уровней, Разработка игр, Длиннопост

Немного индустриальных объектов:

Сцены в полигональном стиле для одного мобильного проекта Low poly, Gamedev, Unity3D, Полигональная графика, Level design, Дизайн уровней, Разработка игр, Длиннопост

Как-то так :)

Показать полностью 5

Небольшая история разработки новой мобильной игры

Приветствую!


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


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

Небольшая история разработки новой мобильной игры Gamedev, Unity3D, Lowpolyart, Low poly, Gameplay, Android, iOS, Indiedev, Видео, Длиннопост

Как уже упомянул ранее, игру начал разрабатывать в начале этого года, если быть точным, 15 января. Возникла идея (ну как возникла, давно уже её прокручивал в голове) создать что-то новогоднее, зимнее, с ослепляющим солнцем, конечно же в полигональной стилистике, уж больно мне сие дело засело в душу :) . Глянул на просторы плей маркета, из чего-то подобного удалось найти только Sledge, все остальные игры либо в 2д, либо таргет на детей, либо чего-то не хватает (к слову, буду рад, если вы вдруг знаете нечто похожее, было бы здорово посмотреть на другие варианты подобных игр, сравнить, глянуть что нужно улучшить и так далее).


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


В качестве примера динамических объектов, очень забавно показывает сие дело небольшой игровой ролик ниже, в частности железнодорожные переезды:

Ролик можно глянуть до конца, но не переживать, олененок Бемби в порядке, никакой крови и кишек в игре нет :) любой проигрыш заканчивается падением с санок, ничего кровавого или ужасного :)


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

Небольшая история разработки новой мобильной игры Gamedev, Unity3D, Lowpolyart, Low poly, Gameplay, Android, iOS, Indiedev, Видео, Длиннопост

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


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


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

В целом, в игре присутствует множество скинов санок и игровых персонажей. Тут и зайцы, и волки, и лисички, и тигры, в общем, много диких животных :)


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


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

Показать полностью 2 2

Немного утреннего рассвета в полигональном стиле

Экспериментирую с различным освещением. Вроде бы теплый утренний свет выглядит сносно

Немного утреннего рассвета в полигональном стиле Полигональная графика, Low poly, Unity3D, Gamedev

Небольшой ролик с ночной полигональной сценой

Фух, надеюсь данная сцена не успела надоесть. Наконец получилось более менее завершить работу над ней (по крайней мере она уже готова для использования в мобильном проекте). Подправил луну! Теперь она смотрит вниз, а не в сторону, как будто день на дворе :)


Приятного просмотра любители полигональной графики ну и все остальные, конечно же!

Где-то далеко зимой

Привет! Очень хочется поделиться скриншотом моей текущей работы в 3д. Это маленький кусочек большой зимней сцены, выполненной в полигональном стиле. Буду рад любым вашим мыслям, впечатлениям, пожеланиям :)

Где-то далеко зимой Low poly, Полигональная графика, Gamedev

Яркая ночь под светом луны

Очень сильно понравились краски, решил поделиться с вами данным кусочком ночной сцены :)

Яркая ночь под светом луны Low poly, Lowpolyart, Gamedev, Indiedev, Полигональная графика, Луна
Отличная работа, все прочитано!