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).