Примечание: Prepatcher является необязательной зависимостью. Мод отлично работает без него, но несколько функций будут отключены.
Еще один Оптимизатор (YaOpt) - это оптимизационный мод, предназначенный для повышения производительности игры. Он охватывает рендеринг (FPS), тик (TPS), использование VRAM, время загрузки, исправление ошибок и оптимизацию сторонних модификаций.
Функции
Этот мод содержит более десятка подробных элементов оптимизации, все они включены по умолчанию. Вы можете свободно переключать и настраивать их в настройках мода. Основные оптимизации включают в себя:
- Оптимизация функций Vanilla
Не изменяя поведение ванильной игры, он переписывает код с высокой производительностью и исправляет несколько ванильных ошибок, которые вызывают ухудшение производительности или ошибки рендеринга текстур. - Ограниченная многопоточность
Представляет ограниченную многопоточность вычислений. Для совместимости и стабильности многопоточность применяется только к тяжелым вычислениям, которые напрямую не взаимодействуют с игровым миром (например, назначение работы, вычисление пешечных мыслей). Он обеспечивает лучшую совместимость с модами, чем другие многопоточные моды, при этом повышая производительность. - Throttling
Применяет разумное регулирование к некритичным, но чрезвычайно производительным процессам (например, обновление сетки местности, проверка видимости кнопок нижней вкладки и т. д.), чтобы предотвратить ненужное истощение вашего процессора. - Скорость запуска и оптимизация памяти
Оптимизирует алгоритмы для ванильных XML патч-операций и языкового ввода текста. Представляет механизм ленивой загрузки текстур, который сокращает время запуска игры и первоначальное использование VRAM. - Сторонняя оптимизация модов
YaOpt также предоставляет некоторую поддержку оптимизации для нескольких популярных крупных модов. К ним относятся: гуманоидные инопланетные расы, анимация лица, расширенный бой и т. д.
Совместимость
- ✔️Лучше GC: Совместимо.
- ✔️⚠️Butter++: Совместимо, но требует включения режима совместимости в Butter++.
- Расширенный✔️ бой: совместим.
- ✔️DefLoadCache:Совместим.
- ⚠️Более быстрая загрузка игры:может работать вместе, но ленивая загрузка YaOpt не удастся.
- Стабилизатор✔️ FPS: совместим.
- Настройки✔️ графики +: Совместимо.
- Оптимизация✔️ Hard RimWorld: Совместимость.
- Оптимизация тиков✔️ Ideo: совместимость.
- ✔️Image Opt: Совместим, поддерживает ленивую загрузку для формата сжатия ZSTD.
- ✔️Kingfisher: Совместим.
- ✔️MissileGirl / RocketMan: Совместимо.
- ❔MTPawnTicks: Не работает в моей тестовой среде.
- ❔Мультиплеер: Нуждается в тестировании. Теоретически, пока у всех игроков одинаковые настройки оптимизации, он должен работать. Многопоточная оптимизация будет автоматически отключена.
- ✔️Производительность Esmolas: Совместимо.
- ✔️⚠️Performance Fish: частично совместим. Требует отключения некоторых оптимизаций в Performance Fish.
- Оптимизатор✔️ производительности: совместим.
- ✔️Производительность - более низкая скорость тиканья пешки: совместимо.
- ✔️❕Визуальные исключения:когда включена функция Fast Patch Operation, все ошибки XML неправильно приписываются YaOpt.
- ✔️❕While You 're Up + Pick Up And Haul: Just Works™. При включенном Parallel Work Giver существует крошечная вероятность ошибок при перевозке, но это не влияет на игру.
Часто задаваемые вопросы
В: Где этот мод должен быть помещен в порядок загрузки?О: В любом месте. Просто поместите его в любое место после Harmony и позвольте RimSort выполнить автоматическую сортировку.
В: Могу ли я добавить или удалить этот мод в середине сохранения?О: Да. Этот мод совершенно не навязчив в сохранении и может быть безопасно добавлен или удален из текущего прохождения в любое время.
В: Нужно ли настраивать настройки самостоятельно после подписки?A: Если у вас установлены Butter++ или Performance Fish, при первом запуске YaOpt необходимо нажать кнопку «Исправить совместимость» в меню настроек. Все параметры оптимизации (кроме агрессивной отложенной загрузки) включены по умолчанию.
В: Как насчет Performance Fish?О: Несколько элементов оптимизации перекрываются/конфликтуют. YaOpt автоматически обнаружит проблемы совместимости при запуске и выведет руководство в консоли, чтобы помочь вам решить их.
В: Почему такое название?А: «Ещё один» — это мем в разработке программного обеспечения (особенно в разработке программного обеспечения с открытым исходным кодом). Я всегда считал, что программное обеспечение с таким названием довольно впечатляет, потому что его разработчики осмеливаются выпустить похожий продукт, когда на рынке уже много подобных продуктов, и дают ему игривое и необычное название — значит, они настоящие мастера. Конечно, учитывая недавний взрыв оптимизационных модов за последние два месяца, это название, похоже, стало самоисполняющимся пророчеством...
В: Вы когда-нибудь использовали ИИ?A:
Sure thing! Your observation is very keen! Let's delve into the details. Here's what you need to know: AI was mainly used for writing documentation and build scripts, generating the cover art, and chatting with me. Only about 5% of the code was written by AI (mostly math calculations in Burst. Kick my ass for my bad math), and all of it has been human-reviewed and tested.
В: Вы когда-нибудь заглядывали в код других модов?A: Только при создании патчей совместимости для них.
В: Действительно ли это работает?A: Все сохраненные оптимизации прошли тестирование производительности. Я случайно создал «негативные оптимизации» во время разработки, и они были в конечном итоге удалены.
В: Насколько он совместим с другими модами?О: Несмотря на то, что он был протестирован со многими часто используемыми модами, ошибки совместимости все еще могут существовать. Большинство проблем связано с многопоточностью. В то время как YaOpt ограничивает многопоточность частями, которые напрямую не взаимодействуют с игровым миром, некоторый код, естественно, не является потокобезопасным. Это понятно, поскольку RimWorld изначально является однопоточной архитектурой, и разумно не учитывать многопоточность при разработке. Единственное решение - это обратная связь с игроком и активное исправление ошибок.
В: Я столкнулся с ошибкой, ее можно избежать, отключив некоторые оптимизации?О: Большинство проблем совместимости связаны с многопоточностью. При устранении неполадок вы можете попробовать следующее: отключить Parallel Work Giver, отключить Parallel Thought Update - отключить все оптимизации с суффиксом [MT].
В: Чем он лучше других оптимизационных модов?О: Он предназначен для дополнения и сосуществования с другими модами, а не для их замены. Во время разработки я предполагал, что Performance Optimizer и RocketMan (теперь это MissileGirl) всегда присутствовали, поэтому я избегал трогать вещи, которые эти моды уже оптимизируют.
В: Тогда почему некоторые функции пересекаются с другими модами?О: Потому что, когда я писал эти функции, никто их еще не делал. Этот мод долго откладывался в процессе разработки. Его самой первой особенностью было исправление задержки, вызванной отсутствием движка grav на карте — проблема, которая даже была исправлена официальными разработчиками.
В: Почему так много противоречивых оптимизаций с помощью Performance Fish?A: Потому что большую часть своего времени разработки я думал, что это остановило разработку, как RimThreaded.
В: Почему так долго?О: Пристрастие к чату AI RP.
В: Зачем прекращать откладывать?О: Спасибо Google за блокировку моего аккаунта.
Кредиты:
Обложка: Создано Grok
Иконки: Создано Nano Banana
Vibe Tool: OpenCode
Сторонние библиотеки: Harmony, Prepatcher, ZstdSharp
Инструменты профилирования производительности: Анализатор производительности Dubs, Ultra, PerfView, Heap Explorer
AI: Gemini 2.5 для общения с AI RP, Gemini 3.1 для кодирования вибраций.
Также использовались другие LLM, такие как DeepSeek, Google AI (возможно, Gemma или Gemini Flash) в Интернете.
Thanks to BVVD for making several boring events that helped me escape from War Thunder.
Источник:
YaOpt является открытым исходным кодом по лицензии MIT.
Исходный код:
GitHub