No description
Find a file
Claude ea45575c43
balance(fleet): фура везёт до 4 т вместо 15
Грузоподъёмность фуры снижена с 15 до 4 т (FleetManager.CreateSpec).
Одиночный заказ весит не больше 2,5 т, так что каждый заказ по-прежнему
влезает в фуру, но сборный рейс из четырёх тяжёлых грузов теперь упрётся
в перегруз. Подписи «Фура 15т», совет в итогах смены, тексты наставника,
комментарии и таблица в GDD обновлены под 4 т.

Улучшение «Большой кузов» в гараже по-прежнему добавляет 20% за уровень,
то есть до 8 т на максимальном уровне.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AZVGWRMUgC4GyzL29yo1CQ
2026-10-25 10:49:36 +00:00
Assets balance(fleet): фура везёт до 4 т вместо 15 2026-10-25 10:49:36 +00:00
Docs Initialize Unity 6 project, GDD, case docs, and Antigravity workspace memory 2026-10-24 17:28:09 +03:00
Packages feat(mvp): реализация полного 3D MVP «Донской Логист: Ростов-на-Дону 3D» и адаптация под 15-16 лет 2026-10-24 18:40:00 +03:00
ProjectSettings merge: preserve latest city map, tutorial and Cyrillic font fix 2026-10-24 21:22:15 +03:00
scripts feat: add manual fleet route planning and road closure visibility 2026-10-24 20:51:31 +03:00
.gitignore feat: implement backhaul cargo, driver radio dilemmas, traffic score hud, and floating revenue feedback 2026-10-25 00:45:40 +03:00
AGENTS.md feat(tutorial): add hands-on practice tutorial with bouncing arrows and highlights on Level 1 2026-10-25 07:55:02 +03:00
GDD.md balance(fleet): фура везёт до 4 т вместо 15 2026-10-25 10:49:36 +00:00
GEMINI.md feat(tutorial): add hands-on practice tutorial with bouncing arrows and highlights on Level 1 2026-10-25 07:55:02 +03:00
README.md merge: preserve latest city map, tutorial and Cyrillic font fix 2026-10-24 21:22:15 +03:00

🚛 Unity-Logist: Логистика Ростова-на-Дону (3D WebGL)

Репозиторий команды «Сеньор-курьеры» для кейса Банка «Центр-Инвест» — «Разработка игры» на Хакатоне «Осень 2026».


📌 Главное о проекте

  • Профессия: Транспортный и городской логист (Supply Chain & Fleet Manager).
  • Сеттинг: Точная 3D-карта Ростова-на-Дону со спутниковой фотоподложкой, реальными районами (Центр, Нахичевань, СЖМ, ЗЖМ, Сельмаш, Левбердон, Военвед), знаковыми 3D-зданиями (Манеж ДГТУ, Банк «Центр-Инвест», Ростов Арена, Вокзал, ЮФУ) и дорожным графом.
  • Движок: Unity 6 (6000.6.0f1) · Universal Render Pipeline (URP).
  • Целевая платформа: Unity WebGL (запуск прямо в браузере без регистрации, вход только по никнейму).

📚 Документация в репозитории

  1. 📄 GDD.md — полный Game Design Document: игровой цикл, механики логистики, экономика, 3 уровня сложности, система сохранения, архитектура 3D-карты Ростова и пошаговый план сборки MVP.
  2. 🧠 AGENTS.md — память проекта для ИИ-ассистентов (Antigravity / Cursor / Claude): все требования кейса, ответы менторов из чата, тайминги чекпоинтов и правила сборки под WebGL.
  3. 📑 Docs/Case_CenterInvest_GameDev.pdf — официальная презентация кейса от Банка «Центр-Инвест».

🔗 Важные ссылки


