RimWorld

RimWorld

377 ratings
Оптимизация Rimworld. По-взрослому.
By Dragonling and 1 collaborators
Rimworld – удивительно неоптимизированная в своём классе игра. Особенно для тех, кто играл в Factorio. В принципе, ванильная версия работает приемлемо. Проблемы начинаются, когда вы устанавливаете сотню-другую модов и пытаетесь включить четвёртую скорость. Давайте что-нибудь с этим сделаем.
9
2
14
5
3
5
2
3
2
   
Award
Favorite
Favorited
Unfavorite
1. Вступление и теория
Rimworld – удивительно неоптимизированная в своём классе игра. Особенно для тех, кто играл в Factorio. В принципе, ванильная версия работает приемлемо. Проблемы начинаются, когда вы устанавливаете сотню-другую модов и пытаетесь включить четвёртую скорость. Давайте что-нибудь с этим сделаем.

Сразу говорю, что измерять производительность «на глаз» - идея так себе. Это как оптимизировать windows – вроде что-то отключил, а профессионалы почему-то ухмыляются.
Определять фактическую производительность Rimworld можно по показателю ticks per second (тиков в секунду, далее — TPS), то есть пересчётов состояний игры в секунду. Отображение можно включить модом; вариантов несколько, но поставьте Dubs Performance Analyzer, он нам ещё понадобится.

Теперь даём определение «тормозам». Игра считается тормозящей, если текущее значение TPS существенно меньше номинального для данной скорости, из числа скоростей, предусмотренных игрой.

Номинальная скорость игры составляет 60TPS, вторая скорость в три раза быстрее – 180TPS, третья скорость в шесть раз быстрее – 360TPS. Моды на четвёртую скорость пытаются попросить игру считать ещё быстрее, например Easy Speed заказывает 900TPS.
Таким образом, если на третьей скорости у вас только 200TPS, то это надо лечить. Если на четвёртой скорости у вас только 400TPS – вам никто и не обещал, что игра будет тянуть больше 360TPS.

Не надо путать TPS и FPS (frames per second, кадры в секунду). FPS – это частота обновления экрана. Скажем, игра может считать 900 TPS, но с провалом FPS до 10 с номинальных 60. Если вам при этом ещё комфортно играть — то провал FPS вовсе не плох.

Нужно понимать, что каждая мера МОЖЕТ, а может и НЕ помочь в вашем конкретном случае. Поэтому, воспользовавшись советом, сразу смотрите — дал ли совет эффект. Не пользуйтесь советом, если вы не понимаете, как откатить изменения от этого совета обратно.

Этот гайд не учитывает такие "внешние" решения как убрать пыль с радиаторов, перевести ноутбук в режим высокой производительности, взять качественный блок питания, удалить вирусы и прочий хлам и т.д.
Более того, вполне возможна ситуация, когда процессор, память и диск задействованы не на 100%, а игра всё равно тормозит. Да, так бывает. Например, потому, что из-за некачественного кода игры обрабатываемые данные не попадают в кэш процессора, и время тратится на обмен между кэшем процессора и оперативной памятью - а это ничем не измерить. И лечится это только удалением лишних модов.
2. Привязка к ядру процессора (для windows)
Rimworld – игра с точки зрения центрального процессора однопоточная (на самом деле весьма многопоточная, но у неё это получается плохо). Это значит, что по факту большую часть времени она использует только одно ядро вашего мегакрутого процессора, и больше пользы принесёт бОльшая частота процессора, чем большее количество ядер. Однако windows – штука умная, иногда излишне умная, и она пытается хотя бы часть операций игры сделать параллельно на разных ядрах. К сожалению, это имеет накладные расходы, которые по-умному называются «переключение контекста». Таким образом, привязав игру к меньшему числу ядер, мы можем получить некоторый прирост производительности, особенно в загруженной другими задачами системе (стриминг).

