Время обновления 🚀
За это время я внимательно изучил игру и внёс большой пакет правок
Добавил перевод на другие языки
Переработал звуки, появились щелчки кнопок
Обновил внешний вид игрового меню
Полностью переделал все трассы
Добавил обучение при первой гонке
Выбор трасс стал проще
Добавил новую машину
Изменил способ подсчёта прогресса гонки
Перебалансировал песок - теперь он ведёт себя честнее и интереснее
Апексы и песок больше не сбрасывают множитель
Нашёл и устранил баги, а также внёс множество мелких улучшений, незаметных на первый взгляд
Буду очень благодарен за любую обратную связь 🙏
Она действительно помогает двигаться в нужном направлении.
Ссылка на игру: https://yandex.ru/games/app/471288?draft=true&lang=ru
Дальше планирую подготовить сборку для itch.io и отдельно рассказать, что ожидать в будущем и куда всё это движется. Работа продолжается 💪
#gamedev #unity #drift #arcade #game
За это время я внимательно изучил игру и внёс большой пакет правок
Добавил перевод на другие языки
Переработал звуки, появились щелчки кнопок
Обновил внешний вид игрового меню
Полностью переделал все трассы
Добавил обучение при первой гонке
Выбор трасс стал проще
Добавил новую машину
Изменил способ подсчёта прогресса гонки
Перебалансировал песок - теперь он ведёт себя честнее и интереснее
Апексы и песок больше не сбрасывают множитель
Нашёл и устранил баги, а также внёс множество мелких улучшений, незаметных на первый взгляд
Буду очень благодарен за любую обратную связь 🙏
Она действительно помогает двигаться в нужном направлении.
Ссылка на игру: https://yandex.ru/games/app/471288?draft=true&lang=ru
Дальше планирую подготовить сборку для itch.io и отдельно рассказать, что ожидать в будущем и куда всё это движется. Работа продолжается 💪
#gamedev #unity #drift #arcade #game
🔥7
Хочу немного поделиться планами 🎯 До Нового года осталось совсем немного, поэтому впереди короткий, но очень плотный отрезок работы. Нужно успеть подтянуть игру и улучшить её по всем важным направлениям.
Первое - оптимизация До этого момента я почти не фокусировался на ней, потому что важнее было понять, как ощущается сам геймплей. По отзывам он зашёл - это очень радует и сильно мотивирует. Теперь важно, чтобы игра не только хорошо воспринималась, но и стабильно работала на разных устройствах.
Второе - подготовка билда для itch.io На праздниках меня не будет, но хочется, чтобы игра жила своей жизнью, была доступна и продолжала собирать обратную связь от игроков.
Третье - небольшая кастомизация. Планирую добавить простой тюнинг: возможность менять цвет кузова и дисков. Ничего лишнего, но чтобы машина ощущалась своей.
Времени не так много, но выложусь по максимуму, чтобы всё успеть в срок 💪 P.S. Кстати, по оптимизации уже есть первые успехи - расскажу об этом чуть позже 😉
Первое - оптимизация До этого момента я почти не фокусировался на ней, потому что важнее было понять, как ощущается сам геймплей. По отзывам он зашёл - это очень радует и сильно мотивирует. Теперь важно, чтобы игра не только хорошо воспринималась, но и стабильно работала на разных устройствах.
Второе - подготовка билда для itch.io На праздниках меня не будет, но хочется, чтобы игра жила своей жизнью, была доступна и продолжала собирать обратную связь от игроков.
Третье - небольшая кастомизация. Планирую добавить простой тюнинг: возможность менять цвет кузова и дисков. Ничего лишнего, но чтобы машина ощущалась своей.
Времени не так много, но выложусь по максимуму, чтобы всё успеть в срок 💪 P.S. Кстати, по оптимизации уже есть первые успехи - расскажу об этом чуть позже 😉
🔥5
Завершил первый круг оптимизации ⚙️. Сейчас главной задачей было убрать гору батчей - именно они глушили производительность.
Удалось сжать пик с 3000 до 120 батчей (17 остались у канваса, я его пока не трогал) - в 21 раз меньше 🚀. FPS поднялся с 190 до 320, почти вдвое.
Пока не идеально: вершин всё ещё много и придется еще резать сцену, третья трасса была и остаётся самой тяжёлой по производительность. Но на данном этапе этого достаточно, чтобы идти по плану без нового раунда оптимизации.
Если хочется узнать, как получилось такое ускорение, ставьте палец вверх 👍. В следующих заметках разберу детали и покажу конкретные приёмы.
#gamedev #unity #drift #arcade #game #optimization
Удалось сжать пик с 3000 до 120 батчей (17 остались у канваса, я его пока не трогал) - в 21 раз меньше 🚀. FPS поднялся с 190 до 320, почти вдвое.
Пока не идеально: вершин всё ещё много и придется еще резать сцену, третья трасса была и остаётся самой тяжёлой по производительность. Но на данном этапе этого достаточно, чтобы идти по плану без нового раунда оптимизации.
Если хочется узнать, как получилось такое ускорение, ставьте палец вверх 👍. В следующих заметках разберу детали и покажу конкретные приёмы.
#gamedev #unity #drift #arcade #game #optimization
👍7
Поймал забавный баг
Во время тестов заметил: при ударе машина вдруг отлетает. Скорее отскакивает, подпрыгивает и кувыркается, будто вспомнила аркадные гонки детства
Причина проста: коллайдеры и физика. В обычной гонке выглядит странно, но пару раз сам ловил себя на мысли, что весело и добавляет азарта.
Пока чиню и привожу к нормальному виду, но вопрос остаётся: всё-таки баг… или фича? 😏
RacingHeartDev
#Game
Во время тестов заметил: при ударе машина вдруг отлетает. Скорее отскакивает, подпрыгивает и кувыркается, будто вспомнила аркадные гонки детства
Причина проста: коллайдеры и физика. В обычной гонке выглядит странно, но пару раз сам ловил себя на мысли, что весело и добавляет азарта.
Пока чиню и привожу к нормальному виду, но вопрос остаётся: всё-таки баг… или фича? 😏
RacingHeartDev
#Game
😁4
Завершил оптимизацию сцен
Сегодня закончил последнюю трассу. Скриншоты показывают итог: батчинг сжал до минимума, сцены теперь работают без скачков. Канвас, машина, мелочи ещё ждут очереди, но на этом этапе я намеренно остановился именно на сценах. Следующий этап - другая задача.
По итогу:
батчи: ~2000 -до 90 (примерно x22)
FPS: ~200 до 400 в среднем
Для текущей стадии хватит, чтобы идти дальше и не застрять в бесконечной доработке сцен.
Завтра выложу пост и расскажу, какими способами удалось в разы уменьшить число батчей, как и обещал.
До 31 числа внесу все изменения в билд и поедем дальше по плану
Кратко: ядро стало стабильным и плавным, дальше будет интереснее.
RacingHeartDev
Сегодня закончил последнюю трассу. Скриншоты показывают итог: батчинг сжал до минимума, сцены теперь работают без скачков. Канвас, машина, мелочи ещё ждут очереди, но на этом этапе я намеренно остановился именно на сценах. Следующий этап - другая задача.
По итогу:
батчи: ~2000 -до 90 (примерно x22)
FPS: ~200 до 400 в среднем
Для текущей стадии хватит, чтобы идти дальше и не застрять в бесконечной доработке сцен.
Завтра выложу пост и расскажу, какими способами удалось в разы уменьшить число батчей, как и обещал.
До 31 числа внесу все изменения в билд и поедем дальше по плану
Кратко: ядро стало стабильным и плавным, дальше будет интереснее.
RacingHeartDev
🔥5
Подведу итог по работе со сценами.
Для начала нужно убрать всё, что не требуется.
Поскольку проект собирается под WebGL, каждый лишний объект в сцене превращается в прямую потерю ресурсов. Браузер и без того ограничен, поэтому первый шаг - очистить сцену от всего, что не участвует в игровом процессе.
Когда сцена стала минимальной, я двинулся по пунктам, которые дают наибольший выигрыш
Mesh Combine
Мелкие меши объединил в один большой. Количество draw calls упало сразу, и батчинг заработал заметно лучше. Для эффективной работы я придерживался правила: 1 материал - 1 сабмешь = 1 батч.
Атласы текстур
Все мелкие изображения сложил в один большой атлас. Количество материалов сократилось, переключений шейдера стало меньше, кадры стали выдаваться ровнее.
LOD’ы
Для объектов, которые находятся вдали от камеры, добавил радиус видимости. Рядом видна полная геометрия, вдали - нечего - экономия полигонов ощутима.
Occlusion Culling
Теперь объект не рисуется, если за стеной или за поворотом трассы. На извилистых участках трассы прирост производительности оказался наиболее заметным.
Статика
Часть окружения пометил как статическую которую не попала под комбайн. Движок заранее просчитывает для неё оптимизированные данные, и GPU тратит меньше времени на каждый кадр.
Тени
В заключении отключил все тени. В будущем либо сделаю их упрощенными либо разделю на разный пайплайн графики.
Полученный результат не претендует на идеал, но для WebGL-версии на текущем этапе - вполне достаточный запас производительности. Можно переходить к следующим задачам, не боясь вылезти за лимиты браузера 🚀
#game #optimization
Для начала нужно убрать всё, что не требуется.
Поскольку проект собирается под WebGL, каждый лишний объект в сцене превращается в прямую потерю ресурсов. Браузер и без того ограничен, поэтому первый шаг - очистить сцену от всего, что не участвует в игровом процессе.
Когда сцена стала минимальной, я двинулся по пунктам, которые дают наибольший выигрыш
Mesh Combine
Мелкие меши объединил в один большой. Количество draw calls упало сразу, и батчинг заработал заметно лучше. Для эффективной работы я придерживался правила: 1 материал - 1 сабмешь = 1 батч.
Атласы текстур
Все мелкие изображения сложил в один большой атлас. Количество материалов сократилось, переключений шейдера стало меньше, кадры стали выдаваться ровнее.
LOD’ы
Для объектов, которые находятся вдали от камеры, добавил радиус видимости. Рядом видна полная геометрия, вдали - нечего - экономия полигонов ощутима.
Occlusion Culling
Теперь объект не рисуется, если за стеной или за поворотом трассы. На извилистых участках трассы прирост производительности оказался наиболее заметным.
Статика
Часть окружения пометил как статическую которую не попала под комбайн. Движок заранее просчитывает для неё оптимизированные данные, и GPU тратит меньше времени на каждый кадр.
Тени
В заключении отключил все тени. В будущем либо сделаю их упрощенными либо разделю на разный пайплайн графики.
Полученный результат не претендует на идеал, но для WebGL-версии на текущем этапе - вполне достаточный запас производительности. Можно переходить к следующим задачам, не боясь вылезти за лимиты браузера 🚀
#game #optimization
❤3🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
Обновил сборку на Яндексе - версия 0.4.3 🚗✨
В этом обновлении:
переделал все трассы
оптимизировал игру
исправил ошибки
ввёл ряд мелких, но приятных улучшений
Сборку на itch.io до Нового года, увы, не успеваю выложить. Возможно, это к лучшему: после праздников спокойно займусь тюнингом, открою доступ с мобильных устройств и подгоню интерфейс под разные экраны
Поздравляю всех с наступающим Новым годом!🎄
Отдельное спасибо за отзывы, советы и замечания - они помогают делать игру лучше и двигаться в нужном направлении.
После праздников вернусь к проекту с новыми силами и продолжу обновлять игру - дальше будет еще веселее, но об этом как всегда позже 😉🚀
RacingHeartDev
#Game
В этом обновлении:
переделал все трассы
оптимизировал игру
исправил ошибки
ввёл ряд мелких, но приятных улучшений
Сборку на itch.io до Нового года, увы, не успеваю выложить. Возможно, это к лучшему: после праздников спокойно займусь тюнингом, открою доступ с мобильных устройств и подгоню интерфейс под разные экраны
Поздравляю всех с наступающим Новым годом!🎄
Отдельное спасибо за отзывы, советы и замечания - они помогают делать игру лучше и двигаться в нужном направлении.
После праздников вернусь к проекту с новыми силами и продолжу обновлять игру - дальше будет еще веселее, но об этом как всегда позже 😉🚀
RacingHeartDev
#Game
🎉4🔥1
🔥 Анонс фичи кастомизации машин! 🔥
Пока я на выходных, не так просто перестать думать о работе. Скоро в игре появится кастомизация машин
Стартовая версия будет простая:
-выбор цвета кузова
-цвет дисков
Хочу сделать так, чтобы твоя тачка реально становилась своей, а не просто выглядела как все.
А пока скажи, что добавить первым?
Внизу будет опрос какие цвета хотелось бы увидеть на этой тачке:
Будем делать это вместе 🚀
RacingHeartDev
#RacingHeartDev #Game
Пока я на выходных, не так просто перестать думать о работе. Скоро в игре появится кастомизация машин
Стартовая версия будет простая:
-выбор цвета кузова
-цвет дисков
Хочу сделать так, чтобы твоя тачка реально становилась своей, а не просто выглядела как все.
А пока скажи, что добавить первым?
Внизу будет опрос какие цвета хотелось бы увидеть на этой тачке:
Будем делать это вместе 🚀
RacingHeartDev
#RacingHeartDev #Game
👍4❤1
Media is too big
VIEW IN TELEGRAM
Хочу показать, что получилось за сегодня 👇
Цвета теперь можно выбирать
Сверстал базовый экран и добавил несколько вариантов. Цвет кузова и цвет дисков выбираются по отдельности - так удобнее и вариантов больше.
Сначала хотел дать только готовые наборы, но передумал и сделал полноценную палитру. Получилось по-настоящему живо и приятно. Далее хочу добавить более интересные цвета, возможно даже хамелеон.
Как вам?
Если интересно, в следующем посте расскажу, как устроена система тюнинга. Поставьте 👍 - пойму, что тема нужна.
RacingHeartDev
#Unity #Game #Drift
Цвета теперь можно выбирать
Сверстал базовый экран и добавил несколько вариантов. Цвет кузова и цвет дисков выбираются по отдельности - так удобнее и вариантов больше.
Сначала хотел дать только готовые наборы, но передумал и сделал полноценную палитру. Получилось по-настоящему живо и приятно. Далее хочу добавить более интересные цвета, возможно даже хамелеон.
Как вам?
Если интересно, в следующем посте расскажу, как устроена система тюнинга. Поставьте 👍 - пойму, что тема нужна.
RacingHeartDev
#Unity #Game #Drift
👍10
Делюсь подобранными цветами 🔥
Сначала набросал несколько вариантов и понял: комбинаций уже получается очень много. И это только начало
Сейчас перебираю базовые цвета, но даже так машина выглядит значительно живее и привлекательнее, чем раньше. Далее займусь более необычными и стильными сочетаниями, чтобы в итоге получилась по-настоящему индивидуальная тачка.
#RacingHeartDev #Unity #Game #Drift
Сначала набросал несколько вариантов и понял: комбинаций уже получается очень много. И это только начало
Сейчас перебираю базовые цвета, но даже так машина выглядит значительно живее и привлекательнее, чем раньше. Далее займусь более необычными и стильными сочетаниями, чтобы в итоге получилась по-настоящему индивидуальная тачка.
#RacingHeartDev #Unity #Game #Drift
🔥4
Racing Heart inc.
Хочу показать, что получилось за сегодня 👇 Цвета теперь можно выбирать Сверстал базовый экран и добавил несколько вариантов. Цвет кузова и цвет дисков выбираются по отдельности - так удобнее и вариантов больше. Сначала хотел дать только готовые наборы,…
Задача простая: игрок меняет цвет кузова и дисков. Скажу сразу, я не какой то гуру SOLID, GRASP и тд и тп, но я не люблю излишний код, костыли и размазанные по всему проекту решения. Мне нравится когда все структурно и с заделом на будущее, при это должно стабильно работать. Потому хотелось сделать это не «в лоб через UI», а с запасом на расширение и будущий магазин.
В итоге получилось так
- CarData хранит только выбор игрока - какой цвет кузова и дисков выбран.
- CarColorData содержит ID цвета, цену и сам цвет.
- Конфиг (ScriptableObject) перечисляет все доступные цвета: id, материал, цена.
- ColorTypeEnum - для унификации цветов
- CarCustomizationService не знает ни о UI, ни о деньгах. Он имеет конфиг цветов и накладывает материалы на машину, загружает и сохраняет выбранные цвета.
- CarCustomizationPanel - слой UI, который отображает доступные цвета, обновляет UI и обрабытывает клики кнопок
- СarColorButton - UI управляет ее состоянием и хранит данные о цвете.
- PurchaseService занимается только покупкой цветов и списанием валюты.
- CarCustomizationHandler применяет конечный цвет на машину, реагирует на события изменения и появления машин.
Что это даёт:
логика не размазана по кнопкам
систему легко расширять новыми типами кастомизации
можно без боли добавлять магазин и превью цветов - которые я уже добавил
код остаётся чистым и не превращается в спагетти
Делитесь впечатлениями и советами в чате
#RacingHeartDev #Unity #Game #Drift
В итоге получилось так
- CarData хранит только выбор игрока - какой цвет кузова и дисков выбран.
- CarColorData содержит ID цвета, цену и сам цвет.
- Конфиг (ScriptableObject) перечисляет все доступные цвета: id, материал, цена.
- ColorTypeEnum - для унификации цветов
- CarCustomizationService не знает ни о UI, ни о деньгах. Он имеет конфиг цветов и накладывает материалы на машину, загружает и сохраняет выбранные цвета.
- CarCustomizationPanel - слой UI, который отображает доступные цвета, обновляет UI и обрабытывает клики кнопок
- СarColorButton - UI управляет ее состоянием и хранит данные о цвете.
- PurchaseService занимается только покупкой цветов и списанием валюты.
- CarCustomizationHandler применяет конечный цвет на машину, реагирует на события изменения и появления машин.
Что это даёт:
логика не размазана по кнопкам
систему легко расширять новыми типами кастомизации
можно без боли добавлять магазин и превью цветов - которые я уже добавил
код остаётся чистым и не превращается в спагетти
Делитесь впечатлениями и советами в чате
#RacingHeartDev #Unity #Game #Drift
👍6
Хорошие новости - я выложил билд на itch.io 🚀
Сразу добавил в него обновление.
Что изменилось:
Подчистил несколько сцен
Убрал баги и неровности на трассах
Улучшил оптимизацию на сценах
Обновил туториал
Ввёл кастомизацию машин
Теперь:
Цвет кузова меняется по желанию
Цвет дисков тоже выбираешь сам
Собираешь собственные сочетания
Покупаешь новые цвета
Машины перестали быть одинаковыми болидами и стали ощущаться личными
Любите тачки и дрифт - залетайте
Ссылку на билд: https://racingheart.itch.io/asphalt-and-dust
Видео геймплея: https://youtu.be/n0qh0eGR9j4?si=-db5mepAJuLNZgRI
Ссылка на Яндекс игры: https://yandex.ru/games/app/471288?draft=true&lang=ru
Любая обратная связь поможет делать игру лучше 🙌
#RacingHeartDev #Unity #Game #Drift
Сразу добавил в него обновление.
Что изменилось:
Подчистил несколько сцен
Убрал баги и неровности на трассах
Улучшил оптимизацию на сценах
Обновил туториал
Ввёл кастомизацию машин
Теперь:
Цвет кузова меняется по желанию
Цвет дисков тоже выбираешь сам
Собираешь собственные сочетания
Покупаешь новые цвета
Машины перестали быть одинаковыми болидами и стали ощущаться личными
Любите тачки и дрифт - залетайте
Ссылку на билд: https://racingheart.itch.io/asphalt-and-dust
Видео геймплея: https://youtu.be/n0qh0eGR9j4?si=-db5mepAJuLNZgRI
Ссылка на Яндекс игры: https://yandex.ru/games/app/471288?draft=true&lang=ru
Любая обратная связь поможет делать игру лучше 🙌
#RacingHeartDev #Unity #Game #Drift
❤5👍1