Речь не про «ИИ играет за тебя». Речь про ассистента, который пишет и правит скрипты kOS прямо в папке игры, читает твой сейв и разбирает телеметрию после полёта. Летишь всё равно ты — но черновик кода, расчёты и разбор ошибок можно отдать.
Работает это с любым ассистентом, у которого есть доступ к файловой системе (Claude Code, Codex, OpenCode и подобные). Обычный чат в браузере тоже сгодится, просто скрипты придётся копировать руками. Как подключить конкретный инструмент, что положить в файл контекста и какие права выдать — в Подключаем ИИ-агентов; здесь дальше про то, как с ним работать.
Что ассистент реально может
| Может | Как это выглядит |
|---|---|
Писать .ks прямо в игру |
Файл появляется в <KSP>/Ships/Script/, ты запускаешь RUNPATH("0:/ascent.ks") |
| Знать твой аппарат | Читает saves/<имя>/persistent.sfs: детали, ступени, орбиты, ресурсы |
| Разбирать полёт | Читает CSV из Телеметрия: разбирать полёт по числам и говорит, на какой секунде что пошло не так |
| Читать логи игры | KSP.log, Logs/ModuleManager/ — видит ошибки модов, а не только твои |
| Искать по конфигам | GameData/ — точные диапазоны приборов и дальности антенн, а не «как в ваниле» |
| Считать | Δv, фазовые углы, периоды орбит, азимут под наклонение — обычная математика |
| Рефакторить | Собрать твои десять скриптов в библиотеку функций (kOS: продвинутое) |
Чего не может
- Летать. Игру запускаешь ты, kOS исполняется внутри игры. Кнопки ассистент не жмёт.
- Проверить скрипт до запуска. Синтаксис он сверяет статически; поведение — только по факту прогона.
- Реагировать в реальном времени. Между «скрипт запущен» и «файл лога прочитан» ассистента в контуре нет.
- Гарантировать первый прогон. Нормальная практика — две-три итерации. Планируй это заранее.
Рабочий цикл
1. Ты формулируешь задачу → «вывести спутник на 120 км, наклонение 0°»
2. Ассистент читает сейв → видит ракету, ступени, тягу
3. Пишет скрипт в Ships/Script → ascent.ks + логгер телеметрии
4. Ты читаешь скрипт → ОБЯЗАТЕЛЬНО: понимаешь, что он делает
5. Быстрое сохранение → F5
6. Запуск в терминале → RUNPATH("0:/ascent.ks")
7. Полёт удался или нет → в обоих случаях остаётся CSV
8. Ассистент читает CSV → «разворот начат на 12 секунд раньше, апоцентр перелетел»
9. Правка → шаг 5 → обычно хватает двух кругов
Ключ ко всему циклу — шаг 7: лог остаётся в любом случае. Даже разбитая ракета оставляет числа, по которым видно причину.
Сценарии: как и когда
1. Серия однотипных спутников
Когда: контракты созвездий требуют 3–6 аппаратов на одинаковых орбитах. Что просить: скрипт с параметрами наверху файла (высота, наклонение, номер аппарата) — один файл на всю серию. Почему выигрывает: руками попасть шесть раз в одну орбиту почти невозможно, а расхождение ломает геометрию сети (Созвездия и покрытие).
2. Точная орбита под контракт
Когда: заказ проверяет апоцентр, перицентр, наклонение и эксцентриситет в узком коридоре. Что просить: довыведение с проверкой условий и мелкими коррекциями, пока параметры не попадут в допуск. Дай ассистенту: точные требования из окна контракта — он превратит их в условия выхода из цикла.
3. «Почему не хватило Δv»
Когда: аппарат стабильно не долетает, а на бумаге запас есть. Что просить: разбор CSV — где потери. Обычно вылезает слишком крутой или слишком поздний разворот, лишнее сопротивление, работа двигателя не в том режиме. Почему это сильная сторона: машина сравнивает сотни строк, а не помнит «вроде нормально шло».
4. Перенос ручного профиля в скрипт
Когда: ты уже летаешь по своей схеме и хочешь её зафиксировать. Что просить: «я делаю так: вертикально до 80 м/с, наклон 5° на каждые 1000 м, апоцентр 95 км» — на выходе скрипт ровно с твоей логикой, а не с чужой.
5. Библиотека под свой стиль
Когда: скриптов стало больше пяти и в них копипаст.
Что просить: вынести общие куски в lib_*.ks (прожиг узла, ожидание апоцентра, логирование) и переписать остальные через них.
6. Посадка с повторяемым результатом
Когда: садишься на Муну регулярно и надоело угадывать момент торможения. Что просить: скрипт с релейной тягой по радарной высоте и вертикальной скорости; обязательно с порогом аварийного прерывания.
7. Когда НЕ стоит
- Первый полёт куда-либо. Сначала руками — иначе ты не поймёшь, верно ли работает скрипт.
- Уникальный трюк на один раз: гравиманёвр, спасательная операция. Дешевле сделать вручную.
- Реальное время. Если нужно среагировать «сейчас» — это либо MechJeb, либо твои руки.
Как ставить задачу
Плохо: «напиши скрипт для запуска». Хорошо — сообщи пять вещей:
- Цель в числах. «Круговая орбита 120 км, наклонение 0°, отклонение не больше 2 км».
- Аппарат. Сколько ступеней, тип двигателей, стартовый TWR, есть ли RCS. Или просто: «посмотри в сейве, аппарат называется так-то».
- Ограничения. «Без MechJeb», «топливо впритык», «связь только над КЦК».
- Что уже пробовал и чем закончилось — сильно сокращает круги.
- Куда писать файл. Обычно
Ships/Script/, имя по задаче.
Полезная привычка: просить сразу логгер вместе со скриптом. Тогда после первого же прогона есть, что разбирать.
Безопасность
- Быстрое сохранение перед каждым прогоном. Всегда. Скрипт может увести аппарат в грунт молча.
- Читай скрипт перед запуском. Не ради недоверия, а чтобы понимать, что должно произойти — иначе не заметишь, когда пойдёт не так.
- Пороги прерывания в самом коде. Полезные: не давать тангажу уходить ниже горизонта, глушить двигатель при вертикальной скорости вниз на подъёме, выходить из цикла по таймауту.
- Обкатывай на дешёвом аппарате. Не на корабле с четырьмя кербалами и научным грузом.
- Отдельный сейв для экспериментов — если хочется гонять скрипты без последствий для карьеры.
Что стоит отдать ассистенту, а что бессмысленно
| Отдать | Смысла нет |
|---|---|
| Файл телеметрии (CSV) | Скриншот терминала — числа с картинки читаются хуже |
| Путь к сейву | Пересказ по памяти «там вроде две ступени» |
| Точный текст ошибки kOS | «Он ругнулся и всё» |
| Требования контракта дословно | «Надо на орбиту повыше» |
Трезвые ожидания
Ассистент отлично пишет скучный код: циклы, проверки, математику, логирование, рефакторинг. Он плохо угадывает физику твоей конкретной ракеты — асимметричную тягу, странную аэродинамику, поведение на грани TWR. Поэтому нормальный результат выглядит так: первый прогон выявляет расхождение, второй его чинит, третий уже рабочий и уходит в библиотеку.
И главное правило из Когда автоматизировать, а когда лететь руками остаётся в силе: скрипт, который ты не можешь прочитать, — это не автоматизация, а лотерея. Ассистент ускоряет написание, но ответственность за то, что полетит, остаётся на тебе.