При запущенной игре вызываем диспетчер задач (CTRL+SHIFT+ESC), вкладка Подробности, находим процесс RimworldWin64.exe, правой мышкой по нему, в контекстном меню выбираем Задать сходство (Set affinity), и уменьшаем число выбранных ядер постепенно до тех пор, пока это имеет положительный эффект (например, у автора это 3 ядра из 4 имеющихся; 2 ядра не делает лучше по сравнению с 3, а вот 1 ядро уже даёт просадку TPS).
Эффект может оказать в том числе привязка к несмежным ядрам (например, 0, 2, 4...), так как смежные ядра ИНОГДА являются только логическими, а не физическими.
К сожалению, это нужно делать каждый раз заново при запуске игры.
3. Графика (видеокарта, текстуры)
3.1 Игра очень вяло использует графический процессор. Если у вас совсем слабый видеоускоритель (ноутбук со встроенной видеокартой), и дело именно в нём, то можно покопаться в настройках драйвера вашей видеокарты (например, в Панели управления Nvidia) и, согласно подсказкам, выставить всё на максимальную производительность. Но в большинстве случаев хоть какой-то эффект дадут только настройки увеличения очереди кадров (Заранее подготовленные кадры — 4, Режим низкой задержки — Выкл., и тому подобные), смысл которых в том, чтобы сократить накладные расходы процессора на общение с видеокартой.

3.2 Практически у всех стримеров видел моды на повышение разрешения графики (например, Pawn Render Patch for HD). Это — качественный такой источник тормозов (да если ещё с дополнительной анимацией вроде Facial animation или Gunplay...).
Кроме того, если у вас ограничена видеопамять компьютера (скажем, 1 и менее гигабайт), то графические паки высокого разрешения — верный способ забить видеопамять и заставить компьютер постоянно подтормаживать, обращаясь к оперативке и жёсткому диску. Единственный на моей памяти мод с текстурами, который заявлен, как уменьшающий тормоза - HD Terrain Texture Pack (patched). Если есть возможность убрать моды с ретекстурами высокого разрешения — убираем.

3.3 Rimworld пытается готовить видеокадры под каждое обновление экрана вашего монитора. По-умному это называется «Вертикальная синхронизация». Если мощности хватает, то это делает поток кадров очень отзывчивым к управлению, что важно во всяких там шутерах. В Rimworld это делает скроллинг экрана плавным. А вот если мощности не хватает (а зачем иначе вы читаете этот гайд?), то это ложится дополнительными накладными расходами на процессор, особенно если у вас монитор 100Гц+.
Чтобы отключить вертикальную синхронизацию, установите мод Frame Rate Control (на данный момент не работает под OSX). Чтобы процессор не занимался расчётами видеокадров в ущерб TPS, ограничьте максимальный FPS в настройках мода (в районе 30 будет нормально).
Однако буду честен: в среде профессиональных оптимизаторов (к которым автор не относится) у этого мода не лучшая репутация. Эффект от мода может быть неоднозначен: скажем, в меню курсор перестанет двигаться рывками, но в игре TPS упадёт.
В принципе, ограничить FPS и отключить VSYNC можно также и в настройках драйвера видеокарты. Автор этого гайда не использует Frame Rate Control и обходится установкой Адаптивного режима вертикальной синхронизации в настройках Nvidia control panel.

3.4 Есть такой популярный мод Graphics settings+ (он же Graphics Settings - Redefine RimWorld и Graphics Setter). Хороший, без шуток, мод; если не стоит, ставьте, сейчас пристроим к делу.

3.4.1 У кого GS+ уже стоит - как я понимаю, все повелись на обещание «общее улучшение текстур в модах». Загрузите игру, в главном меню игры идите в появившийся раздел Graphics Settings.

Что такое Mip-Mapping? Это такая штука, которая позволяет ускорить отрисовку картинок (под картинкой я имею в виду спрайт, изображение одного предмета), если разрешение картинки равно разрешению экрана. В рамках этого гайда данная фишка, несомненно, идёт в плюс.

