Racing Heart inc.
31 subscribers
54 photos
12 videos
22 links
Racing Heart - DevLog о разработке инди-игр, где главное - дрифт, скорость и чистое удовольствие от вождения.
Без рекламной шелухи: только рабочий процесс, тесты, провалы, обновления и капля бензиновой романтики.
Download Telegram
Ретроспектива. Оптимизация под мобильные устройства и последствия отложенных решений. ‼️

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

Поначалу полностью настроил систему управления, выровнял поведение при дрифте, параметры машин и трассы. В редакторе всё вело себя корректно. Только после этого я взялся за сборку под мобильные устройства. Результат - стабильные 15 кадров в секунду.

Поиск узкого места занял немного времени. Отладочный скрипт показал, что основная нагрузка приходится на код контроллера и на физические расчёты. Далее начался самый трудоёмкий этап.

Пришлось

- пошагово исследовать, какие функции тратят процессорное время,
- переписывать код,
- запускать тесты,
- анализировать новые метрики,
- повторять цикл заново.

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

Отсроченное решение выросло в серьёзные проблемы и добавило рисков. Хорошо, что удалось вовремя сконцентрироваться на оптимизации и отложить остальные задачи; иначе работа затянулась бы ещё дольше.

О том, почему фокус часто эффективнее мульти-задочности, могу рассказать в следующих заметках.

#RacingHeartDev #Unity #Game #Drift
👍4🔥3
Иногда лидерборд делает для геймплея больше, чем любые новые механики 🚀
История с “Крановой террасой”.

Раньше мой лучший результат на этой трассе составлял 33 000 очков. Казалось, что выше уже не подняться: я выучил всю трассу, знал оптимальные траектории и стабильно показывал один и тот же результат.
Однако в один момент я обнаружил, что кто-то обошёл меня в таблице лидеров.

Я решил не сдаваться. Пересмотрел свои заезды, немного изменил траекторию в поворотах и улучшил результат до 35 500 очков, выйдя из игры с мыслью “ну теперь нормально”.
Но спустя какое-то время я снова зашёл в игру и увидел, что мой новый рекорд тоже побит - теперь лидер набрал 36 800 очков.

С этого момента вопрос стал принципиальным. Я сел за игру и начал использовать максимально рискованные приёмы: входить в повороты на пределе сцепления,давать максимального угла и балансировать на грани отбойника и пробовать разные машины. В результате удалось достичь 38 700 очков.

При этом изначально 33 000 казались абсолютным пределом. Однако благодаря соревнованию в таблице лидеров результат вырос почти на 8000 очков. И я уверен, что это ещё не предел. Я разберусь с задачи и сяду снова давать угла.

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

Присоединяйтесь к соревнованию.
Посмотрим, какие результаты будут дальше 🚗💨

Ссылка на Яндекс игры: https://yandex.ru/games/app/471288?draft=true&lang=ru

#RacingHeartDev #Unity #Game #Drift
Please open Telegram to view this post
VIEW IN TELEGRAM
🏆2👍1
Кстати, этот процесс подкинул мне пару идей. Добавить быстрый старт по клавише и убрать таймер отчета после рестарта гонки. Как вам?
👍3
так то лучше😏
🔥3🎉1
Работа превращается в цепочку неожиданных задач.

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

В multiplayer-сессии объект игрока содержит ровно два поля: avatar и name. Значение name - это не публичный ник из лидерборда, а внутреннее «паспортное» имя учётной записи.

Поля publicName, которое как раз выводится в списках рекордов, в multiplayer API отсутствует.

Получается парадокс: таблица лидеров отдаёт настоящий публичный ник, а в самой игровой сессии - уже нет.

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

Но этого нет - иначе Яндекс Игры не были бы Яндекс Играми.

Собственно способ я нашел, не знаю правда стоит ли. что думаете по этому поводу?

#RacingHeartDev #Unity #Game #Drift
❤2🔥2
Добавил информативности при выборе машины 🚀

#RacingHeartDev #Unity #Game #Drift
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2👍1
Игра постепенно обрастает новым функционалом. За последний период накопился заметный пакет правок, поэтому публикую свежий апдейт. 🔼

Изменения 0.6.21:

Переработан гараж и меню выбора цвета
Добавлены характеристики машин
Появилась базовая монетизация - возможность получить удвоенную награду
Добавлена кнопка авторизации: теперь после входа можно сохранить результат гонки, и рекорд попадёт в таблицу лидеров
Быстрый рестарт на кнопку Del - для тех, кто любит сразу пробовать ещё раз
Можно скрыть фантомы других игроков, если хочется ехать трассу в одиночку
Добавил скейл интерфейса фантома при приближении
Доработал запись и подбор фантомов
Новые рекорды в таблице соответствуют именам фантомов для лучшего понимая соперников
Обновил меню результатов: появилась анимация и визуальная обратная связь при улучшении рекорда
Добавлена новая машина
Плюс правки трасс и фиксы багов

