RimWorld
Оцінок: 472
Оптимизация Rimworld. По-взрослому.
Від Dragonling та 1 співавторів
Rimworld – удивительно неоптимизированная в своём классе игра. Особенно для тех, кто играл в Factorio. В принципе, ванильная версия работает приемлемо. Проблемы начинаются, когда вы устанавливаете сотню-другую модов и пытаетесь включить четвёртую скорость. Давайте что-нибудь с этим сделаем.
12
3
17
5
4
4
5
4
3
   
Нагородити
До улюбленого
В улюблених
Прибрати
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. Увидите их - ставьте им лайк!

Если вам было полезно - не забываем ставить лайк руководству и добавлять его в избранное (я думаю, что ещё несколько месяцев после публикации будут уточнения). Если с чем-то не согласны, или есть что дополнить - прошу в комментарии.
Коментарів: 71
RyeN 7 трав. о 17:52 
Как я понял это для тех кто играет с 300+ модами, а для тех кто практически на ваниле сидит это не особо поможет?
andre32r 26 січ. о 13:10 
☣Лицемер☣, сколько оперативы кушает сборка в пике?)
andre32r 26 січ. о 13:09 
@Dronforever, посмотрите, не сбрасывает ли частоты процессор (нет ли перегрева). и стоит ли у вас игра на SSD? + не сильно ли древняя операитивная память? сами сейвы (даже ванильные) нужно время от времени вычищать. save cleaner вам в помощь
Tamplar_kaz 11 січ. о 3:24 
С высоты лет развития Riworld со старта, начиная с теста, игру уже страшно :steambored: открывать стало из-за количества доступного контента.
Dronforever 10 січ. о 1:04 
У меня возникла проблема внезапного цикличного провисания римки. Игра работает нормально до момента "X" и игра начинает подвисть каждые 5 сек TTS падает в 0. Модов нет вообще, ванильная версия. в чем может быть дело ? Гайд не помог( У меня есть сейв где ещё не лагает, но вот вот начнёт. В этот момент ничего не меняется ! не становится больше колонистов или событи какое , ничего!! Но начинает тормозить что играть невозможно. В чём может быть дело?
PokomowiZ 3 січ. о 11:30 
RimThreaded не обновлялся с 1.4,учитывайте это при создании сборок
если кто то знает порт на 1.5 - скиньте сюда,пожалуйста
☣Лицемер☣ 1 груд. 2024 о 7:41 
А я тут коечто сделал вообщем мне нужно что-то для оптимизации 1 вкладки а именно "технологии" у меня 1к модов все грузит и нет ошибок но из-за количества контента я не могу открыт 1 вкладку
Mad Goose 6 верес. 2024 о 15:34 
Товарищи, при прочтении столкнулся с проблемой удаления модов: не всегда понятно, какой из них лишний, авторы не всегда пишут, какую функцию из какого аналога они у себя реализовали. Отсюда появилась идея создать базу мастхев модов для 1.5, которые геймплей улучшают сильно, а ТПС жрут мало. У меня на тесты и подробное изучение каждого мода времени нет, могу разве что собрать самые популярные моды из самых популярных модпаков, но это не очень основательно. Поэтому, если кто-то заинтересован в создании базы модов, чирикните в лс
andre32r 27 серп. 2024 о 0:32 
4625GHz, смотри логи. Там будет написано, какой мод всё ломает.
снесёте его - используйте save cleaner.
Я так себе спасал игры уже 2 раза (стоит 200+ модов)
giimer 15 серп. 2024 о 15:59 
В логах красное спамит?