Проблема в том, что моду приходится заготовить одну и ту же картинку в разных разрешениях для разного уровня приближения (а тормозной мод Camera+ у вас ведь тоже стоит, да? =)). Количество таких запасных картинок на разные случаи жизни определяется параметром Anisotropic Filter Level. А если готовой картинки под данное приближение всё же нет, то её считают налету, и качество (читай: сложность) расчётов определяется значением MipMap Bias. Так воооот… Количество запасных картинок уже при значении 4 увеличивает потребление памяти под картинки на треть, а при низких значениях Filter Level эта технология особо не помогает.

Какой вывод? Выставляйте Filter Level в 9.
MipMap Bias в общем случае несущественно нагружает видеокарту, но, если вы бьётесь за каждый тик, то выставляйте в 0 (а если вам не принципиально небольшое размытие при увеличении — то в 0.25). Если же у вас старый ноут с малым количеством памяти — отключайте нафиг опцию Activate Mip-Mapping.

3.4.2 А вот что большинство, уверен, упустили в моде Graphics Settings+ (и зачем этот мод нужен при отключённом Mip-Mapping), так это то, что он умеет загружать из модов текстуры в формате .DDS, если они в моде есть.
В отличие от общепринятого .jpg эти текстуры не требуют времени на декодирование процессором (они аппаратно декодируются на видеокарте), что немного повышает производительность, если проблема в процессоре (а заодно снижает время загрузки раза этак в 2, уменьшает потребление видеопамяти и повышает резкость этих текстур).
...Но только если текстуры .dds в моде есть… А они есть? Что сделать, чтобы они были?

Тут нам поможет классный инструмент RimPY, который, кстати, является менеджером модов и базой для автоматического выставления порядка загрузки. Некоторые также оценят возможность скачивать моды и коллекции прямо со Steam, но с этим - в соседний гайд.

3.4.2.1. Отключайте мод ModManager от Fluffy и ModSwitch, если у вас есть. Он больше не понадобится.

3.4.2.2. Подписывайтесь на базу данных для Rimpy — мод “RimPy Mod Manager Database” (активировать его не нужно - смысла нет, а в логе появится лишняя ошибка).

3.4.2.3. Качайте, распаковыйте и запускайте непосредственно инструмент RimPY с Гитхаба[github.com]

3.4.2.4. Убедитесь, что пути к игре и модам подхватились успешно. При необходимости пропишите правильные.

3.4.2.5. Отсортируйте моды нажатием кнопки Sort и сохраните очередь кнопкой Save.

Теперь займёмся непосредственно формированием текстур .dds
3.4.2.6. Нажимайте кнопку Optimize tex. В появившемся окне выбираем активные моды кнопкой Select Active. Уточняем что нужно только добавить новые текстуры, поставив галку Convert new textures only. Кодировщик определяется вкладкой B7enc Compressor: тот, который CPU – точно работает, а тот, который GPU – если заработает, то сделает результат получше, а закончит быстрее. Запускаем процесс кнопкой Convert textures (да, это долго; если прогресс-бар не появился — выбирайте кодировщик CPU и запускайте заново).

3.4.2.7 Возносим хвалу Паладину (русскоязычному автору RimPY) и Bradson-у (автору части с перекодировкой текстур).

3.4.3 В настройках мода GS+ есть и вторая вкладка, на которой можно посмотреть расход видеопамяти. Всё, что в видеопамять не влезло, будет тормозить на обмене между оперативной памятью и видеопамятью.
3. Графика (освещение, оверлеи, motes)
3.5 В соседнем гайде есть предложение отключать отображение теней и динамическое освещение через режим разработчика, если всё совсем плохо. Не пробовал, но, вроде, логично. Более того, если вы ставите моды, влияющие на освещение, то это весьма сильно подъедает TPS, поскольку динамическое освещение каждого предмета пересчитывает таблицу освещения по всей карте каждый тик. И нет, это не только светящиеся предметы - мод Don't block door light тоже про это.
Для отключения теней есть ещё мод No Shadows.
Также в соседнем гайде есть предложение отключать для игры оверлей Steam - но вот тут у меня сомнения, что это поможет.

