Примечание: Prepatcher является опциональной зависимостью. Мод работает и без него, но некоторые функции будут отключены.
Yet another Optimizer (YaOpt) — это мод для оптимизации, посвященный улучшению производительности игры. Он охватывает рендеринг (FPS), тики (TPS), использование VRAM, время загрузки, исправление багов из коробки и оптимизацию сторонних модов.
Функции
В этом моде содержится более десятка подробных пунктов оптимизации, все включены по умолчанию. Вы можете свободно включать и настраивать их в настройках мода. Основные оптимизации включают:
- Оптимация стандартных функций
Не изменяя поведение игры из коробки, он переписывает ресурсоемкий стандартный код и исправляет несколько стандартных ошибок, которые приводят к снижению производительности или ошибкам рендеринга текстур. - Ограниченная многопоточность
Вводит ограниченные вычисления с использованием многопоточности. Для совместимости и стабильности многопоточность применяется только к ресурсоемким расчетам, которые не взаимодействуют напрямую с игровым миром (например, назначение работы, расчет мыслей колониста). Он обеспечивает лучшую совместимость с модами, чем другие многопоточные моды, одновременно повышая производительность. - Дросселирование
Применяет разумное дросселирование к некритичным, но чрезвычайно ресурсоемким процессам (например, обновление сетки рельефа, проверка видимости кнопок нижней вкладки и т.д.), чтобы они не бесполезно нагружали ваш процессор. - Оптимизация скорости запуска и памяти
Оптимизирует алгоритмы для стандартных операций XML-патчинга и инъекции языковых текстов. Вводит механизм ленивой загрузки текстур, что сокращает время запуска игры и начальное использование VRAM. - Оптимизация сторонних модов
YaOpt также предоставляет некоторую поддержку оптимизации для нескольких популярных крупных модов. В их число входят: Humanoid Alien Races, Facial Animation, Combat Extended и т.д.
Совместимость
- ✔️Better GC: Совместим.
- ✔️⚠️Butter++: Совместим, но требует включения режима совместимости в Butter++.
- ✔️Combat Extended: Совместим.
- ✔️DefLoadCache:Совместим.
- ⚠️Faster Game Loading:Может работать вместе, но ленивая загрузка YaOpt не будет работать.
- ✔️FPS Stabilizer: Совместим.
- ✔️Graphics Settings+: Совместим.
- ✔️Hard RimWorld Optimization: Совместим.
- ✔️Ideo Tick Optimization: Совместим.
- ✔️Image Opt: Совместим, поддерживает ленивую загрузку для формата сжатия ZSTD.
- ✔️Kingfisher: Совместим.
- ✔️MissileGirl / RocketMan: Совместим.
- ❔MTPawnTicks: Не работает в моей тестовой среде.
- ❔Multiplayer: Требуется тестирование. Теоретически, если у всех игроков одинаковые настройки оптимизации, должно работать. Оптимизации с многопоточностью будут автоматически отключены.
- ✔️Performance Esmolas: Совместим.
- ✔️⚠️Performance Fish: Частично совместим. Требуется отключить некоторые оптимизации в Performance Fish.
- ✔️Performance Optimizer: Совместим.
- ✔️Performance - Slower Pawn Tick Rate: Совместим.
- ✔️❕Visual Exceptions:При включенной быстрой операции патчинга все ошибки XML некорректно приписываются YaOpt.
- ✔️❕While You're Up + Pick Up And Haul: Просто работает™. При включенном Parallel Work Giver есть微小ная вероятность ошибок при переносе вещей, но это не влияет на игру.
Часто задаваемые вопросы
Q: На каком месте должен находиться этот мод в порядке загрузки?A: В любом месте. Просто разместите его где угодно после Harmony, и RimSort позаботится об автоматической сортировке.
Q: Можно ли добавлять или удалять этот мод во время сохранения?A: Да. Этот мод абсолютно не влияет на сохранения, и его можно безопасно добавлять или удалять в любой момент во время прохождения.
Q: Нужно ли мне настраивать параметры самостоятельно после подписки?A: Если у вас установлен Butter++ или Performance Fish, вам нужно нажать кнопку «Исправить совместимость» в меню настроек YaOpt при первом запуске. Все параметры оптимизации (кроме Aggressive Lazy Loading) включены по умолчанию.
Q: А что насчет Performance Fish?A: Несколько пунктов оптимизации пересекаются/конфликтуют. YaOpt автоматически обнаружит проблемы совместимости при запуске и выведет руководство в консоли, чтобы помочь вам их решить.
Q: Почему такое название?A: «Yet another» (еще один) — это мем в программной инженерии (особенно в открытом программном обеспечении). Я всегда думал, что программное обеспечение с таким названием довольно впечатляет, потому что его разработчики осмеливаются выпускать похожий продукт, когда на рынке уже существует множество подобных продуктов, и дают ему игривое и странное название — они должны быть очень умелыми. Конечно, учитывая недавний взрывной рост модов для оптимации за последние два месяца, это название, кажется, стало самосбывающимся пророчеством…
Q: Ты когда-нибудь использовал ИИ?A:
Конечно! Ваше наблюдение очень проницательно! Давайте рассмотрим это подробнее. Вот что вам нужно знать: ИИ в основном использовался для написания документации и скриптов сборки, генерации обложки и общения со мной. Только около 5% кода было написано с помощью ИИ (в основном математические расчеты в Burst. Пинайте меня за мою плохую математику), и все это было проверено и протестировано человеком.
Q: Ты когда-нибудь заглядывал в код других модов?A: Только при создании патчей совместимости для них.
Q: Это действительно работает?A: Все сохраненные оптимизации прошли тестирование на производительность. Во время разработки я случайно создал «негативные оптимизации», которые в итоге были удалены.
Q: Насколько он совместим с другими модами?A: Хотя он тестировался со многими commonly используемыми модами, ошибки совместимости все еще могут существовать. Большинство проблем связаны с многопоточностью. Хотя YaOpt ограничивает многопоточность частями, которые не взаимодействуют напрямую с игровым миром, некоторый код по своей природе не является потокобезопасным. Это понятно, поскольку RimWorld изначально имеет однопоточную архитектуру, и во время разработки не было необходимости учитывать многопоточность. Единственное решение — это обратная связь от игроков и активное исправление ошибок.
Q: Я столкнулся с ошибкой, можно ли ее избежать, отключив некоторые оптимизации?A: Большинство проблем совместимости сосредоточены в многопоточности. При устранении неполадок вы можете попробовать следующее по порядку: отключить Parallel Work Giver, отключить Parallel Thought Update — отключить все оптимизации с суффиксом [MT].
Q: Он лучше других модов для оптимизации?A: Он разработан так, чтобы дополнять и сосуществовать с другими модами, а не заменять их. Во время разработки я предполагал, что Performance Optimizer и RocketMan (теперь это MissileGirl) всегда присутствуют, поэтому я избегал затрагивать то, что эти моды уже оптимизировали.
Q: Тогда почему некоторые функции пересекаются с другими модами?A: Потому что, когда я писал эти функции, никто еще этого не сделал. Этот мод долго задерживался в разработке. Его первой функцией было исправление лагов, вызванных отсутствием гравидвижителя на карте — проблема, которую даже устранили официальные разработчики.
Q: Почему так много конфликтующих оптимизаций с Performance Fish?A: Потому что большую время разработки я думал, что его развитие прекратилось, как у RimThreaded.
Q: Почему задержка так долго?A: Зависимость от AI RP чата.
Q: Почему перестал откладывать?A: Спасибо Google за бан моего аккаунта.
Авторство:
Обложка: Сгенерировано Grok
Иконки: Сгенерировано Nano Banana
Инструмент Vibe: OpenCode
Сторонние библиотеки: Harmony, Prepatcher, ZstdSharp
Инструменты профилирования производительности: Dubs Performance Analyzer, Ultra, PerfView, Heap Explorer
ИИ: Gemini 2.5 для AI RP чата, Gemini 3.1 для vibe кодинга.
Также использовались другие LLM, такие как DeepSeek, Google AI (возможно, Gemma или Gemini Flash) в сети.
Спасибо BVVD за создание нескольких скучных событий, которые помогли мне сбежать из War Thunder.Источник:
YaOpt является открытым исходным кодом под лицензией MIT.
Исходный код:
GitHub