gmod-rs/crates/client
Niko Marmeladkov 2afa265fed engine: пропы добавлены в коллизию игрока — проваливание под землю
Главная жалоба: игрок проваливался при хождении и стоянии.

Измерение сузило область: 180 кадров стояния на спавне стабильны
(z = -143.9, on_ground = true, провала нет). Значит дефект локальный.

Причина найдена архитектурно: коллизия игрока содержала ТОЛЬКО браши
карты и треугольники displacement. Пропы живут в мире Rapier, а игрок ходит
своей кодовой базой — то есть встать на ящик означало шагнуть в пустоту.
Это два непересекающихся мира коллизий.

- Collision::boxes + сетка по X/Y: габариты подвижных тел;
- set_boxes() перестраивает сетку целиком каждый кадр — тел десятки, а
  пересборка убирает риск «забыть обновить» (источник тихих провалов);
- aabb_penetration() выталкивает по оси наименьшего проникновения, чтобы тело
  не застревало в углу;
- клиент каждый кадр берёт габариты из живого мира, вместе с падающими
  пропами.

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

Тестов 69 в engine, 23 набора по воркспейсу, clippy чист.
2026-10-13 14:41:46 +03:00
..
src engine: пропы добавлены в коллизию игрока — проваливание под землю 2026-10-13 14:41:46 +03:00
Cargo.toml lua: рантайм LuaJIT с GMod-подобным API и автозагрузкой клиентских аддонов 2026-10-12 04:29:09 +03:00