Серия «Space Turret Runner»

14

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

Серия Space Turret Runner

Наполнение контента в игре продолжается. Сейчас в игре игроку доступно более 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, после записи файла нужно правильно выполнить сохранение в БД. Вот такие костыли 😔 Надеюсь, это поможет сэкономить кому-то время.

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

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

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

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

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

UPD:

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

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

Space Turret Runner #1

Серия Space Turret Runner

Всем привет!

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Темы

Политика

Теги

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

Сообщества

18+

Теги

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

Сообщества

Игры

Теги

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

Сообщества

Юмор

Теги

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

Сообщества

Отношения

Теги

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

Сообщества

Здоровье

Теги

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

Сообщества

Путешествия

Теги

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

Сообщества

Спорт

Теги

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

Сообщества

Хобби

Теги

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

Сообщества

Сервис

Теги

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

Сообщества

Природа

Теги

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

Сообщества

Бизнес

Теги

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

Сообщества

Транспорт

Теги

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

Сообщества

Общение

Теги

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

Сообщества

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

Теги

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

Сообщества

Наука

Теги

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

Сообщества

IT

Теги

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

Сообщества

Животные

Теги

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

Сообщества

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

Теги

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

Сообщества

Экономика

Теги

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

Сообщества

Кулинария

Теги

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

Сообщества

История

Теги

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

Сообщества