I really don't think you're going to convince me that's not a false dichotomy, especially when Factorio's memory bandwidth numbers show that it is not "laid out in a way to make runtime performance efficient". (Laid out in a way that improved efficiency relative to some earlier version of Factorio? Sure. Efficient enough? Perhaps. All the way to an objective measure of "efficient"? Nope - not when 90% of the memory bandwidth and most the CPU cores are still sitting on the floor.)Rseding91 wrote:The game isn't laid out in a way to make saving efficient. It's laid out in a way to make runtime performance efficient.
Anyways, I also don't believe it's worth my time, nor yours, to engage in such convincing attempts (and what I can say to support my case is ultimately limited by the fact that I can't divulge "proprietary information" on how the game engine I'm working on works), so I'm not going to pursue this topic further.
No, that is incorrect. I explicitly argued against using COW and my scheme doesn't require it. Your understanding of memory performance is also too naive to make a sound performance analysis - go read and understand What Every Programmer Should Know About Memory and then maybe you'll get why your "memory is the bottleneck" statement is too imprecise to either usefully describe the problem or determine what solutions would be effective.pleegwat wrote:Your approach copies 1GB of data out of the game thread while the game thread is running. Since the game thread does the modifications, the game thread incurs COW penalties.
I agree - that has caused me much more annoyance (though I guess I'd still only rate it "mild level annoyance" and it is only an issue at all occasionally, not every save) than the save times and it should be so much easier to improve. (I suppose save times annoyance could increase due to 0.15.x encouraging larger bases - I'm only now heading towards "megabase" territory for the first time ever because in prior versions there seemed no point to it, so I may see longer save times than ever before and reach "new levels of annoyance". But then the save-time improvements Rseding already did should at the very least offset that to some degree once 0.16.x is out.) To expand on the pause UI issue a bit, one thing that makes it more annoying is that you simply don't know if what you did "took" or not, so the first thing you have to do after the save finishes is inspect what you were doing to determine its post-save state to then determine whether or not you have to redo what you just did. (In general doing the redo blindly doesn't work because in a lot of cases a 2nd click could actually undo whatever was done, or open some unwanted window, or something else annoying.) That then leads to a more "intent" waiting (an additional psychological factor) because you're waiting not just to continue playing but to see something in particular (something that is often hidden by... the pause pop-up).jodokus31 wrote:The main issue i've got with the autosave is, that it sometimes feels, that my GUI input isn't committed.
I think the "game-save early warning" might (I'm not sure - it's possible I might actively dislike it) also be nice for having some chance to get a character away from danger - e.g. if navigating train tracks. There can sometimes be some "clumsiness" during the recovery period after a save completes, and in that case it's best not to be too close to a 40 ton vehicle moving at 270 kph.