- палитра целиком (индиго, пурпур, ледяная бирюза): SOLID/NEON, SURFACES/GLOWS, туман, ambient, свет запекания, ворота, полосы, надписи; новое небо
- запекание 384 сэмпла + огни у подножия башни
- вентилятор: VENT_MAX_RISE 16, VENT_ACCEL 80; шахта-лифт без знака и без столба/света (hidden)
- музыка Race 2: Poloz «On My Way to Hell» с 1:40
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
- maps/race2/: сцена, race2.gd (ворота со световыми столбами, лазеры, вентиляторы, полосы, срыв, дождь, гул), данные и модель из Blender models/race_02
(раскладка layout.py -> build_race.py -> bake.py; свет пока запечён грубо, небо и музыка — копии Race)
- objects/vent.gd, objects/boost_strip.gd + хуки apply_vent()/apply_boost() в player/player.gd (MAX_SPEED и остальная физика не тронуты)
- race_rules.gd берёт данные у карты (общий код правил для Race и Race 2)
- портал RACE 2 в хабе, пресет экспорта Race2 + export_all.sh, Net.TIMED_MAPS/MAP_TITLES для race2 (RPC не менялись; серверу нужен deploy_server.sh)
- тесты: race_game_test.sh с MAP=race2 (бот проводит игроков телепортами), race2_check.txt
- README: раздел «Карта Race 2», результаты ботов по веткам
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
- Карта Metro и всё, что с ней связано, удалены по решению владельца (в git она не попадала)
- Из net.gd убраны id «metro» (TIMED_MAPS, MAP_TITLES), из README/тестов — упоминания
- README: исправлен блок «Структура проекта» (branding/, core/, player/character), запись в журнале
о Metro и вынесенных уроках
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WxZo3ekR5m1af437Qzqwc1
- branding/splash.png, branding/icon.svg; project.godot: config/name, boot_splash, config/icon
- user:// остаётся прежним (custom_user_dir_name="world2"), чтобы не потерять профиль и рекорды
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WxZo3ekR5m1af437Qzqwc1
- Ники: профиль user://profile.cfg (client_id + ник), панель при первом запуске и по N;
Net.nick_of(id); ники над призраками, в HUD/итогах гонки и таблицах
- Рейтинг на сервере: лучшее время каждого игрока по картам race/parkour/metro, топ-10,
user://leaderboard.json (атомарная запись, лимиты, проверка карты/комнаты/времени)
- Таблица лидеров по Tab, доски топ-3 над порталами в хабе, итоги гонки с общим рейтингом
- Гонка: сдача (G, удержание 1,5 с), RACE_GIVEUP; Parkour: таймер, финиш на вершине, R — перезапуск
- Новые RPC (submit_profile, recv_nick, submit_record, recv_record_result, request_leaderboard,
recv_leaderboard): клиент и сервер выкладываются вместе
- Тесты: nicks_lb_test, race_giveup_test, parkour_run_test, nick_ui_test, ui_tour; README обновлён
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WxZo3ekR5m1af437Qzqwc1
- maps/race: трасса 633 м из Blender (три развилки: срез по контейнерам, каньон со стенами
против нижней дороги, труба с лазерами против коридора), запечённый свет, небо, дождь, гул;
фоновая песня (Ogg Vorbis, ~0,6 МБ) включается на «СТАРТ!»
- Правила (race_rules.gd): R — готов; когда готовы все — отсчёт 6 с, заморозка в слотах,
ворота строго по порядку, сплиты, место, итоги, личный рекорд (user://race_best.cfg)
- Сеть: Net.submit_race / recv_race / race_event (RACE_READY, START, CP, FINISH, STATE).
ВНИМАНИЕ: набор RPC изменён — клиент и сервер выкладываются вместе, старый клиент
с новым сервером не работает (rpc node checksum failed)
- player.gd: input_frozen и place() для режимов карт; project.godot: действие ready (R)
- Портал RACE в хабе, пресет экспорта Race (include_filter для ресурсов, грузимых строкой)
- tools/test: двухклиентный тест гонки на локальном сервере, бот, облёт, проверка пакета
- README: правила гонки, события, проверки, заметки
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WxZo3ekR5m1af437Qzqwc1
- Договорённости с владельцем, замеры мувсета (стенами высоту не набрать), исправление
подтягивания, конвейер Parkour и его грабли, ловушка с ресурсами, загружаемыми по строке
- tools/test: measure_movement, mantle_test, parkour_gaps, parkour_tour, parkour_check.txt
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WxZo3ekR5m1af437Qzqwc1
- Новая карта maps/parkour: ~700 м, 9 чекпоинтов (светящиеся ворота), секции под
мувсет: крыши, каньон из стен для бега, башня из уступов (двойной прыжок +
подтягивание), лазерный зал (подкат, прыжок, тайминг), пропасть из контейнеров
(зазоры 16–24 м), спираль вокруг ядра, вершина с порталом в хаб
- Атмосфера: антиутопия — дождь, дымный туман, мокрый бетон с отражением неба,
натриевый/красный свет, надписи-приказы, шум дождя и гул; освещение запечено
в цвета вершин (Blender, Cycles), шейдер baked.gdshader без динамического света
- Модель, раскладка и скрипты сборки лежат в «Blender models/parkour_02»
(layout, build_parkour, bake, build_sky); parkour_data.gd генерируется
- Пресет экспорта Parkour и строка в export_all.sh; карта исключена из основного пакета
- Портал PARKOUR в хабе; README: карта, пересборка, замеры мувсета
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WxZo3ekR5m1af437Qzqwc1
- Подтягивание на уступы выше ~2 м не работало: цель ставила центр капсулы
на уровень поверхности, тело оказывалось наполовину в уступе, и физика
выталкивала назад. Теперь центр на полвысоты капсулы выше поверхности
(проверено ботом: уступы 1,2–2,7 м, тонкие и сплошные, коробка и меш,
ходьба и спринт — везде успешно; раньше от 2,0 м не работало)
- Откачено сальто камеры при двойном прыжке (тошнит, не видно куда прыгать)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WxZo3ekR5m1af437Qzqwc1
- Камера вынесена в узел CameraPivot на уровне глаз; им крутим оборот за
AIR_JUMP_FLIP_TIME (0,6 с, как у анимации air_jump), взгляд мышью не мешает
- Рывок берёт направление без учёта сальто, смерть сбрасывает его
- README: строка про сальто в таблице управления
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WxZo3ekR5m1af437Qzqwc1
- player/character/character.glb: 752 треугольника, 17 костей, 14 анимаций
(idle, walk, run, crouch, slide, jump, fall, air_jump, dash, wallrun L/R,
mantle, death); ноги на IK, исходник и скрипт сборки в Blender models
- Ghost: выбор анимации по флагам и скорости, подгонка speed_scale,
голова повторяет взгляд, свечение красится в цвет игрока от его id
- Net: флаги FLAG_WALL_RIGHT и FLAG_AIR (RPC не менялись, сервер
перевыкладывать не нужно)
- Игрок: капсула в player.tscn заменена моделью, спрятанной от своей камеры
- Модель в ghost.gd грузится через load, чтобы не ломать сервер без неё
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WxZo3ekR5m1af437Qzqwc1
- Перенос: Net→net, Player→player, World/*→maps/{hub,sandbox,backrooms}, core, objects,
models/*→chasers/{rock,verity} и maps/*/models. Имена внутри папок с .glb не менялись
(рядом лежат извлечённые текстуры). Все пути, пресеты экспорта и автолоады обновлены.
- Преследователи: rock-follow.gd → chasers/chaser.gd; камень в песочнице теперь инстанс
chasers/rock/rock.tscn (как Верити).
- Удалён мусор: неиспользуемое небо sunflowers, Tree_01.glb, rock-path.gd, старая
модель Верити, unwrap_cache (теперь в .gitignore).
- Основной пакет игры 70 КБ (камень и Верити уехали в пакеты карт).
- tools/: export_all.sh, serve_web.py (nginx-подобный dev-сервер), deploy_server.sh,
test/ (боты, временный проект и сервер). Net: флаг --client для headless-клиента.
- deploy/: боевые nginx.conf и my-world.service, project.godot выделенного сервера.
- README переписан: что есть и чего нет, структура, карты, преследователи, сеть, пакеты,
деплой, грабли, дорожная карта (телефон).
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>