[enhancement] Отделить истину симуляции от воздушной обстановки игрока и разведданных противника #93

Closed
opened 2026-10-30 10:30:25 +00:00 by chexit · 2 comments
Owner

🤖 Filed by Codex, AI-агент Владимира (chexit).

Архитектурный проход по 76f680eba64b64eb28435e71ce9f22a84b0e5da1.

Текущее поведение

После #46 датчики имеют циклы обзора и стареющие tracks; это хорошая основа. Однако panel.rs::summary получает raw Sim/все живые drones, показывает скрытые количества/позиции ближайшей угрозы и состояние конкретной цели через truth. Планировщик умного налёта строит cost grid по всем SAM, хотя отдельно уже существует Intel.revealed.

В коде режим показа истинных позиций прямо описан как sandbox. Поэтому это предложение отдельного честного режима и границ данных, не обвинение текущего sandbox в баге. Возможность видеть всю правду для тестов оставить.

Предложение

  • WorldTruth остаётся в ядре. TeamPicture/IntelSnapshot содержит наблюдаемую позицию/скорость, время измерения, прогноз, неопределённость, источник и классификацию.
  • Боевой UI/командование и AI получают подходящий view, а не весь Sim. Track truth/debug доступен явно включаемым sandbox overlay.
  • Противник знает стартовые разведданные + реально обнаруженные/раскрывшиеся установки. Изменения позиции требуют обновления сведений; план по устаревшей позиции возможен и объясним.
  • Позднее стартовые площадки обнаруживаются по наблюдениям пусков/трасс, а не мгновенно открываются на карте с точными координатами.

Приёмка

Спрятанная/передислоцированная установка не попадает в план противника без источника знания, если выбран честный режим. HUD не выдаёт тип/точную позицию невидимой цели; показывает последнюю отметку с возрастом. Сравнимые seed-сценарии для sandbox и боевого режима; #47/#48 используют тот же view. Настройки сложности задают начальную разведку/качество оценки, не тайные обращения к truth.

Общий порядок и зависимости: архитектурная дорожная карта.

🤖 Filed by Codex, AI-агент Владимира (chexit). Архитектурный проход по `76f680eba64b64eb28435e71ce9f22a84b0e5da1`. ### Текущее поведение После #46 датчики имеют циклы обзора и стареющие tracks; это хорошая основа. Однако `panel.rs::summary` получает raw Sim/все живые drones, показывает скрытые количества/позиции ближайшей угрозы и состояние конкретной цели через truth. Планировщик умного налёта строит cost grid по всем SAM, хотя отдельно уже существует `Intel.revealed`. В коде режим показа истинных позиций прямо описан как sandbox. Поэтому это **предложение отдельного честного режима и границ данных**, не обвинение текущего sandbox в баге. Возможность видеть всю правду для тестов оставить. ### Предложение - `WorldTruth` остаётся в ядре. `TeamPicture/IntelSnapshot` содержит наблюдаемую позицию/скорость, время измерения, прогноз, неопределённость, источник и классификацию. - Боевой UI/командование и AI получают подходящий view, а не весь Sim. Track truth/debug доступен явно включаемым sandbox overlay. - Противник знает стартовые разведданные + реально обнаруженные/раскрывшиеся установки. Изменения позиции требуют обновления сведений; план по устаревшей позиции возможен и объясним. - Позднее стартовые площадки обнаруживаются по наблюдениям пусков/трасс, а не мгновенно открываются на карте с точными координатами. ### Приёмка Спрятанная/передислоцированная установка не попадает в план противника без источника знания, если выбран честный режим. HUD не выдаёт тип/точную позицию невидимой цели; показывает последнюю отметку с возрастом. Сравнимые seed-сценарии для sandbox и боевого режима; #47/#48 используют тот же view. Настройки сложности задают начальную разведку/качество оценки, не тайные обращения к truth. Общий порядок и зависимости: [архитектурная дорожная карта](https://gitea.maoniao.team/chexit/airdef/issues/103).
Author
Owner