3.6 В настройках игры можно отключить раскачивание растений. Прирост производительности есть, но минимальный.

3.7 Если у вас много одновременно спящих колонистов, животных или, скажем, жуков, имеет смысл отключить всплывающие Zzz. Это, внезапно, полноценные объекты, а не просто картинки, поэтому их спавн-деспавн неожиданно медленнее, чем мог бы быть. Воспользуйтесь модом No ZzZ. В целом этот вид уведомлений называется motes.

3.8 Дополнительные слои (оверлеи) с разметкой (крыши, плодородность почвы, размеры пачек и т.п.) заметно влияют на TPS. Лучше использовать не дольше, чем необходимо. Оверлеи с цифрами и именами персонажей можно временно отключать либо модом Toggleable Overlays, либо в настройках мода Camera+, если вы его используете.
4. Размеры карт
Во время игры не выставляйте карты бешеных размеров. Очень много расчётов делаются каждый тик для всей карты. Соответственно, просадка производительности пропорциональна размеру карт нелинейно.

Да и вообще несколько поселений — зло. Чтоб вы понимали, насколько зло: если уйти из единственного поселения и удалить его модом Directly Abandon Settlement, то TPS вырастает до 5000. Так что вовсе не зря в настройках Rimworld есть лимит на поселения игрока.
Если у вас битва во втором поселении или, скажем, у каравана, можно временно выгрузить (заморозить) главную колонию модом Faction Manager

Также в самой игре есть предупреждение, что при выборе карт типоразмера "Большие" будут проблемы как с модами, так и с производительностью.

Размер планеты сам по себе почти ни на что не влияет. А вот количество фракций помноженное на "плотность населения" напрямую влияют на производительность, особенно если у вас есть моды на взаимодействие между фракциями, вроде RimWar и RimCities.
5. Моды на производительность
(обновлено по обратной связи пользователя The Surprise)
5.1 RimThreaded
Не путать с его экспериментальной веткой [RT] RimThreaded (Experimental).
Мод, который должен был стать крайне мощным, идея которого заключается в том, чтобы улучшить параллельные расчёты игры на многоядерных процессорах (то есть сделать прямую противоположность совету 2 выше). Это непростая задача - постоянно вылезают проблемы с совместимостью. Тем не менее на январь 2022 года мод находится в активной доработке. Пока что из-за проблем с совместимостью результат спорный - прирост TPS может достигаться игнорированием ошибок из дочерних потоков, что в конечном итоге может привести к битому сохранению.

Перед установкой необходимо изучить находящиеся в работе в данный момент баги[github.com] и несовместимые моды.
Мод должен быть последним в очереди загрузки. Команда RimThreaded рекомендует использовать RimPY (см. выше) для проверки совместимости и выставления порядка загрузки. После входа в игру необходимо настроить количество потоков. Ниже в настройках мода можно увидеть перечень модов, с которыми возможна несовместимость.
ВНИМАНИЕ: после каждого обновления мода необходимо удалять папку Caches в папке \steamapps\workshop\content\294100\2222907981\1.3\Assemblies\Caches вашей библиотеки Steam.

Этот мод несовместим с остальными модами из данного раздела. Остальные моды (кроме RWP) работают совместно.

5.2 Rim73 - Performance and Optimisations
Мод имеет ряд проблем с совместимостью. В настройках мода оставляем включённым только Mindstate optimizations. Загружать в числе последних.

