Deterministic multithreading is hard (2024)
Разработчики Factorio поделились деталями исправлений и улучшений для версии 2.0. Одна из самых сложных проблем - баг десинхронизации, связанный с многопоточностью и моддинг API. Оказалось, что ошибка проявлялась только при выполнении четырёх условий одновременно: мод должен изменять тайлы при генерации чанка, запрашивать несколько чанков, принудительно генерировать их немедленно, а игра должна запускаться на компьютерах с разным количеством ядер CPU. Эта проблема существовала с июля 2017 года и была исправлена.
Также улучшена система автопаузы в мультиплеере - сервер теперь будет оставаться на паузе до полной загрузки подключающегося игрока, добавлена опция автопаузы при подключении новых игроков. Оптимизирована работа строительных дронов - проблема с сообщениями "600 заданий не хватает материалов/дронов" возникла из-за того, что игра проверяет только несколько задач за тик, чтобы избежать зависаний при большом количестве робопортов.