Серия «Space Turret Runner»

Продолжаем разработку, оптимизацию и осваиваем новые платформы #2

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

С увеличением размера кораблей мы постарались передать чувство управления чем то тяжелым и неповоротливым. А если оно взрывается, то расталкивает всё вокруг! Мы решили использовать возможностями физического движка и добавили физику взрывов 🙂

Ложка дегтя

Новый контент - это хорошо, но еще надо следить и за производительностью. При тестировании новых кораблей были выявлены просадки FPS. Что весьма логично, ведь общее количество полигонов могло достигать 200 тысяч на экране. И с этим что-то нужно было делать. Мы решили упростить модели кораблей, чтобы более простые использовать в игре, а более детализированные - в предварительном просмотре в магазине. Таким образом, нам удалось уменьшить количество полигонов у каждого корабля с 4-8 тысяч до 1-2 тысячи.

Было - Стало.

Это не реклама, но в упрощении моделей очень помогла программа Polygon Cruncher. Она имеет триал-версию на 7 дней, но если программу не закрывать, то можно продлить этот период 😃
Итого, общее количество полигонов удалось снизить с 200 тысяч до 60 тысяч на экране! Это превосходный результат!

Мы также немного поработали над тем, чтобы уменьшить визуальное подёргание камеры и кораблей игрока:
Код движения камеры перенесли в метод LateUpdate, а у кораблей в компоненте Rigidbody поменяли свойство Interpolate с None на Interpolate.

Сравнить и увидеть разницу можно с предыдущим видео

Itch.io

Мы решили опробовать новую платформу и опубликовали веб-версию игры. Для этого нам пришлось немного переделать интерфейс и добавить поддержку клавиатуры.

Альбомная ориентация экрана

Для всех желающих - вот ссылка на веб версию

Конечно, не обошлось без ошибок. После релиза на itch.io выяснилось, что весь прогресс игрока пропадает после публикации новой версии игры.
Дорогие инди-разработчики! Не используйте PlayerPrefs для WebGL. Под капотом оно сделано так, что Вы имеете доступ к PlayerPrefs, пока у Вас постоянная ссылка на сборку. На Itch.io при добавлении новой версии, сборка размещается в новой подпапке, что создает новую область для PlayerPrefs и считать старые значения будет уже невозможно.

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

Продолжаем разработку, оптимизацию и осваиваем новые платформы #2 Инди, Инди игра, Космос, Unity, Шутер, Видео, YouTube, Длиннопост

Чтобы "триггернуть" сохранение в БД, нужно явно вызвать метод сохранения в PlayerPrefs

Главное - удалось исправить ошибки, пусть на это и было потрачено несколько дней.

На этом статья заканчивается. Надеюсь, было интересно! Впереди еще больше контента, пишите комментарии, замечания, отзывы - мы рады всем!
А для тех, кто дочитал до конца - #комплиментдня

Разработка игры и подготовка материала занимает много времени. Но всё это сделано не зря, если в игру поиграл ты - мой самый требовательный игрок

UPD:

Поправили кусок кода сохранения в файл -> pastebin.com

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

Space Turret Runner #1

Всем привет!

Наверняка, многие из вас видели рекламу про чувачков, которые бегут по платформе, подбирают x20 и их становится в 20 раз больше?

Space Turret Runner #1 Мобильные игры, Gamedev, Игры на Android, Шутер, Unity3D, Unity, Инди игра, Гифка, Видео, Без звука, YouTube, Длиннопост

Вот и нам надоела эта реклама. И решили сделать свою похожую игру! Благо механика и геймплей простые. Моделей платформ, зданий и всего остального у нас было в избытке, нужен был только код!

Выбрали тему - космический шутер и понеслось! Добавили пули и кораблики с алгоритмом поведения Boids.

Space Turret Runner #1 Мобильные игры, Gamedev, Игры на Android, Шутер, Unity3D, Unity, Инди игра, Гифка, Видео, Без звука, YouTube, Длиннопост

Самое начало разработки

Space Turret Runner #1 Мобильные игры, Gamedev, Игры на Android, Шутер, Unity3D, Unity, Инди игра, Гифка, Видео, Без звука, YouTube, Длиннопост

Написали специальный шейдер для эффекта появления новых платформ

Развили идею с кораблями.

Сделали основной параметр игры - количество экипажа. И максимум 20 кораблей во флоте игрока. Причем игроку доступны разные типы кораблей. Каждый корабль на своем борту содержит определенное количество экипажа. Есть корабли с 1 пилотом, есть корабли с 2 пилотами и т.д. Планируем добавить разные классы кораблей, от истребителей до крейсеров!

Если игрок, например, набирает 40 человек экипажа, то в его флоте будет 10 кораблей с 1 пилотом, 5 кораблей с 2 пилотами и 5 кораблей с 4 пилотами (т.к. ограничение на 20 кораблей во флоте). Ограничение на корабли сделано специально, т.к. у нас мобильная игра.

Space Turret Runner #1 Мобильные игры, Gamedev, Игры на Android, Шутер, Unity3D, Unity, Инди игра, Гифка, Видео, Без звука, YouTube, Длиннопост

Примеры кораблей в игре

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

Выше пример работы алгоритма. x1, x2, x4 - это кол-во кораблей с 1, 2, 4 пилотами соответственно.

В игру также добавили таблицу рекордов, сделана на основе Unity Leaderboards. Очень легко интегрировать и настраивать, рекомендую 👍

Space Turret Runner #1 Мобильные игры, Gamedev, Игры на Android, Шутер, Unity3D, Unity, Инди игра, Гифка, Видео, Без звука, YouTube, Длиннопост

Unity Leaderboards. Монстрики выбираются рандомно к никнейму

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

Space Turret Runner #1 Мобильные игры, Gamedev, Игры на Android, Шутер, Unity3D, Unity, Инди игра, Гифка, Видео, Без звука, YouTube, Длиннопост

Магазин в игре, красивые анимации с выстрелами включены

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

В этом очень помогли ролики от Emerald Powder, спасибо ему от души, дай бог здоровья 🍺 Ссылка на ролик:

Оптимизация игры - это настоящий творческий полет фантазии!

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

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

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

Несколько скриншотов из игры. Модели корабликов тут уже старые :)))

Вчера мы релизнули игру в Google Play. В ней нет рекламы (пока что) и покупок, полностью бесплатна. Если кто-то захочет посоревноваться - милости просим! Также будем рады новым идеям и предложениям 🙂

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

https://play.google.com/store/apps/details?id=com.CrionGames.SpaceTurretRunner

#комплиментдня за то, что дочитал до конца.

Когда я читаю твои посты - я получаю истинное удовольствие и расслабление!😊🌟

Показать полностью 9 2
Отличная работа, все прочитано!