5.3 Performance Optimizer
Загружать в числе последних. Настройки оставляем по умолчанию.
Все элементы интерфейса в игре работают со скрипом, поэтому, если вы не пользуетесь какими-то элементами интерфейса (например, уведомлениями справа и кнопками справа внизу) тут их можно скрыть в целях повышения производительности, потыкав в раздел UI Settings. Это не отключение - скрытое появляется при наведении мышки в соответствующую область.

5.4 RocketMan - Performance Mod
На сегодня - лидер по совместимости и эффективности. В очереди загрузки должен идти строго последним.

ВНИМАНИЕ: при добавлении или удалении модов, а также при начале новой игры необходимо КАЖДЫЙ РАЗ в настройках мода в разделе «Настройки кэширования статистик» ставить галку «Адаптивный режим».

5.5 RuntimeGC [1.3]
Вообще, мод, скорее, поддерживает штаны тем модам, которые не изволят за собой чистить память. По-хорошему, он не нужен, но если вы никак не согласны избавляться от кривых модов, то придётся время от времени использовать RuntimeGC.
5.5.1 В настройках:
5.5.1.1 снимаем галку на Архивировать результат очистки мировых персонажей
5.5.1.2 можно попробовать выставить все галки в разделе Автоочистка (но имейте в виду: в предыдущей версии были проблемы с ошибочным удалением персонажей, относящихся к квестам - может снова сломаться при очередном обновлении игры). Если вы используете моды на изменение размеров пачек (стаков) снимите галку Очищать кэшированные DefPackage'ы.
5.5.2 Во время ДЛИТЕЛЬНОЙ игры (порядка игрового года) для небольшого облегчения можно вызывать (кнопка мода появится на панели команд внизу) опции:
5.5.2.1 Очистка Мировые персонажи
5.5.2.2 Больше очистки — и там по обстоятельствам

5.6 Dubs Performance Analyzer
Основная суть мода - всё же анализ, но кое-какие оптимизации он предлагает.
В настройках мода не ставьте галку Optimize pawn labels, если используете мод Camera+. Также снимите галку Optimize deep drills, если используете мод Predictable Deep Drills.
В настройках мода есть опция на подчистку останков фракций и зон, если вы удалили какие-то моды в середине игры. Второе вам может помочь, если у вас после удаления какого-то мода появился серый экран, или вы в ходе игры удалили Hospitality.

5.7 RWP[github.com]
Экспериментальный мод. На сегодня есть проблемы, ставить преждевременно. Оставляю для истории.

5.8 Performance Fish
Развивающийся мод обитает в канале #fixlist discord-сервера Dubs Mods ( https://discord.gg/bajcjsu ). Уже хорош, надо брать.
Порядок установки - после Harmony и BetterLoading, но до Dubs Performance Analyzer.
ВНИМАНИЕ: при обновлении версии необходимо удалить конфигурацию Mod_Performance Fish_PerformanceFishMod.xml в %userprofile%\AppData\LocalLow\Ludeon Studios\RimWorld by Ludeon Studeos\Config\
6. Удалите лишние моды
6.1 Удалите моды с дублирующимся функционалом. Например, вы заглядывали в настройки популярного мода TD Enhancement pack? Я модов 7 удалил, когда понял, что всё это уже реализовано в TDEP (не то, чтобы TDEP был образцом оптимизации). Примерно тех же масштабов зачистка была после внимательного изучения настроек Niilo's QoL.

Разберитесь в возможностях таких популярных крупных интегрированных модов как Allow tools, Animals Logic, CM Color Сoded Mood Bar или Colony Groups, Common Sense, Dubs Mint Menus и т.д. Поверьте, там, внезапно, больше, чем вы прочитали по диагонали, когда ставили эти моды.

В итоге - чем меньше дублирующихся модов, тем меньше они конфликтуют за ресурсы игры, тем меньше тратят память, тем меньше проблем совместимости.

6.2 Моды с дополнительными рецептами внезапно сильно влияют на производительность. Мод Bulk Recipe Generator может уполовинить TPS, если постараться. Ненужные рецепты можно отключить модом Cherry Picker.

