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

Работа заняла дольше, чем я рассчитывал - я делал это в первый раз под веб. Были трудности, но задачу завершил. Результат мне нравится: вышло вполне неплохо.

Теперь в игре
- таблицы рекордов;
- асинхронные заезды без онлайна и лобби;
- фантомы подбираются индивидуально под игрока
- возможность бить чужие результаты.

Рекорд фиксируется, если игрок вошёл в аккаунт; иначе заезд остаётся локальным.

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

Видео геймплея: https://youtu.be/n0qh0eGR9j4?si=-db5mepAJuLNZgRI

Ссылка на Яндекс игры: 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
🧠 Как выбираются фантомы в гонке

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

❗️Важно: для корректной работы требуется авторизоваться в яндексе.

🔹 Сколько фантомов
В заезд попадает 1 или 2 фантома. Количество зависит от того, сколько записей в таблице лидеров и есть ли в ней подходящие результаты.

🔹 От чего отталкивается подбор
Отправная точка - лучшее результат игрока на трассе.
Ищем фантомов в диапазоне от −10 % до +15 % от этого результата.
Из этого окна выбираются подходящие записи и загружаются в заезд.

🔹 Если подходящих фантомов нет
Возможны варианты:
игрок стартует в одиночку
или с собственным фантомом
если игрок лидирует в таблице, в гонку к фантому игрока добавляется фантом второго места

🔹 Если игрок новичок
Когда у игрока ещё нет рекорда:
один фантом берётся из середины таблицы
второй - из нижней части
Цель - гонка выглядела оживлённой, но не превращалась в избиение с первой секунды .

Что улучшу дальше (по вашим отзывам)

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

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

3) Поработаю над визуалом финиша и сделаю его более заметный для глаз - чтобы игрок различал границы трассы.

4) Заметил, что таблица лидеров в меню выбора трасс отображает только топ 5 игроков - исправлю на топ 20.

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

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

#RacingHeartDev #Unity #Game #Drift
🤔2❤1
Думаю над тем, как (и нужно ли) показывать результаты других игроков во время заезда.
Хочу понять, что реально будет полезно, а что перегрузит UI.

Какой вариант вам ближе?

Голосуйте 👇
И если есть свои идеи - пишите в комментариях, почитаю внимательно 👀
Please open Telegram to view this post
VIEW IN TELEGRAM
Завтра закину небольшое обновление с текущего билда 🚗
Заодно хочу спросить мнение по одной механике - интересно, как вы это чувствуете как игроки.
🤔2👌2
This media is not supported in your browser
VIEW IN TELEGRAM
На этой неделе поправил сборку: 🔥🔥🔥

-ребалансул подборщик соперников
-теперь над соперником появляется его имя и аватар;
-закрыл пару ошибок;
-поработал над оптимизацией машин и трасс

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

Тем не менее, мне нужно разобраться точнее: как передать игроку ощущение борьбы, не засоряя изображение лишним.

Ссылка на Яндекс игры: 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
Заметил интересный момент.
В прошлом опросе большинство выбрало не перегружать UI во время гонки, и я реально от этого оттолкнулся при правках билда.

Сейчас в новом опросе решаю, как вообще лучше работать с фантомами чтобы они помогали, а не мешали.

Я ориентируюсь именно на эти голоса при следующих правках, так что если есть мнение - самое время его оставить.
Оставлю голосование открытым ещё на день и дальше буду фиксировать решение.
Media is too big
VIEW IN TELEGRAM
Сегодня пересматривал, как игра обрабатывает столкновения и сброс множителя. По отзывам увидел: порой достаточно чуть-чуть задеть стену, и множитель тут же обнулялся, отчего набор очков казался слишком жёстким. 😈

Переделал механику. Теперь сброс зависит от силы удара и бывает трёх видов.🔥

Слабый удар - теряешь 30 % набранного множителя.
Если было 4×, остаётся 2,8×.

Средний удар - теряешь 60 %.
Из 4× выходит 1,6×.

Сильный удар - всё обнуляется, как прежде.

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

Нравится такой подход?
Ставь 👍, если да.

