Собрал в браузере гонку с ИИ за день: три версии ушли в мусор, поехала четвёртая

25 сентября 2026 года я повторил чужой приём: попросил модель собрать гоночную игру в браузере. Первые три версии не поехали. Рассказываю, что именно их убило, на чём игра завелась и сколько это стоило.

24 сентября 2026 года мне попался ролик, где парень за пару дней собирает в браузере гоночную игру и играет в неё с телефона. Оригинальные файлы игры он не трогал, всё нарисовано заново, а на экране вещь, которую глазом не отличишь от настоящей. Я решил проверить, повторяется ли это, и 25 сентября сел собирать свою гонку. Четвёртая версия финиширует за 48,8 секунды, а первые три я выбросил.

Что именно я пробовал повторить

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

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

Первые три версии и что их убило

Первая версия приехала через сорок минут: вид сверху, тёмный фон, машинка-квадратик и препятствия размером с монету. Играть в это невозможно - машина ловит удар о то, чего не видно на экране.

Вторая версия получила перспективу и стала похожа на гонку из девяностых. Здесь вылезло то, что видно только в движении: машина шла по дороге, не касаясь её, колёса стояли на месте, картинка дёргалась.

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

⚠️

Поехало на готовых движках

Четвёртую версию я попросил собрать на двух библиотеках, которые лежат в свободном доступе: Three.js рисует сцену, Rapier считает физику. Обе скачиваются файлом и кладутся рядом с игрой: 1,2 МБ и 2 МБ соответственно, никакой установки и регистрации.

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

Четвёртая версия: вид из-за машины, соперник рядом, скорость и круг на экране
Кадр гонки: красная машина едет по трассе, справа синий соперник, слева деревья с тенями

Весь код игры уместился в 461 строку в одном файле. Я прогнал полный заезд 26 сентября 2026 года: шестьдесят кадров в секунду, ни одной ошибки в консоли браузера, два круга, финиш на втором месте за 48,8 секунды. Максимальная скорость на прямой - 130 км/ч по счётчику.

Где приём не сработал

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

В трёхмерную сцену не лёг ни один. Нарисованная сбоку машинка - это плоская картинка, а в объёме её видно с любого угла, и она превращается в бумажку. Поэтому машины в финальной версии собраны из простых объёмных форм, раскрашенных в два цвета. Задачу «поставить на трёхмерку красивые текстуры» я пока не закрыл, и это честный минус результата.

Второе ограничение спряталось в поведении соперников. Им скорость задаётся напрямую каждый кадр, поэтому в них можно въехать, но нельзя вытолкнуть с трассы: они продавливают свою линию. Для гонки с обгонами это заметно.

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

Сколько это стоило

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

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

Как повторить это у себя за вечер

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

  • Скачайте две библиотеки одним файлом каждая и положите их в папку рядом с будущей игрой: Three.js рисует сцену, Rapier считает физику. Ни установки, ни регистрации, ни ключей.

  • Опишите модели условие приёмки: сколько кругов, сколько соперников, откуда камера, что происходит на финише. Требование «два круга и таблица результатов» проверяется за минуту. Общая просьба «сделай гонку» проверке не поддаётся вовсе.

  • Скажите отдельной строкой, что движение и удары считает Rapier, а сцену собирает Three.js. Без этой строки модель напишет свой движок, и вы получите мои первые три версии.

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

Что из этого забрать себе

  • Называйте модели конкретную библиотеку, если она есть. «Сделай физику» даёт парящую машину, «возьми Rapier» даёт удары и сцепление.

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

  • Плоская картинка и объёмная сцена - разные материалы. Спрайты, нарисованные для вида сверху, в трёхмерке выбрасываются целиком.

  • Ставьте условие приёмки заранее. Моё было «два круга и финиш», и оно сразу отсекло три версии, которые красиво выглядели и никуда не ехали.

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

Теперь честно про результат. Четвёртую версию я показал со стороны - и получил приговор: это каркас. Машина едет, в заезде не происходит ничего. Нет отсчёта на старте и таблицы в конце, нет звука мотора и удара, машины и трасса собраны из простых фигур.

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

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

Хотите такую же штуку под свою задачу - напишите мне

Подписаться на @kursorai