6.3 Удаляя моды из уже идущей игры, читайте в описании мода, как удалить мод правильно. В ряде случаев неправильно удалённый мод оставляет в сохранении артефакты, которые приводят к замедлению игры.

6.4 Самый быстрый способ найти мод, из-за которого в игре что-то не работает (сейчас не обязательно про производительность), называется "бинарный поиск". Отключаете ровно половину модов и смотрите: проблема ушла, или нет. Теперь вы знаете, в какой половине - отключённой или не отключённой - находится виновный мод. Вернуться к началу алгоритма и повторить для половины с виновным модом до нахождения гада. При сборке в 512 модов вам в самом худшем случае понадобится всего 9 подходов.

6.5 И ещё: обновляйте моды, если вы не получаете их со Steam. Бойцы discord-канала Dubs performance analyzer регулярно помогают авторам обновлять моды в сторону оптимизации. В том же дискорде можно найти оптимизированные версии отдельных модов (например, на сейчас там лежит оптимизированный TDEP).
7. Отдельные советы
7.1 Работа с пачками (стаками) - самый популярный источник тормозов. Включили в While you are up/PUAH подтаскивание ресурсов к местам стройки и крафта или объединение пачек? Включили запрет на объединение нормальных блюд и с мясом насекомых в Common Sense? Удобно, читерно - теперь страдайте. Или отключите и не страдайте.

7.1.1 Много складов с разными приоритетами тоже вынуждают постоянно перепроверять необходимость перетаскивания вещей.

7.1.2 Моды на большие стаки могут улучшить производительность (постоянная проверка на гниение 100 обычных стаков кукурузы против проверки 1 большого стака).
Использование мода Deep Storage, когда на клетку хранилища приходится не более 10-25 стаков (да ещё и увеличенных), будет в плюс. Увеличение количества стаков на клетку свыше 10-25 наоборот даст просадку производительности.
И надо понимать, что когда несколько колонистов пытаются зарезервировать один стак для того, чтобы его пополнить или разобрать, то стак будет видим только для первого из них. Поэтому собирать все аптечки в единственный стак может быть опасно для здоровья вашей колонии.

7.1.3 Моды на удержание дверей свободными сами по себе не тратят TPS, но вот когда дверь заваливается хламом начинается ад, в особенности, если предмет из проёма некуда деть.

7.2 Если ваш стиль управления позволяет, назначайте колонисту минимум пропускаемых им работ, поскольку игра постоянно перепроверяет, не нужно ли приступить к выполнению более приоритетной работы. Пример: если отключить тушение пожаров, будет небольшой прирост TPS. Кстати, это и в обратную сторону работает - бездельники чаще перепроверяют наличие работ. А ещё можно взять мод Personal Work Categories и перетасовать работы, засунув наиболее редкие работы в отдельную группу и отключив их.

7.3 Есть упоминание, что использование зон тоже вносит лепту в снижение TPS. Это и ограничение пешек зоной, и, например, наличие зон крыш (как только крыша построена, убирайте зону)

7.4 Если животные принципиально не принимают участия в игре, их можно напрочь отключить в меню разработчика (поставьте галку No animals). Прирост TPS весьма существенный. Собственно, массовое животноводство даёт довольно сильную просадку.

7.4.1 Дикие животные - тоже животные. Да и растения немного подъедают расчёты. Или, вот, например, работа "Выпустить узника" постоянно перебирает все живые существа на карте, чтобы узнать, не узник ли это, которого надо выпустить. Поэтому, переселившись из джунглей в тундру или пустыню, вы будете наблюдать заметный прирост TPS.

7.4.2 Бешеное число куриц можно заменить на курятники Mitz's Chicken Coop Mod. Кстати, требуемый для этого мода [SYR] Universal Fermenter оптимизирует обработку большого числа бочек на карте.

