Последние три дня почти целиком ушли на машину. Причём не только на физику — переделал всю логику того, как игрок понимает её состояние, ищет неисправности и занимается ремонтом.
Главное изменение — убрал «магическую диагностику» с готовыми процентами и названиями поломок. Теперь всё работает по нормальной цепочке:
Под это полностью переделал автомобильное меню. Теперь в нём четыре раздела: «Состояние», «Осмотр», «Работы» и «История». Игрок постепенно изучает машину, а техническая информация открывается через собственный опыт, документы и разговоры с NPC.
Заодно сильно расширилась сама система поломок: аккумулятор, патрубки, генератор и ремень, масло, фильтр, свечи, тормоза, топливо, подвеска, колёса, сцепление и коробка. Для осмотра появились реальные зоны на самой машине, а сложный ремонт теперь требует нормального гаража.
Большая работа была и с самим ВАЗ-2101. Старую модель заменил новой составной — 508 мешей, 545 узлов и 25 подвижных элементов. Подключены двери, капот, багажник, колёса, руль, педали, КПП, ручник, кнопки и приборные стрелки.
Параллельно появились полноценные звуки и визуальные признаки неисправностей: разные слои двигателя, пар при перегреве, белый/чёрный/сизый выхлоп, течи масла, бензина и охлаждайки, лужи, искры, огонь, дым пробуксовки и сажа.
В конце всё это связал с сохранениями и прогнал тестами. Машина снова нормально стоит на четырёх колёсах, работает подвеска и коробка, двигатель корректно реагирует на неправильную передачу, а в тесте машина разогналась до 119,6 км/ч.
На скриншотах — текущее автомобильное меню. Теперь это уже не экран с характеристиками, а часть самой игровой механики.
Отдельно запишу видео с визуальными эффектами , звуками и новыми механиками позже.
Теперь в игре нормальное главное меню, запуск, загрузка, сохранение, пауза. Инвентарь показывает живые предметы игрока — не тестовые болванки, а то что реально лежит в рюкзаке. Количество, вес, состояние — всё подтягивается само.
Задания обновляются по мере прохождения, а не висят списком ради красоты. Документы и записки открываются из игровых данных — нашёл бумажку в мире, она появилась в меню. Картотека собирает персонажей и улики.
Отдельная история — меню машины. Сделал вкладки по системам: двигатель, кузов, электрика, охлаждение, топливная, подвеска, тормоза. У каждой детали своё состояние, поломки, признаки неисправности и что с ней можно сделать. Где-то долить, где-то подкрутить, где-то снять и заменить. Серьёзный ремонт типа переборки двигателя на обочине не провернуть — для такого позже понадобится гараж.
Повреждения передаются напрямую из систем машины в меню. Что-то сдохло — сразу видно где и почему. Всё логируется в журнал событий.
UI готов почти полностью. Связи работают, кнопки жмутся, данные живые. Но когда собрал все экраны вместе, понял что информации местами перебор — особенно в разделе машины. Буду упрощать.
По ремонту — хочется не кнопку «починить», а подход как в My Summer Car: самому крутить гайки, снимать детали по очереди, ставить в пазы. Это сложнее и я пока прикидываю с чего начать, чтобы не закопаться. Но кнопка «починить» — не для этой игры.
На скриншотах живой интерфейс, всё работает прямо в Godot. Не макеты.
В моей игре есть закольцованная трасса, туман, странные местные и машина, которая может заглохнуть в самый неподходящий момент.
Но настоящий ужас начался только сейчас.
Мне нужно собрать в одну понятную систему:
— рюкзак; — карту; — задания; — документы; — базу знаний; — доску расследования с уликами и связями.
И сделать это так, чтобы игрок искал тайны Трассы 41, а не кнопку «Назад».
Сегодня вечером покажу первый вариант интерфейса.
А пока интересно: в какой игре, по-вашему, было самое удобное и красивое меню? И какое меню вы вспоминаете с ненавистью?
Я пока ориентируюсь на Deathloop, Dishonored, S.T.A.L.K.E.R., Atomic Heart и современный Wolfenstein — но переделываю всё под более мрачную атмосферу «Трассы 41».
Короче, вшил загрузочный ролик в игру. Теперь при запуске сначала идёт видео, а потом уже появляется главное меню. Выглядит бодро, прям как в нормальных играх.
Само меню тоже полностью переделал. Цвета, шрифты, общий тон — всё причесал. Теперь глаз радуется, а не как раньше.
Прошёлся по всем кнопкам — всё работает. Настройки сохраняются и сразу меняют картинку в игре. Даже раздел с авторами заценил, приятно видеть себя в титрах.
В следующем посте покажу, что стало с инвентарём, базой знаний, персонажами, доской расследования и картой. Там уже всё работает, остались мелкие правки. Иконки проработаны, выглядят классно.
Видео прикрепил, гляньте как теперь игра запускается.
Накидайте плюсиков, если не жалко — пусть пост повыше заберётся.
Короче, делаю сейчас первый акт. Заправка, осмотр машины, всякие интерактивные штуки — потихоньку собираю сцену.
Заодно решил загрузочное видео накидать. Я в монтаже ноль, в режиссуре тем более. Я вообще код пишу, а не кино снимаю. Поэтому тупо закинул промт в нейросеть и вот что вышло.
Получилось в целом неплохо. Есть косяки, но не критично. Настроение передаёт, а это главное.
Не пинайте сильно за ИИ, я просто программист, который пытается хоть как-то показать, что у него в голове.
Видео прикрепил. В профиле ещё посты по разработке, если интересно глянуть.
Накидайте плюсиков, если не жалко — чтобы пост поднять.
Сижу в Панаме по работе. Жара, влажность, пальмы. Океан в двух шагах. А я вечером открываю ноут и пилю свою игру.
Без продюсеров, дедлайнов и вот этого всего. Просто как сам вижу.
Главная героиня — копейка. Ржавая, старая, но живая. В юности у нас была шестёрка — до сих пор помню, как она бензином пахнет и остывает зимой за десять минут. Видимо, поэтому и тянет.
Вроде вокруг экзотика, а я гайки советские кручу. И кайфую.
Кто тоже в свободное время что-то пилит, просто потому что хочется? Заглядывайте в профиль, там процесс потихоньку идёт.
Последние два дня почти полностью занимался машиной. До этого она уже умела ездить, переключать передачи и включать свет, но по ощущениям оставалась скорее движущейся моделью, чем автомобилем.
Машина слишком медленно разгонялась, теряла скорость от небольшого движения рулём, сильно кренилась и раскачивалась. Подвеска работала странно: кузов иногда опускался до коллайдера, из-за чего появлялся звук удара даже на ровной дороге. Нагрузка между колёсами почти не чувствовалась, а сама машина напоминала неваляшку.
За эти два дня я в основном переделывал физику и внутреннее устройство автомобиля.
Теперь у каждого колеса своя стойка с отдельным расчётом нагрузки. Передняя и задняя оси получили разную жёсткость пружин и демпфирование. Добавил стабилизаторы поперечной устойчивости, нормальные отбойники подвески и перенастроил центр тяжести.
В повороте нагрузка действительно переходит с одной стороны машины на другую. При этом все четыре колеса продолжают держать дорогу, а кузов не заваливается набок. В тестовом умеренном повороте максимальный крен получился около двух градусов.
Заодно уменьшил чрезмерное сопротивление качению. Раньше машина тяжело набирала скорость, а на третьей и четвёртой передачах почти переставала разгоняться. Сейчас короткая демонстрация доходит примерно до 68 км/ч, а в полном тестовом заезде машина набрала 119,6 км/ч.
С рулением ещё предстоит работать на разных скоростях и покрытиях, но небольшой поворот больше не отнимает половину скорости.
Отдельно переделал двигатель и коробку передач.
Сейчас двигатель можно запустить только на нейтральной передаче. Если остановиться на четвёртой и не перейти на пониженную, мотор заглохнет. Первая, вторая, третья и четвёртая передачи имеют собственные передаточные числа и ограничения скорости.
Сцепление пока автоматизировано. Это временное решение: игрок сам переключает передачи, а система помогает тронуться без отдельной педали на клавиатуре.
В салоне теперь двигаются органы управления:
руль поворачивается вместе с передними колёсами (пока странная ось вращения, никак победить не могу вращение овалом);
рычаг коробки занимает отдельное положение для каждой передачи;
ручник поднимается и опускается;
двигаются педали;
рычаг поворотников отклоняется в нужную сторону;
кнопки ближнего и дальнего света нажимаются и подсвечиваются;
приборы показывают скорость, обороты, топливо и температуру.
Для демонстрации коробки и ручника сделал отдельный крупный ракурс на центральный тоннель. В обычной игре камера остаётся на месте водителя.
Третья передача.
Также настроил внешний свет.
У машины работают ближний и дальний свет, стоп-сигналы, задний ход, отдельные поворотники и аварийная сигнализация. Фары получили видимые светящиеся элементы — теперь свет не появляется из пустоты перед машиной.
Пока источники света выведены за кузов для разработки.
Самая большая часть работы пока почти не видна на записи. Внутри машины появилась система технического состояния.
Сейчас отдельно рассчитываются:
количество и качество бензина;
состояние топливного насоса и фильтра;
уровень антифриза;
радиатор, термостат и водяная помпа;
температура двигателя и перегрев;
уровень, давление и ресурс масла;
компрессия двигателя;
свечи и воздушный фильтр;
прокладка головки блока;
цепь ГРМ — у ВАЗ-2101 именно цепь;
аккумулятор, генератор, ремень и проводка;
сцепление, синхронизаторы, коробка и дифференциал;
тормозная жидкость, магистрали и колодки;
состояние каждой стойки, шины и геометрии колёс.
Например, вот реальные стартовые данные конкретной машины: Топливо: 14,0 из 39 л
Качество топлива: 99%
Топливный насос: 100%
Загрязнение фильтра: 4%
Антифриз: 8,7 из 9,6 л
Температура: 20°C
Радиатор: 100%
Термостат: 100%
Водяная помпа: 100%
Масло: 3,35 из 3,75 л
Качество масла: 88%
Масляный насос: 100%
Компрессия: 99%
Цепь ГРМ: 96%
Свечи: 96%
Воздушный фильтр: загрязнён на 5%
Заряд аккумулятора: 78%
Состояние АКБ: 92%
Генератор: 100%
Ремень генератора: 92%
Проводка: 96%
Сцепление: 100%
Коробка передач: 100%
Синхронизаторы: 100%
Дифференциал: 100%
Тормозная жидкость: 0,42 из 0,45 л
Качество жидкости: 92%
Тормозные колодки: 88%
Передние шины: 92%
Задние шины: 88%
Все четыре стойки: 100%
Поломки не выпадают случайно. Они накапливаются от эксплуатации и действий игрока.
Если долго крутить двигатель на первой передаче в отсечке, коробка будет постепенно изнашиваться. Плохое масло уменьшит давление и ускорит износ двигателя. Разбитый радиатор начнёт терять антифриз, после чего мотор перегреется. При обрыве ремня перестанут нормально работать генератор и помпа. Утечка тормозной жидкости постепенно оставит машину без тормозов.
Удары тоже учитывают направление. Переднее столкновение повреждает радиатор, двигатель и переднюю подвеску. Боковой удар портит стойки и геометрию соответствующих колёс. Удар снизу может привести к утечке масла, а повреждение задней части — к проблемам с топливной системой.
Все эти состояния уже сохраняются вместе с машиной, но пока нигде нормально не показываются игроку.
Что ещё не готово:
полноценная диагностика неисправностей;
ремонт с инструментами и запчастями;
дым, пар и визуальные утечки;
посторонние звуки двигателя и подвески;
деформация кузова;
проколы и повреждения колёс;
разное сцепление на асфальте, грунте и мокрой дороге;
окончательная настройка заноса;
нормальная анимация рук водителя.
Сама автомобильная система сейчас готова примерно на 90 процентов, но до полноценной игровой механики ремонта ещё далеко.
Следующий этап — сделать так, чтобы игрок замечал неисправности без списка процентов: по контрольным лампам, звукам, дыму, поведению машины и осмотру под капотом. После этого займусь инструментами, заменой деталей и самим процессом ремонта.
Пока буду рад замечаниям именно по поведению машины: кренам, разгону, переключениям и работе салона.
Садишься через открытую дверь. Заводишь с ключа — стартер схватывает, двигатель оживает, слышно холостые. Снимаешь с ручника, трогаешься. Первая, вторая, третья — звук меняется с ростом оборотов, на переключении передач просадка, как на реальной коробке. Снижаешь скорость — мотор рычит по-другому. Врезался во что-то — есть звук удара. Глушишь — двигатель затихает как положено, не обрывается тупо. Выходишь.
Обходишь машину: открываешь любую дверь, капот, багажник — подходишь к каждой детали отдельно, жмёшь E. Всё по-честному.
По физике: трансмиссия считает момент, передаточные числа, сопротивление воздуха и качение. Обороты привязаны к скорости вращения колёс через текущую передачу, а не крутятся сами по себе. Пока обороты упираются в 6500 — это временно. Позже настрою отсечку ближе к реальным значениям: крутить до красной зоны можно будет, но недолго — движок скажет спасибо и сломается.
Под капотом настоящий мотор, под днищем — подвеска, кардан. Всё на своих местах. У меня в молодости была шестёрка, я не по видео на ютубе это делаю.
Расход топлива работает, зарядка аккумулятора тоже. Дальше — поломки и ремонт. По болтам. Как в гараже. Хардкорнее чем в My Summer Car.
Машина готова. Основа есть. Теперь навесное, мир побольше и можно играть.