Пишите мысли и предложения в комментариях, буду рад фидбеку

#RacingHeartDev #Unity #Game #Drift
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥1
Racing Heart inc.
Как лучше чувствовать прогресс соперников на трассе?
Спасибо всем, кто проголосовал и написал в чатик 🙌
Даже при небольшом количестве голосов уже видно направление - дальше буду двигаться от этого решения.
🫡3
Недавно я переписал систему столкновений и сброса множителя. Теперь множитель уменьшается в зависимости от силы удара, а не исчезает сразу.

Я размышляю, стоит ли объяснять, как это работает в коде, или продолжать улучшать игровой процесс . Хочу услышать ваше мнение что Вам будет интереснее. 👀
Please open Telegram to view this post
VIEW IN TELEGRAM
ммм, перламутр 😏
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6
Рабочая неделя началась ! 👊
Скоро выложу пост про разбор сброса множителя.

Спасибо всем кто поделился мнением! 🙌
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3❤2👍1
Обещал подробно объяснить - держу слово. Сейчас система столкновений и сброса множителя устроена так.

Сила удара считается по потере скорости. Берём разницу между скоростью в момент касания и сразу после неё, измеряем в метрах в секунду. Чем больше эта разница, тем выше класс удара. Формула одна: deltaSpeed = скорость до − скорость после. Никакой магии, только школьная физика.

Light: 0 - 5 м/с. Множитель падает на 35 %. Дрифт не прерывается. Лёгкий толчок почти без последствий - ошибся и продолжай.

Medium: 5 - 8 м/с. Множитель уменьшается на 65 %. Текущий дрифт обнуляется. Удар уже чувствуется: прогресс теряется, но не весь.

Strong: 8 м/с и выше. Множитель возвращается к 1, дрифт сброшен. Серьёзная ошибка - всё начинается заново.

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

Столкновения с PropReward (коллектаблы) не считается ударом, штрафа нет. Интерфейс реагирует тряской, сила толчка задаёт интенсивность. Все пороги и проценты хранятся в CollisionImpactService.Settings - баланс правится без изменения кода.

#RacingHeartDev #Unity #Game #Drift
👍5🔥3❤1
Переделал систему настройки.🔼 Количество классов возросло кратно, но появилась понятная структура и разделение обязанностей.

Ранее почти вся логика находилась в одном классе - ColorPurchaseManager.
-обрабатывал покупку
-определял доступные для покупки элементы
-отправлял запросы на активацию цвета
-хранил данные состояния машины

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

Отдельное разочарование вызвали enum - тупо начали мешать из за сравнений
Изначально система не предусматривала расширение, поэтому интегрировать новые типи оказалось сложно.

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

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

Как всегда, продолжаем движение вперёд 🚀
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2👍1😱1
Короткое сообщение о текущем положении дел. 👀

Обновление задерживается из-за оптимизации под мобильные устройства.

Целую неделю разбирал код контроллера и физику: уменьшал число вычислений и добивался лучшей оптимизаций и меньших затрат CPU. К сожалению, к предсказуемому и стабильному результату пока не пришёл.

В один момент становится ясно: обойтись без уступок не выйдет. Я даю себе два дня на последнюю попытку: свести физику и механику дрифта к минимуму и посмотреть, что получится.

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

Работа идёт дальше. Решение важное; как только определюсь, расскажу, что именно выбрал и по какой причине.
Please open Telegram to view this post
VIEW IN TELEGRAM
🫡3👍1🤔1
Пришёл с хорошими новостями 🚀
После доработки контроллера и ряда итераций оптимизации, производительность заметно повысилась. Работы ещё много, но теперь игра запускается на телефоне без сильных зависаний - это заметный прогресс.

Вместе с этим в игру добавил
- новые цвета для кастомизации
- обновлённую систему столкновений
- правки на сценах и в машинах
- обновил камеру

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

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

Прошу поиграть и рассказать, как ощущается процесс - на основе этого буду решать, в какую сторону двигаться дальше.
Работы ещё много, но прогресс есть 💪

Ссылка на Яндекс игры: 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