7.5 По возможности не используйте условия производства "Делать до X штук", ибо они регулярно пересканируют наличие нужных предметов на карте. Моды с подобной функциональностью (Everybody gets one, компьютеризованные столы Colony manager) ухудшат положение.

7.6 Ограничивайте радиус поиска компонентов для крафта и создавайте склады как можно ближе к производству. Поиск компонентов ведётся от стола, и если компонента рядом нет, то каждый раз будет просканирована вся карта, клетка за клеткой.
8. Выявляем моды с проблемами производительности
8.1 Прежде, чем ставить крупный мод, пробегитесь по комментариям к моду. Если в отзывах есть слова performance, lag, slow – возможно, будут проблемы. /бросил по камешку в сторону Androids, Misc.robots и What the hack.

8.2 Есть устаревший список модов с проблемами[docs.google.com], собранный бойцами Discord-канала мода Dubs Performance Analyzer. Хотя в личном разговоре автор списка уточнил, что список плюс-минус актуален. Идём и удивляемся.

8.2.1 В общем и целом тормозят моды, влияющие на принятие решение пешками, поиск пути, выполняющие действия в зависимости от нахождения пешками в определённом месте (например, общение, выключение света), всяческие дополнения к интерфейсу.


8.3 Если ничего не помогает, придётся использовать мод Dubs Performance Analyzer или его более нафаршированный форк от Wiri[github.com] самостоятельно для выявления модов, которые создают наибольшие проблемы. Замечу, что по второй ссылке находится очень подробный технический гайд на английском о том, как пользоваться модом.

Запускаем игру на максимальную скорость и пробегаемся по вкладкам Tick, Update и GUI этого мода. Танцевать надо в первую очередь от вкладок Tick-Single tick и Update-Harmony patches. Что мы там ищем? Ищем мы там моды, которые занимают слишком много времени в тик. Если тик у вас занимает 2 миллисекунды, то игра в принципе не может выдавать более 360TPS третьей скорости, потому что 1 секунда / 360TPS = 0,002 секунды на тик.

Вот, например, картинка, на которой только первые 5 модов (не строк) жрут в среднем 3 миллисекунды.
А ещё ведь сама игра что-то требует. В итоге имеем закономерный результат в 185TPS при 13FPS.

Также, кликнув на строку, можно получить график потребления процессорного времени модом. Автор Dubs Performance Analyzer рекомендует обращать внимание на графики с периодическими мощными всплесками - это признак плохо оптимизированных модов.
Кстати, слева от графика будет указано, какому моду принадлежит строка, если это возможно определить.

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

Если много времени ест метод самой игры (например, EndCurrentJob), то там же, где рисуется график, есть вкладки Stack trace и Patches в которых можно попробовать выяснить, какие моды вмешались в метод.

Выявив моды с проблемами, можно:
8.3.1 покопаться в настройках проблемных модов и отключить часть функционала, если такая возможность предусмотрена (например, TD Enhancement pack)
8.3.2 зайти в стим на страницу мода и посмотреть, нет ли советов от автора по поводу производительности. Или попросить автора оптимизировать мод.
8.3.3 смириться и страдать (RimHUD, ты скотина, но мне нечем тебя заменить)
8.3.4 снести мод целиком (BetterWeight, я буду по тебе скучать)
9. Заключение
Оригинал руководства обитает в Steam, в руководствах к Rimworld. Всё остальное - копипаста.

Автору сильно помогли инструменты и советы от этих людей: Paladin, Bradson, Madman666, Wiri, Dubwise, Alu, Taranchuk, Nickodemus, Riddlesworth II, Mehni. Увидите их - ставьте им лайк!

