Ваша колония поздней игры работает быстрее. Больше ничего не меняется.
RimWorld тратит удивительное количество времени на работу, которая в конечном итоге ничего не дает. Колонист, спящий в постели, по-прежнему использует свой спутник пути, время восстановления оружия, трекер позиций и кучу компов, каждый тик. То же самое и с человеком, который целый час стоит за верстаком.
Этот мод пропускает такую работу, но только тогда, когда он может доказать, что результат будет точно таким же, как в ванили. Никаких приближений, ничего не тикает реже, чем должно, ничего не запускается в других потоках. Игра происходит так же, просто она происходит быстрее.
Насколько быстрее?
Зависит от вашей колонии и вашего ПК. Чем больше и старше колония, тем больше приходится пропускать. Колонии поздней игры обычно все равно не могут достичь полной скорости Superfast, и именно здесь это помогает.
- Моя колония из 29 колонистов (день 722, ~200 пешек, 5700 зданий) на Superfast: примерно +14% к +23% TPS по моим тестам (80 → 99 TPS в один день, 49 → 56 в другой)
- Та же колония с 12 тяжёлыми модами (Combat Extended, Facial Animation, Melee Animation, Humanoid Alien Races, Big and Small, VEF и другие): примерно +14% — тот же прирост, что и в ванилле, замеренный в ту же ночь
- Подлагивание от пересчёта богатства, случающееся каждые ~80 секунд игрового времени, стало примерно на треть короче
Небольшие ранние колонии не заметят многого, просто пока нечего пропускать.
Числа берутся из включения и выключения мода каждые 10 секунд в одном сеансе игры, поэтому все, что делает компьютер, не искажает их.
Это безопасно?
- У каждой оптимизации есть тестовый режим, который выполняет рядом оригинальный код игры и сравнивает результаты. Все они дают 0 расхождений, в том числе с примерно 60 другими загруженными модами, включая Combat Extended.
- Он ничего не сохраняет в файл сохранения. Добавьте в существующее сохранение, удалите обратно — без ошибок.
- Если другой мод патчит тот же код, только этот участок выполняется обычным способом. Строка, начинающаяся с [Free Performance] в логе (и в настройках мода), подскажет, какой это мод. Всё остальное продолжает работать.
- Каждую часть можно отключить в Options > Mod settings > Free Performance, если захотите её исключить.
Моды
Работает и с большими модлистами. С другими модами все остается точно; некоторая скорость может потеряться, если другой мод изменит тот же код:
- Каждая часть мода опирается на конкретный код игры. Если другой мод меняет тот же код, только этот участок выполняется обычным способом (для двух крупнейших оптимизаций — пропуска бездействующих пешек и хедиффовой) или эта оптимизация отключает себя (для меньших), так что игра ведёт себя точно как ваниль. Настройки мода показывают, что выполняется обычным способом и какой мод это вызвал.
- Проверено по их коду и работающее с ними на полной скорости: Performance Optimizer, Vanilla Expanded Framework, Combat Extended, Big and Small, Replace Stuff, Fortified Features, Vehicle Framework и Minify Everything.
- Также протестировано с Facial Animation, Melee Animation, Humanoid Alien Races, Yayo's Combat 3, Dubs Bad Hygiene, Pick Up And Haul, Common Sense, Alpha Animals, Vanilla Psycasts Expanded и списком из 50 модов. Ничего не отключается ни с одним из них.
- Если в вашей игре что-то не так, комментарий с названием мода из настроек поможет мне проверить этот мод следующим.
- Performance Optimizer: используйте оба — они делают разное.
- Порядок загрузки: где угодно после Harmony.
Известные ограничения
- Multiplayer: not tested.
- Мод новый. Он протестирован на моих собственных сохранениях, списке из 50 модов и 12 тяжёлых модах, но пока не на огромных модпаках. Если что-то выглядит странно, оставьте комментарий с вашим логом.
- Насколько это помогает, зависит от колонии. Большие колонии поздней игры получают больше всего, маленькие — совсем немного.
Что он на самом деле делает
- Бездействующие и работающие пешки пропускают части своего тика, которые ничего не могут сделать в их текущем состоянии (самый большой выигрыш).
- Здоровье, гены и другой учёт по каждой пешке тикает только то, что реально может измениться.
- Покачивание растений от ветра применяется один раз за кадр вместо одного раза за тик.
- Более быстрые проверки газовой сети, переноски, резервирования, заданий и оповещений.
- Пересчёт богатства колонии считает каждый вид стены или трубопровода один раз, вместо каждого отдельного.
FAQ
Меняет ли он геймплей или баланс?Нет. В этом вся суть. Если что-то пойдет по-другому, это ошибка, и я хочу услышать об этом.
Почему не многопоточность?В симуляции RimWorld используется один генератор случайных чисел и множество состояний между всем. Запуск его в нескольких потоках меняет результаты или что-то ломает. Этот мод остается в основном потоке и выполняет меньше работы.
Нашли проблему?Оставьте комментарий с вашим логом (и списком модов, если можете). Строки этого мода начинаются с [Free Performance].
Исходный кодОткрытый исходный код (MIT):
github.com/BrageEvjen/FreePerformanceПомогает ли он вашей колонии?
Большой палец вверх помогает другим игрокам найти его. Если что-то не работает, комментарий с вашим логом поможет больше, чем палец вниз, и я это исправлю.