Edit a few hours later: I just want to thank you all for a nice discussion of the topic, I certainly learned a lot about how things work in the background. Doesn’t change how I find it annoying but it makes it more understandable!


Just need to vent this into the great emptiness that is the internet. What is going on with providing proper save capabilities in games today? Is it really that hard to save the state the game is in, when I exit it? It seems to be, because I keep seeing games where only at specific times an autosave is triggered, and honestly, it’s annoying.

Latest offender, The Fall of Porcupine, actually looks like a cool game, if you would actually be able to save when you exit it. Instead it saves at seemingly random times. Now I am trying to play that with my kid, and we got to watch our screentime a bit. It happened now twice we weren’t sure how to trigger a save by going anywhere, nothing we could do would trigger it. So we lost progress… again. Probably not going to continue this one.

Even really great games do this. I finally got Dave The Diver and at least you get to save on exit everytime you can exit. What I didn’t know until playing it for a while, there’s times where the game does not allow you to exit, what in the world is up with that? Apparently it is really really important to finish this silly cooking minigame right now, as there is no option to return to menu. Similar in some other sequences of triggering a boss fight. Just now I was at a place in the game where 3 separate boss fights got triggered with no indication its going to happen and of course no way to exit. Other than killing the game, but I guess that wouldn’t save it.

Aaand Stardew Valley, I really love it, great game. But only being able to save when ending the day, seriously? I read the mobile version can save anytime, why not all others too?

Ok, done, you can now ignore me or share your own stories if you like…

  • TrackinDaKraken@lemmy.world
    link
    fedilink
    English
    arrow-up
    5
    arrow-down
    4
    ·
    23 hours ago

    I mean it is harder to save at arbitrary points because the amount of information you have to save and restore can be a lot more.

    So, instead of being instantaneous, it takes two seconds? Or five? That’s no good excuse.

    I can play for three hours in Fallout 4, forgetting to save the entire time, then remembering to hit F5, and it takes literally two seconds to save. It’s just a database text file sitting in RAM that needs to be written to the drive. And, most people are playing off SSDs, so even a huge text file with hundreds of thousands of entries would write in a second.

    No, this isn’t about physical limitations of the hardware, or how much time it takes.

    • FishFace@piefed.social
      link
      fedilink
      English
      arrow-up
      9
      ·
      23 hours ago

      You’re right, it’s not about that. It’s about how long it takes for a developer to create the saving and loading routines, how complex they are, and the risk of there being things wrong with them.

      Suppose you want to introduce at arbitrary points in Blue Prince. It means you now have to track:

      • the location & orientation of the player
      • the player’s stats (steps left, money, gems, keys)
      • the location & orientation of every room in the house
      • the state of all doors in the house (open/closed, locked/unlocked, normal/metal)
      • all the hidden state relating to luck and room drawing
      • the time of day
      • the state of each Mora Jai box - where its tiles are and whether it has been opened
      • the state of each pick-upable entity
      • the state of the dartboard, parlor and other puzzles
      • the location of all elevators
      • many more things which are spoilers
      • many more things I can’t think of

      If you forget a single one of these, loading the game will break in some way - possibly in some niche way that will never come up in testing. Suppose the thing you forgot was the state of some late-game puzzle, and in playtesting no-one ever saved and reloaded after doing that puzzle?

      Maybe the consequences are that the puzzle is just reset in that save - that’s fine, right? Well, not if the consequence of doing the puzzle is saved, and you can then do it again. Maybe you just put an infinite money glitch into the game, or maybe when doing the puzzle again, the game code tries to re-enact whatever happens when you solve it, which has already been done, and because some assumption is invalid the game just crashes.

      None of this information is stored in a “database text file” at all. It is stored in RAM alongside vastly more information in a manner which makes writing it to disk impractical. Some games do essentially dump their entire in-memory state to disk, but this is only possible if the game is very small and simple: the size on disk will be roughly the same as the size in memory, and games often take up several GB of RAM; it is not acceptable to write out multi-gigabyte save files to disk unless there is simply no alternative.

      Game saving and loading is extremely complicated.

      The complexity may even extend beyond the save/load part of the game code. For example, in Superliminal you can create a lot of physics objects. Continuing with my assumption that the game doesn’t save the location of them, this means that when you load, they’re all gone. That means there is no possibility that physics objects build up over the course of playing the game and cause performance problems or simulation instability. There are other ways of tackling this problem that may be more elegant - but developer time is limited, and if you can solve a problem decently with a shortcut, then it is often a good idea to do so.

    • AnyOldName3@lemmy.world
      link
      fedilink
      arrow-up
      5
      ·
      23 hours ago

      It’s not so much about time (although I have played a couple of things that would take a ridiculously long time to save or load), it’s about the number of chances to make a mistake. If you only save ten values, it’s really easy for a programmer to verify that they’ve got everything right, but if they save ten million, there are a million times more opportunities for mistakes to sneak in and it’s much harder to notice each mistake, let alone fix it.

      Fallout 4 is a bit of an odd duck here as the save format for the BGS games is basically just another ESM file, so reuses all the same serialisation and deserialisation mechanisms. Most games don’t have multiple places the game data can come from and a way to combine them as they’ve not got an engine designed with this kind of modding in mind, so there’s nothing to reuse in this way for saves. Given the general standards of engineering from that studio, if they didn’t have this as a core feature of their custom engine for nearly three decades, and instead had to come up with something from scratch, they’d absolutely mess it up or have to simplify the saving system.