This is an automated archive made by the Lemmit Bot.

The original was posted on /r/factorio by /u/SagansCandle on 2025-02-06 22:07:20+00:00.


I’m aware of the academic paper and I’d love to see more of this kind of deep analysis. I can’t even imagine the various low-level optimizations. The scale of the software is also impressive - feature-complex software requires constant refactoring to reduce code complexity to keep the software maintainable. I’m super interested in the patterns and practices used.

Some questions I would have:

  • Saving is lightning fast. Looks like straight stream copy. How does this work and did the requirement for fast saves cause you to make compromises elsewhere?
  • Are you using OOP?
  • How much assembly did you have to write?
  • Are you using a lot of intrinsics, or are you relying on compiler optimizations?
  • I assume you had to optimize for cache locality? What methods did you use? Did MCM’s change your strategy? 3D V-Cache?
  • Threading primitives and patterns? How did you divide and synchronize the work?
  • How did you handle testing new ideas? With a game so dependent on optimization, how did you keep from spiraling down optimization rabbit holes?
  • How did you design the scripting so it minimized performance impact? What kind of compromises did you have to make for scripting?
  • Do you have automated testing?
  • What tools are you using?
  • How do you manage code changes (like, process, not source control)? What process are you using to manage new features and the development lifecycle?
  • What were the biggest differences in opinion over algorithm / game design? (besides fluid simulation, of course, which seemed politically sticky from the outside =D)
  • What are you using for internal documentation?
  • Which algorithms surprised you?

Sorry I have a BILLION questions. I seriously cannot believe how stable this masterpiece is. The crazy attention to detail. The software community could really learn a lot from what you’ve accomplished. Please share before you shelve it for your next project!

You could probably write a book on all the different challenges you faced and how you solved them. If you did, I’d buy it in a heartbeat. If you made it full-color and added images, it would make an incredible coffee-table book or nerd gift! And when the aliens find it in a million years after we’ve caused our own extinction, they’ll know we were an advanced civilization! =P

(Also I apologize if there’s something out there already with this info. I couldn’t find the deeply technical, meaty stuff. FFF is good, but it’s sparse).