Skip to content

Repository files navigation

5GOR — Такси в Пятигорске

Godot Engine Tests Platform Version

5GOR — стилизованный low-poly open-world драйв-симулятор такси в Пятигорске, перенесённый с Three.js на Godot 4.7.

Вся геометрия, текстуры, эффекты и звук игры генерируются полностью процедурно — в проекте нет внешних 3D-моделей или аудиосэмплов. При этом город остаётся узнаваемым курортным Пятигорском со всеми ключевыми достопримечательностями и атмосферой.


Особенности игры

🚕 Город и мир

  • Реалистичная топография: городская сетка 9×9 улиц, гора Машук с серпантином до вершины, 8 районов (Центр, Курортный, Привокзальный, Провал, Рынок «Лира», Санатории, Машук, Вокзал).
  • 14 уникальных достопримечательностей: монумент Орла, озеро Провал, парк Цветник, беседка «Эолова арфа», грот Лермонтова, телебашня, пятигорский трамвай с подвижным составом и др.
  • Динамический суточный цикл и погода: процедурное небо SkyRig, восходы и закаты, ночная подсветка окон и фонарей, плотный туман и дождь на GPUParticles3D.

🚦 Живой трафик и пешеходы

  • Умный трафик: 20 типов автомобилей, движение по полосам, соблюдение фаз светофоров и приоритетов на перекрёстках.
  • Пешеходы и фауна: 13 архетипов жителей и курортников плюс собаки и кошки с навигацией по тротуарам и реакцией на окружающий мир.
  • Полиция и погони: патрули фиксируют нарушения (проезд на красный, превышение скорости, наезды), объявляют розыск (1–5 звёзд) и организуют погоню с перехватом.

🎮 Геймплей и механики

  • Работа в такси: 8 типов заказов (эконом, комфорт, доставка, срочные, экскурсионные туры), живые реплики пассажиров, чаевые и рейтинг.
  • Аркадная физика: кинематическая модель управления 1:1, дрифт, заносы, опасные обгоны (near-miss), система серий и комбо стиля.
  • Пеший режим: возможность выйти из машины, бегать, прыгать, драться и взаимодействовать с окружающими.
  • Гараж и тюнинг: покупка 7 автомобилей, 6 направлений апгрейда (двигатель, тормоза, управляемость, бак, броня, кузов), покраска, диски, спойлеры, обвесы, декали, мойка и ремонт.
  • 3 слота сохранения: независимые профили с превью в главном меню, автосейв каждые 30 секунд и отдельное хранилище достижений (29 ачивок).

🔊 Полностью процедурный звук

  • 7 шин микшера (Master, Music, SFX, Engine, Ambient, UI, Voice) с аппаратным лимитером, ревербом и даккингом.
  • Синтез 53 звуковых эффектов кодом (AudioStreamWAV) с детерминированным кэшированием.
  • 3D-пул позиционного звука для гудков машин, сирен и шагов.
  • 6 авторских радиостанций (Пятигорск FM, Машук Synth 80s, Кавказ Beat, Бештау Rock & Drive, Кавказ Шансон, Ночной Курорт).

Управление

Действие Клавиатура / Мышь Геймпад
Газ / Тормоз W / S или ↑ / ↓ RT / LT или Левый стик Y
Руль A / D или ← / → Левый стик X
Ручной тормоз Space Кнопка A
Выйти / Сесть в авто E Кнопка X
Клаксон H Кнопка B
Фары L D-Pad Вверх
Карта города M D-Pad Вправо
Радио (след. станция) R D-Pad Влево
Пауза / Меню Escape / P Start
Удар (пеший режим) ЛКМ / F Кнопка B
Вращение камеры Зажатая ЛКМ / ПКМ Правый стик

На мобильных устройствах поддерживается экранный виртуальный джойстик.


Быстрый старт

Требования

  • Godot Engine 4.7+ (поддерживается стандартный билд без C# / .NET).

Запуск в редакторе

  1. Клонируйте репозиторий:
    git clone https://github.com/emaxe/5gor-new.git
    cd 5gor-new
  2. Откройте проект в Godot 4.7:
    • В менеджере проектов выберите Import и укажите файл project.godot.
  3. Запустите главную сцену (F5 или main.tscn).

Тестирование и инструменты

В проекте используется gdUnit4 для автоматизированного тестирования архитектуры, физики и игровой логики.

Запуск тестов (headless)

./tools/run_tests.sh

Все 308 тестов (31 тестовый набор) выполняются в headless-режиме без графического окна.

Снятие эталонных скриншотов стиля

./tools/capture_style.sh

Конвейер данных

Все игровые ресурсы .tres компилируются скриптами из эталонных конфигураций:

# 1. Дамп данных оригинальной игры
node tools/dump_data.mjs
# 2. Импорт в Godot-ресурсы
godot --headless -s tools/import_json.gd

Структура проекта

5gor-new/
├── autoload/        # Глобальные синглтоны (Bus, Db, Prefs, Game, SaveManager, Audio, Inp, Dir)
├── schema/          # Определения Resource-классов (машины, заказы, районы, звуки, ачивки)
├── data/            # Сгенерированные типизированные .tres ресурсы
├── core/            # Низкоуровневые утилиты: MeshBuilder, SpatialHash2D, SeededRng, MathUtils
├── world/           # Генерация мира: CityBuilder, дорожная сетка, здания, пропсы, SkyRig, погода
├── gameplay/        # Игровая логика: заказы, полиция, GPS, гараж, стиль (juice), ачивки
├── vehicles/        # Машина игрока: кинематическая физика, CarMeshBuilder, свет, коллизии
├── peds/            # Пешеходы: PedManager, дорожный граф пешеходов, модель игрока пешком
├── audio/           # Синтезатор звуков (SfxSynth), генератор радио, шины, звуки двигателя
├── ui/              # HUD, миникарта, экраны (MainMenu, Pause, Garage, Settings, Map, ShiftEnd)
├── tools/           # Утилиты конвейера данных, съёмщик кадров, прогон тестов
└── tests/           # Unit- и интеграционные тесты (gdUnit4), тестовые сцены-полигоны

Разработчикам

  • Архитектурные правила и соглашения описаны в AGENTS.md.
  • Детальный план этапов реализации зафиксирован в docs/plans/init/plan.md.
  • История изменений проекта ведётся в CHANGELOG.md.

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages