NavMesh Sandbox
Интерактивные примеры к статье «Почему 200 солдат не проходят в одни ворота» — про NavMesh, pathfinding и поведение толпы. Каждая карточка — отдельная маленькая лаборатория: можно подвигать слайдеры, посмотреть на честно измеренные числа и сломать систему так, как это описано в статье.
Free Sandbox
Открытая песочница: добавляй агентов и препятствия, двигай цель, смотри метрики.
CrowdNarrow Gate
Почему узкий проход создаёт затор — и почему видимая ширина не равна проходимой.
CrowdEffective Width
Ворота 1.6 м, Agent Radius 0.5 м — для центра агента остаётся 0.6 м. Один агент проходит, два мешают, двести — затор.
CrowdAvoidance Priority
Одинаковый приоритет у всех vs случайный — как симметрия решений мешает толпе.
CrowdPriority Standoff
Два агента, одни ворота, одинаковый приоритет — честный пат вместо толпы, пока не дашь кому-то приоритет выше.
AvoidanceLocal Avoidance
Desired vs actual velocity выбранного агента: чем avoidance отличается от навигации.
PathfindingA* / Hierarchical A*
Обычный A* против иерархического: open/closed set, регионы, реальное время поиска.
NavMeshTarget Snapping
Клик мимо NavMesh и валидная, но недостижимая цель — два разных «застрял» и зачем SamplePosition на спавне.
PathfindingA* vs Flow Field
Одно общее поле направлений вместо 200 независимых поисков — честный бенчмарк.
NavMeshDynamic Obstacles
Перетащи препятствие и сравни цену постоянной перестройки NavMesh с перестройкой по отпусканию.
NavMeshLink Cost Override
A* не видит, что проход уже переполнен — пока стоимость прохода не скажет ему об этом.
PerformancePath Request Budget
Бюджет запросов пути за кадр и repath jitter — как синхронный пик превращается в очередь.
PerformanceA* Cost at Scale
Один запрос пути на карте с десятками тысяч ячеек честно трогает треть из них — а что если таких запросов 200.
PerformanceStale Path
Бюджет не фризит кадр — он просто заставляет агента идти в новую стену пару кадров, пока его repath ждёт очереди.
Lag Compensation
Примеры к статье про сетевые шутеры — почему «я же попал» на экране игрока может быть честным «мимо» на сервере, и как rewind hitbox'ов эту ложь исправляет (и где у неё есть цена).
Naive Raycast
Клиент видит цель с задержкой, сервер проверяет попадание по её текущей позиции — без компенсации.
NetcodeTime Machine
Сервер хранит историю hitbox'ов и откатывается назад перед проверкой — почему честный выстрел снова попадает.
NetcodeRewind Formula
rewindTime = RTT/2 + interpolation delay — два независимых слагаемых задержки клиента, живой расчёт.
NetcodeMax Rewind Window
Без лимита отката игрок с большим пингом попадает по тем, кто уже спрятался за укрытием — peek-and-hide.
PerformanceSpatial Filter
Зачем перематывать всех 32 игроков на каждый выстрел — честно измеренная экономика broad-phase фильтра.
NetcodeHitbox vs Animation Order
Без единого байта сети: порядок SaveHitboxSnapshot() и UpdateAnimation() сам по себе сдвигает hitbox от позы.
SecurityTrust But Verify
Клиент лжёт о своей задержке, чтобы выцепить выгодный момент из прошлого — сервер сверяет заявку с честным пингом.
NetcodeAlready Dead
Игрок умер, пока летел пакет с выстрелом — сервер честно спрашивает «а был ли он жив, когда стрелял?».
NetcodeRollback vs Lag Compensation
Одна и та же фраза «отмотать время назад» — либо откат одного hitbox'а, либо переигровка всего мира.
Coyote Time
Примеры к статье про coyote time и jump buffer — почему «физически корректная» проверка приземления ощущается как баг, и как игры намеренно врут игроку про время, чтобы управление казалось отзывчивым.
Coyote Time
Беги к краю платформы и жми прыжок в разный момент — окно прощения превращает «поздно» в честный прыжок.
PlatformerJump Buffer
Обратная проблема: нажал прыжок чуть раньше приземления — игра не должна терять это намерение.
PlatformerForgiveness Tuning
Сотни попыток с реалистичным разбросом реакции — как выбор coyoteTime/jumpBuffer меняет долю прощённых нажатий.
Don't Make NPC Smarter
Примеры к статье про то, почему игровой AI держат намеренно «глупым» — FSM/Behavior Tree/Utility AI вместо RL/LLM, как наивная функция награды вырождается в отсиживание по углам или суицидальную агрессию, и почему предсказуемость и ошибки NPC — часть дизайна, а не баг.
Reward Hacking
Настоящий value iteration на 12 состояниях — крути веса награды и смотри, как policy целиком вырождается.
DesignChase Timeout
FSM Patrol/Chase/Search с таймаутом поиска — выключи «никогда не сдаётся» и попробуй убежать от бесконечного преследования.
DesignFSM vs Black Box
Один и тот же автомат на одном скриптованном таймлайне: слева видна причина каждого перехода, справа — только действие.
DesignDeliberate Imperfection
Шанс промаха и задержка реакции NPC против win rate игрока — честного «правильного» числа тут не существует.
Dedicated Server & Anti-Cheat
Примеры к статье «Архитектура выделенного игрового сервера: от пакета до бана читера» — почему авторитетный сервер не верит клиенту, как работают спидхак, лаг-свитч, дюпы, и почему античит начинается с правильного сетевого протокола.
Client Authority Flaw
«Я нажал телепорт»: почему доверие позиции клиента ломает игру, и как валидация скорости и стен на сервере отбрасывает читера.
Anti-CheatSpeedhack & Time Leaky Bucket
Ускорение времени на клиенте vs накопительный бюджет тиков на сервере — как Leaky Bucket отсекает пакетный спам.
SecurityWallhack vs Server Culling
Wallhack не может показать то, о чём клиент не знает: отсечение сущностей за стенами (PVS/Raycast) и защитный буфер задержки.
EconomyGold From Thin Air
Сравнение RPC «Дай мне 500 золота» с валидируемым действием «Забрать награду квеста» — защита от подделки запросов.
NetcodeLag Switch & Desync
Читер замораживает исходящие пакеты, выходит из-за угла, стреляет и отправляет пачку: почему ограничение rewind cap спасает честных игроков.
DatabaseDupe Exploit & Race Condition
Параллельная передача одного предмета двум игрокам: наивная проверка vs транзакция базы данных (SELECT FOR UPDATE / Redis lock).
HoneypotHallucination Trap
Ловушка в стиле Activision Ricochet: фейковые цели за непробиваемыми стенами, на которые наводятся только читеры с ESP.
Machine LearningAimbot Detection (VACnet)
Статистический анализ прицеливания: реакция за 0 мс, отсутствие овершута и неестественная дисперсия выдают аимбот.