Claude Opus 5.5
Интерактивная 3D-гонка с низкополигональными машинами и зимней трассой в горном городке
Промпт
ПРОМПТ: Создай гоночную игру, вдохновлённую Ignition (1997): камера под углом сверху, физика с уклоном в аркадную, машины с очень разными характерами. Это должна быть оригинальная игра, а не копия. Используй оригинальное название, оригинальную трассу и полностью оригинальные ресурсы. ## Стек - Vite + TypeScript (strict), Three.js для рендеринга, без UI-фреймворка (HUD на обычных DOM/CSS). - Низкополигональная графика, генерируемая в коде (BoxGeometry, CylinderGeometry и т. д.), без внешних моделей и текстур. Сплошные цвета и простые материалы. - Собственная упрощённая физика 2.5D (движение по плоскости XZ, высота определяется рельефом). Без физического движка. ## Архитектура - src/game/ (игровой цикл с фиксированным шагом), src/vehicles/, src/track/, src/ai/, src/render/, src/ui/ - Машины управляются данными: масса, мощность, максимальная скорость, сцепление, рулевое управление, устойчивость к столкновениям и параметры ускорения (сила, длительность, время перезарядки). Один класс Vehicle, разные конфигурации. - Любой машиной может управлять игрок или ИИ (общий интерфейс управления: газ, тормоз, руление, ускорение). - Трасса представлена данными: сплайн центральной линии + ширина + список зон (лёд, срез, препятствие). На их основе генерируй геометрию дороги и точки маршрута для ИИ. ## Машины (оригинальные названия, без брендов) Четыре машины. Игрок выбирает одну на экране выбора; оставшимися 3 управляет ИИ. - Полицейский седан в стиле 90-х (чёрно-белый, с проблесковой балкой): тяжёлый, устойчивый, сильно таранит соперников при столкновениях. - Кабриолет-маслкар: самый быстрый на прямых, склонен к избыточной поворачиваемости в поворотах. - Красный монстр-трак: медленный, зато не замечает неровностей и таранит всё вокруг. - Фургон почтовой доставки: медленный, с высоким центром тяжести, раскачивается в поворотах. Различия в управлении должны быть отчётливо заметны. Все четыре машины должны быть играбельными и конкурентоспособными. Более медленные машины компенсируют это, например, устойчивостью к столкновениям, проходимостью по разным типам поверхности или более мощным либо более частым ускорением. ## Ускорение - У каждой машины есть ускорение: короткий, ярко выраженный разгон выше её обычной максимальной скорости. - Ускорение автоматически заряжается от 0 до 100%. Использовать его можно только при заряде 100%. После использования шкала падает до 0 и снова начинает заряжаться. - Сила, длительность и время перезарядки уникальны для каждой машины (например, маслкар: короткое и очень мощное; фургон: слабее, но быстро перезаряжается; монстр-трак: длительное, но медленно перезаряжается). - Визуальный эффект во время ускорения: пламя или след из выхлопной трубы, лёгкое отдаление камеры. - ИИ также использует ускорение разумно: на прямых, но не перед крутыми поворотами и не на льду. ## Трасса Горный городок с канадским колоритом, где зима сменяется весенней оттепелью: - замкнутый круг, примерно 60–90 секунд на круг - водопад, видимый с трассы, и деревянный мост через реку - железнодорожный переезд с периодически проходящим поездом (столкновение = сильный отброс, но не завершение игры) - участки льда со сниженным сцеплением - один срез (узкий и рискованный); декорации: еловые деревья, деревянные дома, снег - ограждения или естественные препятствия, чтобы машины не застревали за пределами трассы. Аварийный возврат: если машина (включая ботов) застряла более чем на ~4 с, автоматически вернуть её на трассу к последней контрольной точке. ## Игровой процесс - 3 круга, старт с места с выстроенными на решётке машинами, обратный отсчёт 3-2-1 - ИИ следует точкам маршрута, а стиль вождения зависит от машины, используется лёгкая резиновая подтяжка, препятствия объезжаются, телепортация отсутствует (за исключением описанного выше аварийного возврата на трассу) - Занос возникает исключительно благодаря физике (сцепление, скорость, лёд), ручного тормоза нет - Камера: сверху под углом ~50°, следует за игроком с небольшим упреждением в направлении движения - Управление: стрелки/WASD (газ, тормоз/движение назад, руление), пробел = ускорение - Экраны: начало → выбор машины (предпросмотр модели + шкалы характеристик, включая ускорение) → гонка → результаты → перезапуск (с возможностью сменить машину) ## HUD - Позиция, круг, время круга, лучший круг, мини-карта. - Шкала ускорения стилизована под автомобильный аккумулятор: прямоугольный корпус с двумя клеммами (+/−) сверху, уровень заполнения повышается по мере зарядки. Цвет меняется от красного через жёлтый к зелёному. При 100% аккумулятор явно сигнализирует о готовности (пульсация или свечение, надпись "BOOST" или значок молнии). Во время ускорения шкала быстро уменьшается. ## За рамками версии v1 Звук, меню настроек, несколько трасс, многопользовательский режим, сохранение состояния. ## Рабочий процесс 1. Сначала предложи план и структуру файлов, затем реализуй всё поэтапно: (a) игровой цикл + одна машина на плоской поверхности, включая ускорение, (b) трасса, (c) остальные машины и ИИ, (d) препятствия и поезд, (e) выбор машины, HUD со шкалой аккумулятора и экраны. 2. После каждого этапа запускай `npm run build` и исправляй ошибки типов. 3. Добавь модульные тесты (Vitest) для физики машин, логики ускорения (зарядка, блокировка при уровне ниже 100%, сброс после использования) и логики кругов/позиций. 4. В конце: README с описанием управления и инструкциями по добавлению новой трассы или машины. ## Критерии приёмки `npm install && npm run dev` запускает игру. Можно выбрать любую из 4 машин и завершить 3 круга против 3 ботов. Каждая машина управляется по-разному и имеет заметно отличающееся ускорение. Ускорение работает только при полностью заряженном аккумуляторе, и боты также его используют. Поезд и лёд работают. В результатах отображается правильный порядок. Стабильные 60 FPS на обычном ноутбуке.
Build a racing game inspired by Ignition (1997): angled top-down camera, arcade-leaning physics, vehicles with very distinct personalities. This must be an original game, not a copy. Use an original name, an original track, and zero original assets. ## Stack - Vite + TypeScript (strict), Three.js for rendering, no UI framework (HUD in plain DOM/CSS). - Low-poly graphics generated in code (BoxGeometry, CylinderGeometry, etc.), no external models or textures. Solid colors and simple materials. - Custom simplified 2.5D physics (movement on the XZ plane, height from terrain). No physics engine. ## Architecture - src/game/ (game loop with fixed timestep), src/vehicles/, src/track/, src/ai/, src/render/, src/ui/ - Vehicles are data-driven: mass, power, top speed, grip, steering, collision resistance, and boost parameters (strength, duration, recharge time). One Vehicle class, different configurations. - Any vehicle can be controlled by either the player or the AI (shared control interface: throttle, brake, steer, boost). - Track as data: centerline spline + width + list of zones (ice, shortcut, obstacle). Generate the road mesh and AI waypoints from it. ## Vehicles (original names, no brands) Four vehicles. The player picks one on the selection screen; the remaining 3 are driven by the AI. - 90s-style police sedan (black and white, light bar): heavy, stable, pushes hard in collisions. - Muscle car convertible: fastest on straights, oversteers in corners. - Red monster truck: slow, but ignores bumps and rams everything else. - Postal delivery van: slow, high center of gravity, sways in corners. The handling differences must be clearly noticeable. All four must be playable and competitive. Slower vehicles compensate with e.g. collision resistance, terrain handling, or a stronger or more frequent boost. ## Boost - Every vehicle has a boost: a short, pronounced acceleration beyond its normal top speed. - Boost charges automatically from 0 to 100%. It can only be used at 100%. After use, the meter drops to 0 and starts charging again. - Strength, duration and recharge time are unique to each vehicle (e.g. muscle car: short and very strong; van: weaker but recharges fast; monster truck: long but slow to recharge). - Visual effect while boosting: exhaust flame or trail, slight camera pull-back. - The AI also uses boost, sensibly: on straights, not before sharp corners or on ice. ## Track A mountain town with a Canadian feel, winter turning into spring thaw: - closed loop, roughly 60–90 seconds per lap - a waterfall visible from the track and a wooden bridge over a river - a railroad crossing with a train passing periodically (collision = strong knockback, not game over) - ice patches with reduced grip - one shortcut (tight, risky); decorations: spruce trees, wooden houses, snow - barriers or natural obstacles so vehicles can't get stuck off the track. Failsafe: if a vehicle (including bots) is stuck for more than ~4 s, automatically return it to the track at the last checkpoint. ## Gameplay - 3 laps, standing grid start, 3-2-1 countdown - AI follows waypoints with a driving style that depends on the vehicle, light rubber-banding, avoids obstacles, no teleporting (except the failsafe track return described above) - Sliding comes purely from physics (grip, speed, ice), no handbrake - Camera: top-down at ~50°, follows the player with a slight look-ahead in the direction of travel - Controls: arrows/WASD (throttle, brake/reverse, steering), space = boost - Screens: start → vehicle selection (model preview + stat bars, including boost) → race → results → restart (with option to change vehicle) ## HUD - Position, lap, lap time, best lap, minimap. - Boost meter styled as a car battery: rectangular casing with two terminals (+/−) on top, fill level rises as it charges. Color shifts from red through yellow to green. At 100% the battery clearly signals readiness (pulsing or glow, "BOOST" label or lightning bolt icon). While boosting, the meter drains quickly. ## Out of scope for v1 Sound, options menu, multiple tracks, multiplayer, save state. ## Workflow 1. First propose a plan and file structure, then implement in stages: (a) game loop + one vehicle on a flat plane, including boost, (b) track, (c) remaining vehicles and AI, (d) obstacles and train, (e) vehicle selection, HUD with battery meter, and screens. 2. After each stage run `npm run build` and fix type errors. 3. Add unit tests (Vitest) for vehicle physics, boost logic (charging, lockout below 100%, reset after use), and lap/position logic. 4. Finally: a README describing the controls and how to add a new track or vehicle. ## Acceptance criteria `npm install && npm run dev` launches the game. You can pick any of the 4 vehicles and complete 3 laps against 3 bots. Each vehicle handles differently and has a noticeably different boost. Boost only works with a full battery, and bots use it too. The train and ice work. Results show the correct order. Stable 60 FPS on an average laptop.
Права на промпт принадлежат автору @_nieGRAMotny_. За коммерческое использование — продвижение нейросетей, агрегаторов, Telegram-ботов — отвечаете вы: mozgi.io ответственности не несёт. Подробнее →