Попробуйте обновление - мне будет приятно.
Хочется увидеть новые рекорды и узнать ваши впечатления 👀🚗💨

Ссылка на Яндекс игры: https://yandex.ru/games/app/471288?draft=true&lang=ru

#RacingHeartDev #Unity #Game #Drift
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4👍2🔥1
Работаю сейчас над трассами. Хочу довести их общее количество до 8. 🚀

Сегодня допилил первую новую трассу. Получилась не самой простой, но за счёт этого довольно интересной по траекториям - есть где поэкспериментировать с заходами и скоростью.

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

Если есть желание покатать новую трассу - ставьте 👍
Обновлю билд и выложу.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥1
приятно наблюдать когда растет конкуренция 😏
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4
Обновил сборку. Небольшой важный апдейт.

Что нового:

- Добавил новую трассу "Арабские дюны"
- Перебалансил машины: Блейзер, Тень, Доминатор - подкрутил характеристики, стало приятнее по управлению и динамике
- Добавил возможность получать машины и цвета бесплатно за просмотр рекламы

Ссылка на Яндекс игры: https://yandex.ru/games/app/471288?draft=true&lang=ru

В ближайшее время продолжу работу над новым контентом 🚀

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

#RacingHeartDev #Unity #Game #Drift
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4
Крайние пару дней готовлю проект к релизу и дошли руки до размера билда. 👇

Читать тут

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

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

#RacingHeartDev #Unity #Game #Drift
👍5
Подлил предфинальный билд перед релизом 🚀

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

Интересует любой фидбек:

-баги и странное поведение
-ощущения от дрифта и управления
-баланс машин и трасс
-общее впечатление от игры

Это финальный шанс что-то поправить перед релизом, поэтому ваши отзывы являются крайне нужными.

Ссылка на Яндекс игры: https://yandex.ru/games/app/471288?draft=true&lang=ru

#RacingHeartDev #Unity #Game #Drift
Отправил игру на модерацию 🚀
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5
Немного расскажу о том, как всё-таки удалось уменьшить размер билда ещё на 14 МБ и кто оказался главным виновником 👀

Как я писал ранее для работы сцен использовались Asset Bundles. Игровые сцены находились вне основного файла и подгружались в память только во время выбора уровня. На первый взгляд решение выглядело отличным: чистый билд становился заметно меньше.

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

Пришлось копать глубже.

И тут быстро всплыла другая проблема: размер самих сцен был огромный. Одна трасса весила почти 45 МБ.
Откуда такой размер понять было несложно. Сложнее - исправить.

Существовало два варианта действий: продолжать настройку Asset Bundles или изменять содержимое самих сцен. Было принято решение исправлять сцены немедленно, так как при увеличении количества трасс работа стала бы более трудоемкой. На полную переделку структуры ушло несколько рабочих дней.

Взял несколько дней на полную переработку.

И знаете, кто оказался виновником? 😄
Тот самый Mesh Combine, который до этого отлично бустанул FPS. Проблема в том, что все объединённые меши сохранялись прямо внутри сцен и раздували их размер в разы.

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

И тут решение оказалось буквально на поверхности:
👉 отказаться от части уникальных мешей и начать переиспользовать общие.

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

Уникальными остались только действительно важные вещи:
сама трасса,
ограждения,
апексы

Всё остальное удалось переиспользовать между сценами.

В результате размер сцен сократился примерно в 7–10 раз, а чистый вес билда удалось довести до 27 МБ без бандлов 🚀

Иронично, что инструмент, который помогал с производительностью, позже стал одной из главных причин раздутого билда. Но именно такие вещи и всплывают только в процессе реальной разработки 🙂
👍2
кстати, есть хорошея новость, игра прошла модерацию 🚀
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3
Media is too big
VIEW IN TELEGRAM
Долгожданный релиз Асфальт и пыль 🚀

Этот момент наконец настал.
После месяцев разработки, тестов, фиксов, оптимизации - игра опубликована.

За это время проект прошёл через многое:

полную переработку физики и дрифта
оптимизацию сцен и контроллера
систему фантомов и лидербордов
кастомизацию машин
десятки фиксов, переделок и экспериментов

И самое главное - всё это время игра развивалась не в вакууме. Очень многое менялось именно благодаря вашему фидбеку, тестам, комментариям и идеям.

Сегодняшний релиз - важный этап.
Точка, после которой игра начинает жить уже не только у меня в редакторе, а вместе с игроками 🏁

Буду очень рад, если попробуете игру, поставите свои рекорды и поделитесь впечатлениями.
И да… готовьтесь к зарубам в лидербордах 🚗💨

https://yandex.ru/games/app/471288?lang=ru
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3❤1
с почином 🍾
Please open Telegram to view this post
VIEW IN TELEGRAM
🍾2🔥1