Если вам было полезно - не забываем ставить лайк руководству и добавлять его в избранное (я думаю, что ещё несколько месяцев после публикации будут уточнения). Если с чем-то не согласны, или есть что дополнить - прошу в комментарии.
60 Comments
Max_MC 2 Jul @ 12:54pm 
Привяка к ядрам помогла просто супер, даже не понадобились следющие шаги, просто супер! Нужно попробовать метод с другими подобными играми которые в лейте начинали дико тормозить не нагружая систему. Спасибо!
SlaveMaster 21 Apr @ 10:18am 
Это вроде не мод делает. У меня такое было, когда было много псикастов на пешке. Если их мало, то навестить можно, а когда много, то информации при наведении уже нет.
Есть подозрения, что один из модов на производительность скрывает описание навыков в режиме призыва. Стоит мод Psycasts Expanded и в режиме призыва при наведении мышки на навык - не вылезает описание. Это очень напрягает, каждый раз заходить в окно "Псионика" и смотреть, какой именно навык мне нужен. Никто не подскажет, какой мод это делает, и как вернуть всё как было? Думал что Perfomance Optimizer, но вроде как я в настройках мода я ничего подобного не увидел
ifchan 12 Apr @ 7:56am 
@православный, очень много информации собрано в дискорде Dubs'а, да и в игре не так сложно разобраться если немного понимать основы
православный 26 Mar @ 12:28pm 
"No ZzZ" помог, спасибо. Как-то сразу догадался, что в нём дело как прочитал. :steamthumbsup:
У меня к тебе масса вопросов. К примеру как ты до всего этого сам допёр? Ноулайф в римворлде?)
Woker 27 Feb @ 12:35pm 
Железо на компе нормальное, но было бы неплохо ускорить запуск игры, просто огромное количество модов. Есть способ ускорить запуск? Может тоже мод какой-то специальный?
SlaveMaster 3 Feb @ 6:27am 
2. Загружены все моды на производительность, кроме RWP и RIM73. Также загружены и настроены моды вроде Графики+, no ZZZ и что-то еще подобное на мини-оптимизацию.

Как итог на глобальной карте мира из 9000 тпс было реально 9000 тпс. На обычной карте скорость колебалась от 4к до 6к.

Результат на лицо♂️. Еще раз выражаю благодарность автору.
SlaveMaster 3 Feb @ 6:27am 
Снимаю свои джаброни перед автором.

У меня достаточно слабый ноут, но вот некоторые результаты моих тест-драйвов:

1. Загружен только РимТред и было выделено 4 ядра. Запуск мира через режим разработчика и выход на глобальную карту, далее удаление поселения и включения максимальной скорости.

Итог от РимТреда - на глобальной карте из 9000 тпс прогружалось 2400-3400.
YT EphemeralPuck 23 Oct, 2023 @ 7:15am 
Очень полезный и информативный гайд оказался.
Удалил порядка 2-5 модов, однако проблематичный мод с русификатором(который ломал сейв после перезахода в игру), который запускал серый экран пустого пространства без пешек, стал работать корректно.
Rocket(что-то там) работает исправно. Очень порадовало.
Список активных модов, при которых все окей:
YT EphemeralPuck 23 Oct, 2023 @ 7:15am 
Harmony,
Core,
Royalty,
Ideology,
Biotech,
HugsLib,
BetterNutrientDispenser,
Character Editor,
CleaningStation,
Dubs Skylight,
Farmable Neutroamine,
Higher Power,
Hospitality,
MendAndRecycle,
Music Expanded Framework,
Music Expanded Core,
No Version Warning,
No ZzZ,
LWM's Deep Storage (боже храни господь того, кто делал этот мод),
Pick Up And Haul,
Quarry,
Replace Stuff,
RunAndGun,
Vanilla Expanded Framework,
Vanilla Plants Expanded,
Vanilla Plants Expanded - Succulents,
Rus Vanilla Plants Expanded,
Snap Out,
Vanilla Fishing Expanded,
Vanilla Plants Expanded - More Plants,
Vanilla Plants Expanded - Mushroom,
Wall light,
[GMT] Trading Spot,
RocketMan - Performance Mod.

Моды, кстати, упорядочены в таком же списке. :)

Автору респект за инструкции. В избранное до следующих времен настроек!