5 ms·
> The post author wrote the absolutely incredible Space Exploration mod for Factorio Each section has an author, and only the Space Exploration section is wri
by Laremere 3y ago
> The post author wrote the absolutely incredible Space Exploration mod for Factorio
Each section has an author, and only the Space Exploration section is written by the mod author. Most of the post is written by kovarex, who is the founder of Factorio, afaik.
- throwaway894345 3y agoIs the Factorio source code available anywhere? I would be really curious to see how a game like Factorio was developed (e.g., what parts are 'the engine' and what parts are scripted? how does such a complex game have so few bugs?)
- k12sosse 3y agoYou can turn bugs on or off when starting your world ;) depends on if you want to - oh, BUGS bugs, not bugs bugs.
- pmoriarty 3y agoFactorio is closed-source, unfortunately. Still, you can read a lot about how the devs developed it on their "Friday Facts" posts: https://factorio.com/blog/ https://factorio.com/blog/
- bombcar 3y agoThis is actually better than the raw source for understanding the development; you have to start at the beginning and read forward. Basically - tests, reproducibility, and dedication to tracking down "weird minor bugs" before they become "major show stoppers".
- Therenas 3y agoThe source is not publicly available, no. It‘s still being actively developed and sold after all. There isn‘t really much of a barrier between engine and 'scripting', it‘s all custom and integrated. The reason there are so few bugs is that there is a ton of effort spent on squashing them! The approach is basically to fix any reported issue if in any way reasonable.
- Zambyte 3y ago> The source is not publicly available, no. It‘s still being actively developed and sold after all. Those two are definitely not incompatible. Take Karia[0] for example, which is fully Free Software[1]. [0] https://store.steampowered.com/app/1261430/Kandria/ https://store.steampowered.com/app/1261430/Kandria/ [1] https://github.com/Shirakumo/kandria/blob/master/LICENSE https://github.com/Shirakumo/kandria/blob/master/LICENSE
- BlueTemplar 3y agoYeah, I wish more games would use this approach, they could for instance have the art assets separate, or do what Factorio does and have matchmaking and the official mod portal to be DRMed. (And/Or give out the source, but not the compiled binaries.)
- Zecc 3y agoOr (while on the subject of Factorio) Mindustry: [0] https://mindustrygame.github.io/ https://mindustrygame.github.io/
- lannisterstark 3y agoFactorio is arguably way, way more popular than Kandria, however.
- BlueTemplar 3y agoIt is now, are you suggesting it wouldn't have been as popular if it had been open sourced (more) ?
- lannisterstark 3y agoI'm suggesting that Open Sourcing an incredibly Popular game that has been selling well NOW would be a bad idea for sales.
- Zambyte 3y agoI've never played Factorio so I didn't know that :)
- duskwuff 3y agoThe C++ source code to the engine isn't publicly available, but Wube have given access to some outside developers. The Lua source code to the "base mod" is (necessarily) included in the game. You can read it if you have a copy of the game, and the modding API is fully documented: https://lua-api.factorio.com/ https://lua-api.factorio.com/
- TillE 3y agoIn addition to their very informative blogs, you can infer a lot based on their extensive Lua modding API: https://lua-api.factorio.com/latest/ https://lua-api.factorio.com/latest/ They also ship a full .pdb file with the Windows binaries (presumably for stack traces), so you can get a lot of information with dia2dump, or dig in with WinDbg.
- rcxdude 3y agoThey do seem to have shared the source code with some of the more prominent modders in the past, but it is not generally available.
- dekhn 3y agoI spent some time thinking about how to implement Factorio and it occurred to me that things like conveyors are probably represented as linked lists (all the conveyer elements in order) while also having X,Y grid coordinates. Every time you modify a conveyor belt chain, the game engine is probably adding/removing nodes from the list, or splitting lists in two, or joining two lists. I can't see how they get some of the effects in the game but there is probably a TON of clever optimization so they can maintain the target frame rate.
- francoisdevlin 3y agoThere's a lot to belts https://www.factorio.com/blog/post/fff-176 https://www.factorio.com/blog/post/fff-176
- Buttons840 3y agoAs said, Factorio's core is compiled binary, with a lot of customizable Lua on top. Fun story: Somebody independently recreated the core engine themselves to prove a point about multi-threading. Imagine recreating an entire game engine in 50,000 lines of C++ to prove a point, yeah, it happened: https://www.reddit.com/r/factorio/comments/jizq1b/comment/ga9ih96/ https://www.reddit.com/r/factorio/comments/jizq1b/comment/ga... What a legend!