NavMesh Sandbox

Интерактивные примеры к статье «Почему 200 солдат не проходят в одни ворота» — про NavMesh, pathfinding и поведение толпы. Каждая карточка — отдельная маленькая лаборатория: можно подвигать слайдеры, посмотреть на честно измеренные числа и сломать систему так, как это описано в статье.

Sandbox

Free Sandbox

Открытая песочница: добавляй агентов и препятствия, двигай цель, смотри метрики.

Crowd

Narrow Gate

Почему узкий проход создаёт затор — и почему видимая ширина не равна проходимой.

Crowd

Avoidance Priority

Одинаковый приоритет у всех vs случайный — как симметрия решений мешает толпе.

Avoidance

Local Avoidance

Desired vs actual velocity выбранного агента: чем avoidance отличается от навигации.

Pathfinding

A* / Hierarchical A*

Обычный A* против иерархического: open/closed set, регионы, реальное время поиска.

Pathfinding

A* vs Flow Field

Одно общее поле направлений вместо 200 независимых поисков — честный бенчмарк.

NavMesh

Dynamic Obstacles

Перетащи препятствие и сравни цену постоянной перестройки NavMesh с перестройкой по отпусканию.

NavMesh

Link Cost Override

A* не видит, что проход уже переполнен — пока стоимость прохода не скажет ему об этом.

Performance

Path Request Budget

Бюджет запросов пути за кадр и repath jitter — как синхронный пик превращается в очередь.

Lag Compensation

Примеры к статье про сетевые шутеры — почему «я же попал» на экране игрока может быть честным «мимо» на сервере, и как rewind hitbox'ов эту ложь исправляет (и где у неё есть цена).

Netcode

Naive Raycast

Клиент видит цель с задержкой, сервер проверяет попадание по её текущей позиции — без компенсации.

Netcode

Time Machine

Сервер хранит историю hitbox'ов и откатывается назад перед проверкой — почему честный выстрел снова попадает.

Netcode

Rewind Formula

rewindTime = RTT/2 + interpolation delay — два независимых слагаемых задержки клиента, живой расчёт.

Netcode

Max Rewind Window

Без лимита отката игрок с большим пингом попадает по тем, кто уже спрятался за укрытием — peek-and-hide.

Performance

Spatial Filter

Зачем перематывать всех 32 игроков на каждый выстрел — честно измеренная экономика broad-phase фильтра.

Netcode

Hitbox vs Animation Order

Без единого байта сети: порядок SaveHitboxSnapshot() и UpdateAnimation() сам по себе сдвигает hitbox от позы.

Security

Trust But Verify

Клиент лжёт о своей задержке, чтобы выцепить выгодный момент из прошлого — сервер сверяет заявку с честным пингом.

Netcode

Already Dead

Игрок умер, пока летел пакет с выстрелом — сервер честно спрашивает «а был ли он жив, когда стрелял?».

Netcode

Rollback vs Lag Compensation

Одна и та же фраза «отмотать время назад» — либо откат одного hitbox'а, либо переигровка всего мира.

Coyote Time

Примеры к статье про coyote time и jump buffer — почему «физически корректная» проверка приземления ощущается как баг, и как игры намеренно врут игроку про время, чтобы управление казалось отзывчивым.

Platformer

Coyote Time

Беги к краю платформы и жми прыжок в разный момент — окно прощения превращает «поздно» в честный прыжок.

Platformer

Jump Buffer

Обратная проблема: нажал прыжок чуть раньше приземления — игра не должна терять это намерение.

Platformer

Forgiveness Tuning

Сотни попыток с реалистичным разбросом реакции — как выбор coyoteTime/jumpBuffer меняет долю прощённых нажатий.