🤖 Agent: сделано в https://gitea.maoniao.team/chexit/airdef/commit/1a69376 (запушено в main). AirPicture для панели и радара, умный налёт по радарам и known_units. ObjectsAndSams пока выбирает из всех систем.

🤖 Agent: сделано в https://gitea.maoniao.team/chexit/airdef/commit/1a69376 (запушено в main). AirPicture для панели и радара, умный налёт по радарам и known_units. ObjectsAndSams пока выбирает из всех систем.
Author
Owner

🤖 Agent: Codex — работа Владимира (chexit).

Повторная проверка существующего требования по новому внешнему ревью, на kimi-work ac866d6. Нового дубля не создаю и состояние issue не меняю.

known_units() сохраняет старую наблюдённую точку, но enemy_knows() проверяет только ID (и отдельно считает живую Radar известной): ew.rs. Затем choose_target/маршрутизация фильтруют живые Sam по известности и используют актуальную s.pos (:574–608, :641–655; сетевые РЛС также берутся живыми). radar_strikes (:545–562) напрямую собирает живые Radar. Это разрешение читать новую позицию по старому контакту, а не использование last-known позиции. При этом adapt частично работает со старыми точками — фраза «весь AI всезнающий» неверна.

Сценарий для регрессии: один подходящий SAM, раскрытый в old_pos; затем перенести живой Sam в new_pos без нового reveal и проверить, что known_units всё ещё возвращает old_pos. Сравнить target/cost около старой/новой точки. По текущему пути кода выбирается новая точка; по прежней приёмке честного режима нужна старая оценка до нового наблюдения. Это статически выведенный fixture, отдельно не запускался; игровые способы передислокации/непрерывного раскрытия излучателя требуют проверки.

#107 уже исправляет другую утечку — оценку вражеской ПУ из скрытого начала полёта. Новая #121 — пользовательское выключение излучения. Достоверность существующих intel/старых позиций остаётся здесь.

🤖 Agent: Codex — работа Владимира (chexit). Повторная проверка существующего требования по новому внешнему ревью, на kimi-work `ac866d6`. Нового дубля не создаю и состояние issue не меняю. `known_units()` сохраняет старую наблюдённую точку, но `enemy_knows()` проверяет только ID (и отдельно считает живую Radar известной): [ew.rs](https://gitea.maoniao.team/chexit/airdef/src/commit/ac866d64a092be1c4716ba9f50eab1d4fe1531f2/airdef-mod/src/sim/ew.rs#L137). Затем [choose_target/маршрутизация](https://gitea.maoniao.team/chexit/airdef/src/commit/ac866d64a092be1c4716ba9f50eab1d4fe1531f2/airdef-mod/src/sim/raid.rs#L569) фильтруют живые Sam по известности и используют актуальную `s.pos` (:574–608, :641–655; сетевые РЛС также берутся живыми). `radar_strikes` (:545–562) напрямую собирает живые Radar. Это разрешение читать новую позицию по старому контакту, а не использование last-known позиции. При этом `adapt` частично работает со старыми точками — фраза «весь AI всезнающий» неверна. Сценарий для регрессии: один подходящий SAM, раскрытый в old_pos; затем перенести живой Sam в new_pos без нового reveal и проверить, что known_units всё ещё возвращает old_pos. Сравнить target/cost около старой/новой точки. По текущему пути кода выбирается новая точка; по прежней приёмке честного режима нужна старая оценка до нового наблюдения. Это статически выведенный fixture, отдельно не запускался; игровые способы передислокации/непрерывного раскрытия излучателя требуют проверки. #107 уже исправляет другую утечку — оценку **вражеской ПУ** из скрытого начала полёта. Новая #121 — пользовательское выключение излучения. Достоверность существующих intel/старых позиций остаётся здесь.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: chexit/airdef#93