У меня хорошая новость: после короткого перерыва в игру добавлен асинхронный мультиплеер. 🔥 🔥 🔥
Работа заняла дольше, чем я рассчитывал - я делал это в первый раз под веб. Были трудности, но задачу завершил. Результат мне нравится: вышло вполне неплохо.
Теперь в игре
- таблицы рекордов;
- асинхронные заезды без онлайна и лобби;
- фантомы подбираются индивидуально под игрока
- возможность бить чужие результаты.
Рекорд фиксируется, если игрок вошёл в аккаунт; иначе заезд остаётся локальным.
Сейчас хочу проверить систему и заполнить таблицы. Присылайте замечания: что понравилось, что вызвало трудности, что нужно доработать.
Видео геймплея: https://youtu.be/n0qh0eGR9j4?si=-db5mepAJuLNZgRI
Ссылка на Яндекс игры: https://yandex.ru/games/app/471288?draft=true&lang=ru
Любая обратная связь поможет делать игру лучше 🙌
#RacingHeartDev #Unity #Game #Drift
Работа заняла дольше, чем я рассчитывал - я делал это в первый раз под веб. Были трудности, но задачу завершил. Результат мне нравится: вышло вполне неплохо.
Теперь в игре
- таблицы рекордов;
- асинхронные заезды без онлайна и лобби;
- фантомы подбираются индивидуально под игрока
- возможность бить чужие результаты.
Рекорд фиксируется, если игрок вошёл в аккаунт; иначе заезд остаётся локальным.
Сейчас хочу проверить систему и заполнить таблицы. Присылайте замечания: что понравилось, что вызвало трудности, что нужно доработать.
Видео геймплея: 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
Объясню, как сейчас подбираются соперники в асинхронных заездах. Система ещё не финальная: я слежу за её работой в реальных гонках и буду её улучшать.
❗️Важно: для корректной работы требуется авторизоваться в яндексе.
🔹 Сколько фантомов
В заезд попадает 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
Отображение лидербордов прямо во время гонки - нужно или лишнее?
Anonymous Poll
22%
Дублировать результаты. Показывать свой текущий заезд + топ 3–5 рекордов для ориентира.
33%
Очки фантомов в реальном времени. Отображать очки фантомов динамически (обновлять три раза за гонку)
44%
Оставить как есть - не перегружать UI дублирующий информацией
Думаю над тем, как (и нужно ли) показывать результаты других игроков во время заезда.
Хочу понять, что реально будет полезно, а что перегрузит UI.
Какой вариант вам ближе?
Голосуйте 👇
И если есть свои идеи - пишите в комментариях, почитаю внимательно👀
Хочу понять, что реально будет полезно, а что перегрузит 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
-ребалансул подборщик соперников
-теперь над соперником появляется его имя и аватар;
-закрыл пару ошибок;
-поработал над оптимизацией машин и трасс
В предыдущем опросе большинство проголосовало за минимальный интерфейс во время заезда - без таблиц и без захламления экрана. Это замечание я записал и буду учитывать.
Тем не менее, мне нужно разобраться точнее: как передать игроку ощущение борьбы, не засоряя изображение лишним.
Ссылка на Яндекс игры: 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
Как лучше чувствовать прогресс соперников на трассе?
Anonymous Poll
50%
Нечего больше не показывать, оставить как есть
13%
Только очки соперников
38%
Отображать ник и аватар соперников
0%
Хочу ездить без фантомов(добавить возможность их отключения)
0%
Отображать просто фантом без ника и аватара
0%
Напишу свой вариант в комментариях
Заметил интересный момент.
В прошлом опросе большинство выбрало не перегружать UI во время гонки, и я реально от этого оттолкнулся при правках билда.
Сейчас в новом опросе решаю, как вообще лучше работать с фантомами чтобы они помогали, а не мешали.
Я ориентируюсь именно на эти голоса при следующих правках, так что если есть мнение - самое время его оставить.
В прошлом опросе большинство выбрало не перегружать UI во время гонки, и я реально от этого оттолкнулся при правках билда.
Сейчас в новом опросе решаю, как вообще лучше работать с фантомами чтобы они помогали, а не мешали.
Я ориентируюсь именно на эти голоса при следующих правках, так что если есть мнение - самое время его оставить.
Оставлю голосование открытым ещё на день и дальше буду фиксировать решение.
Media is too big
VIEW IN TELEGRAM
Сегодня пересматривал, как игра обрабатывает столкновения и сброс множителя. По отзывам увидел: порой достаточно чуть-чуть задеть стену, и множитель тут же обнулялся, отчего набор очков казался слишком жёстким. 😈
Переделал механику. Теперь сброс зависит от силы удара и бывает трёх видов.🔥
Слабый удар - теряешь 30 % набранного множителя.
Если было 4×, остаётся 2,8×.
Средний удар - теряешь 60 %.
Из 4× выходит 1,6×.
Сильный удар - всё обнуляется, как прежде.
Стимул ездить аккуратно сохраняется, но мелкие задевания больше не роняют прогресс полностью.
Дополнительно сделал вибрацию шкалы множителя при столкновении: чем сильнее удар, тем заметнее тряска - по ней сразу понятно, что случилось.
Нравится такой подход?
Ставь 👍, если да.
Пишите мысли и предложения в комментариях, буду рад фидбеку
#RacingHeartDev #Unity #Game #Drift
Переделал механику. Теперь сброс зависит от силы удара и бывает трёх видов.
Слабый удар - теряешь 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
Сила удара считается по потере скорости. Берём разницу между скоростью в момент касания и сразу после неё, измеряем в метрах в секунду. Чем больше эта разница, тем выше класс удара. Формула одна: deltaSpeed = скорость до − скорость после. Никакой магии, только школьная физика.
Light: 0 - 5 м/с. Множитель падает на 35 %. Дрифт не прерывается. Лёгкий толчок почти без последствий - ошибся и продолжай.
Medium: 5 - 8 м/с. Множитель уменьшается на 65 %. Текущий дрифт обнуляется. Удар уже чувствуется: прогресс теряется, но не весь.
Strong: 8 м/с и выше. Множитель возвращается к 1, дрифт сброшен. Серьёзная ошибка - всё начинается заново.
Мелкие задевания прощаются. Чем тяжелее ошибка, тем строже штраф. Цель по-прежнему - чистое вождение, но без лишнего раздражения. Система не смотрит на стабильность дрифта: если фиксируется удар, он засчитывается.
Столкновения с PropReward (коллектаблы) не считается ударом, штрафа нет. Интерфейс реагирует тряской, сила толчка задаёт интенсивность. Все пороги и проценты хранятся в CollisionImpactService.Settings - баланс правится без изменения кода.
#RacingHeartDev #Unity #Game #Drift
👍5🔥3❤1
Переделал систему настройки.🔼 Количество классов возросло кратно, но появилась понятная структура и разделение обязанностей.
Ранее почти вся логика находилась в одном классе - ColorPurchaseManager.
-обрабатывал покупку
-определял доступные для покупки элементы
-отправлял запросы на активацию цвета
-хранил данные состояния машины
Пока существовал один тип цветов - система функционировала. После добавления нового типа класс стал быстро увеличиваться: появились проверки, условия, временные решения. В определённый момент стало очевидно, что он стал слишком большим.
Отдельное разочарование вызвали enum - тупо начали мешать из за сравнений
Изначально система не предусматривала расширение, поэтому интегрировать новые типи оказалось сложно.
Пришлось приостановить разработку и потратить пару дней на приведение системы в порядок: распределить обязанности, упростить логику и сделать систему более гибкой.
Да, остались области для рефакторинга, но на данном этапе я сознательно останавливаюсь. Для текущих задач этого достаточно - важнее продолжать реализовывать функции, а не бесконечно улучшать архитектуру.
Как всегда, продолжаем движение вперёд🚀
Ранее почти вся логика находилась в одном классе - ColorPurchaseManager.
-обрабатывал покупку
-определял доступные для покупки элементы
-отправлял запросы на активацию цвета
-хранил данные состояния машины
Пока существовал один тип цветов - система функционировала. После добавления нового типа класс стал быстро увеличиваться: появились проверки, условия, временные решения. В определённый момент стало очевидно, что он стал слишком большим.
Отдельное разочарование вызвали enum - тупо начали мешать из за сравнений
Изначально система не предусматривала расширение, поэтому интегрировать новые типи оказалось сложно.
Пришлось приостановить разработку и потратить пару дней на приведение системы в порядок: распределить обязанности, упростить логику и сделать систему более гибкой.
Да, остались области для рефакторинга, но на данном этапе я сознательно останавливаюсь. Для текущих задач этого достаточно - важнее продолжать реализовывать функции, а не бесконечно улучшать архитектуру.
Как всегда, продолжаем движение вперёд
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2👍1😱1
Короткое сообщение о текущем положении дел. 👀
Обновление задерживается из-за оптимизации под мобильные устройства.
Целую неделю разбирал код контроллера и физику: уменьшал число вычислений и добивался лучшей оптимизаций и меньших затрат CPU. К сожалению, к предсказуемому и стабильному результату пока не пришёл.
В один момент становится ясно: обойтись без уступок не выйдет. Я даю себе два дня на последнюю попытку: свести физику и механику дрифта к минимуму и посмотреть, что получится.
Если итог окажется неприемлемым, придётся отказаться от поддержки телефонов, чтобы не портить основной процесс игры и тот самый дрифт, который вам уже понравился либо изменить поведение машины.
Работа идёт дальше. Решение важное; как только определюсь, расскажу, что именно выбрал и по какой причине.
Обновление задерживается из-за оптимизации под мобильные устройства.
Целую неделю разбирал код контроллера и физику: уменьшал число вычислений и добивался лучшей оптимизаций и меньших затрат 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
После доработки контроллера и ряда итераций оптимизации, производительность заметно повысилась. Работы ещё много, но теперь игра запускается на телефоне без сильных зависаний - это заметный прогресс.
Вместе с этим в игру добавил
- новые цвета для кастомизации
- обновлённую систему столкновений
- правки на сценах и в машинах
- обновил камеру
Часть функций, которые планировал реализовать в этом спринте, не успел реализовать - проблемы с производительностью заняли много времени. Это не отмена, а перенос, всё реализую позже.
Дрифт немного изменился: ради повышения производительности пришлось упростить логику и убрать некоторые функции. Это не финальная версия, поэтому сейчас особенно важно ваше мнение.
Прошу поиграть и рассказать, как ощущается процесс - на основе этого буду решать, в какую сторону двигаться дальше.
Работы ещё много, но прогресс есть 💪
Ссылка на Яндекс игры: 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