✅ Что реализовано в проекте (Статус сборки)

  1. Чистая векторная 3D-карта Ростова-на-Дону в стиле Mini Motorways / 2GIS (Assets/Scripts/Map3D/SatelliteTileLoader.cs, Assets/StreamingAssets/MapTiles/rostov_satellite_hd.png):
    • Точная геопривязка (47.18°..47.32° N, 39.58°..39.85° E): русло реки Дон, Зелёный остров, Гребной канал и река Темерник 1:1 совпадают с 3 мостами (Западный, Темерницкий, Ворошиловский).
  2. 536 3D-зданий по 8 районам и 12 3D-достопримечательностей Ростова (BuildingExtruder.cs, Landmark3DBuilder.cs, rostov_buildings.json):
    • Строгая геометрическая фильтрация: 0 зданий в реке Дон и 0 зданий на проезжей части.
    • Батчинг мешей по районам (Mesh.CombineMeshes) + динамическое отсечение вне камеры (CameraFrustumOptimizer.cs) для стабильных 60 FPS в WebGL.
  3. Реальная дорожная сеть Ростова-на-Дону (52 узла, 88 направленных сегментов) (RoadGraph.cs, RoadGraphData.cs, RoadVisualizer3D.cs, rostov_road_graph.json):
    • Большая Садовая, Пушкинская, Красноармейская, Будённовский, Ворошиловский, Соколова, Театральный, Нагибина, Стачки, Малиновского, Шолохова, 3 моста через Дон и Левбердон.
    • Поиск пути A* с учётом весов пробок, кризисных перекрытий мостов (TrafficEventManager.cs) и перестроением маршрутов на лету.
  4. Полная видимость 3D-мира и интерфейса прямо в Edit Mode (#Scene и #Game) (SceneSetupBuilder.cs, GameManager.cs):
    • Вся 3D-карта Ростова, кварталы, дороги, мосты и грузовики сохранены прямо в Assets/Scenes/MainGame.unity и видны в редакторе без запуска Play Mode (в окне #Scene 2D-канвас автоматически скрыт через SceneVisibilityManager, чтобы не перекрывать 3D-город).
  5. Чёткий Retina UI (pixelPerfect = true), кириллический шрифт Inter для WebGL и 5-шаговое обучение (UITheme.cs, MentorDialogUI.cs, LoginNicknameUI.cs, ShiftReportUI.cs, Assets/Resources/Fonts/LogistFont.ttf):
    • Встроенный шрифт LogistFont.ttf (Inter) обеспечивает 100% отображение русской кириллицы, знака ₽ и спецсимволов в браузере (WebAssembly).
    • Интерактивное 5-шаговое обучение профессии логиста (выбор машины под груз, рефрижераторы -18°C, SLA, сборные рейсы LTL, объезд пробок) и «Справочник логиста» (? Учебник).
  6. Обе задачи со звёздочкой:
    • 3 уровня сложности карьеры: 1. Стажёр-логист (Центр и Нахичевань), 2. Опытный логист (Весь Ростов), 3. Директор логистики (Час пик и ЧП).
    • Сохранение прогресса по никнейму без регистрации (SaveSystem.cs): бюджет, открытые уровни, прокачка автопарка в гараже, рекорды SLA, экспорт/импорт JSON-кода сохранения.

🛠 Как запустить проект

  1. Клонируйте репозиторий:
    git clone https://git.bebrik.xyz/Dan4ick/Unity-Logist.git
    
  2. Откройте папку проекта в Unity Hub (версия редактора: 6000.6.0f1 с установленным модулем WebGL Build Support).
  3. Откройте сцену Assets/Scenes/MainGame.unity (или выберите в верхнем меню Unity Logist -> Build MainGame Scene & Prefabs / Logist -> Build WebGL Release).

Управление маршрутами

  1. Выберите заказы, машину и нажмите «Отправить». Для погрузки и доставки машина посетит обязательные точки.
  2. Выберите машину в автопарке и нажмите «Построить маршрут» справа. Кнопка «Маршрут» на занятой машине также открывает планирование.
  3. Нажимайте на узлы карты: до шести промежуточных точек, в выбранном порядке. Предпросмотр показывает путь, оставшееся расстояние, игровое время, стоимость топлива и риск опоздания. Во время редактирования смена стоит на паузе.
  4. «Применить» сохраняет путь. «Отмена» / Escape возвращает прежний маршрут и скорость симуляции. «Авто» убирает ручные точки; без заказов ручной путь позволяет перегнать машину к другому складу.

Закрытые дороги отмечены красной полосой, заграждениями и надписью. Нажатие на карточку дорожного события переносит камеру к участку. Машины объезжают перекрытия; при отсутствии пути ждут открытия, затем повторяют поиск. Зелёный цвет обозначает свободную дорогу, жёлтый — пробку. Ориентиры и подсказки разворачиваются по кнопке справа.

Сохранённая PNG-подложка MapTiles/rostov_satellite_hd.png по умолчанию не заменяет процедурную векторную карту: контур воды, рельеф и дороги должны строиться по общей геометрии. SatelliteTileLoader.useGeoreferencedPhoto следует включать только после замены изображения на подложку с границами RostovGeoBounds.

Проверка и сборка

В Unity: Logist → Validate Roads and Route Planning проверяет связность графа, маршруты при перекрытии каждого моста, дороги вдоль берега, порядок ручных точек, обязательные доставки, ожидание открытия и сохранение прежнего пути при ошибке редактирования. Проверяются и JSON, и встроенный каталог, используемый в WebGL.

Logist → Validate and Build WebGL выполняет проверки и собирает браузерную версию в Builds/WebGL. Папку сборки нужно отдавать через HTTP-сервер с настройками сжатия Unity WebGL.

Локальный запуск готовой сборки: python3 scripts/serve_webgl.py, затем откройте localhost:8080. Сервер выставляет MIME-типы WebAssembly и заголовки сжатия; достаточно стандартного Python 3. Шаблон Assets/WebGLTemplates/Logist занимает всё окно браузера, чтобы карта и текст интерфейса не сжимались в стандартное окно Unity.

Для WebGL в Assets/Resources включены общий шрифт Inter с кириллицей (Fonts/LogistFont.ttf) и материалы со ссылками на используемые URP-шейдеры. Assets/link.xml сохраняет коллайдеры для процедурных примитивов. Эти ресурсы нужны и при программном создании сцены: без них оптимизация браузерной сборки удаляет необходимые данные.