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…

  • DonutsRMeh@lemmy.world
    link
    fedilink
    arrow-up
    5
    ·
    15 hours ago

    Saves and unskippable cutscenes are my enemy. Once a game doesn’t allow me to save whenever I wanted to, and skip cutscenes, I’m done with it. Latest one that pissed me off so bad on both ends is Indian Jones and the great circle. For fuck’s sake, I’m here to play a game, not watch a movie. I don’t care about the cutscenes one bit. Let me skip them. Those who want them can have them. It’s insane. It also doesn’t let you save and won’t save until you change places. It was the most annoying shit I’ve dealt with. I just don’t play it anymore.

  • fartsparkles@lemmy.world
    link
    fedilink
    arrow-up
    32
    ·
    edit-2
    22 hours ago

    I understand why people want the feature and I agree it’s amazing but the reason lots of games don’t is it requires the serialization of basically everything in the game and that can be a nightmare to maintain if you’re making lots of big changes to the game throughout development. You have you go back and rework your save code every time you change anything, and ensure older parts of the code still adhere if you need to change how save works (meaning i.e. touching so much of the same code over and over rather than getting a feature implemented and moving on).

    And while it can be done with most major engines with plugins, it you’re creating your own structures/object types etc, you need to extend that plugin to support them (and maintain that code every time you make changes to the structures).

    Emulators simply save the state of memory since many older consoles didn’t have much RAM to begin with dumping it entirely to disk isn’t that big of a deal (especially if only a subset of registers are marked for game state). Not so easy with modern games where there is a lot more going on in RAM.

    Games that have a daily tick e.g. Stardew only need to store a set of initialisation values that are used to begin the day since no other changes would be made to state yet (since the player hasn’t made any that day). Or checkpoints where you serialise player state, quest state, etc, with enemy location etc ignored and respawned as default the next time you play.

    Think of it this way. If an enemy spawns in a default location, that doesn’t need to be serialised if you load a game from a checkpoint. But if you can save anywhere? Well then you need to know the enemies, their positions, their vectors, their AI state (alerted etc), their velocity, their position in the animation timeline, and potentially so so much more. If you save mid explosion while boxes are flying all over the place, you need to serialise so much more data to resume the physics simulation. Etc.

    And what about multiplayer? That’s additional players and their state and surroundings etc that need to be serialised and reserialised at load successfully.

    Then there’s how you serialise. Do you go with a text markup like JSON which can get incredibly large if there’s a lot of things to serialise? Or do you make a custom binary format to compress the size but then you need to maintain that format and how you map to and from it in your engine?

    It’s a lot easier if you don’t have to serialise the state of a huge number of things for saving and maintaining that saving code every time you make changes. It’s not impossible, and if you build with the feature in mind, it can be made manageable to maintain.

    But if that feature isn’t essential to your game, and you’ve an acceptable alternative, it frees you up to work on other features instead.

    It’s a balancing act. And for a solo developer like that of Stardew, I can completely forgive them for not wanting to implement it.

    • rebelsimile@sh.itjust.works
      link
      fedilink
      arrow-up
      7
      ·
      18 hours ago

      I can vouch for this. I started working on the save functionality in my last game project about half way through and since, every single change to the main player objects has had to be re-replicated in the save code. If I wasn’t working solo it would be… not a good process for anyone else working downstream. Never thought about it in this way but that makes a lot of sense

    • Orygin@sh.itjust.works
      link
      fedilink
      arrow-up
      2
      arrow-down
      1
      ·
      18 hours ago

      If the game has no manual save but random auto saves like the op’s first example, then all your points are moot as the game still needs to have the save feature working properly. It just doesn’t respect the user enough to let them save on their own terms

      • fartsparkles@lemmy.world
        link
        fedilink
        arrow-up
        2
        ·
        15 hours ago

        I recommend you try implementing a save feature in a game engine then you might have a little more respect for the difficulty of the problem you’re irritated by.

        Developers aren’t being unthoughtful or lazy, you’re just trivialising a rather complex software engineering problem that isn’t easy to solve and one solution over another has trade offs / weaknesses.

        • Orygin@sh.itjust.works
          link
          fedilink
          arrow-up
          2
          ·
          14 hours ago

          The context is explicitly a game where the engine supports saving at any time exists and it is not available for the user.
          I am well aware of the difficulty of implementing such features so respect is given where it’s due.

          • fartsparkles@lemmy.world
            link
            fedilink
            arrow-up
            3
            arrow-down
            1
            ·
            12 hours ago

            I don’t think you understand what “the engine supports saving at any time” entails.

            Having the ability to serialise objects is not the same as handling the input and output of serialisation.

            You might as well be annoyed by why aren’t all developers letting us rewind time in games? Load from our last save? No thanks. Developers are so disrespectful of my time. You just need to log all the changes that happen and play them backwards. Every engine supports that.

  • thingsiplay@lemmy.ml
    link
    fedilink
    arrow-up
    10
    arrow-down
    1
    ·
    20 hours ago

    I can’t say this is true for every sort of game, but lot of games failure is part of the gameplay loop. If you can’t lose your progress, then there is no fear of losing a life, and therefore no tension is created. In example where this makes sense are Dark Souls and Resident Evil games. In Resident Evil you can only save if you find an object and consume it to safe… But also doing it like Stardew Valley to save only at specific points only means, its less work for the dev to figure out all possible details to safe and its more consistent with updates of the game, so it does not break the safe file. Even more so, if the game is multi platform. If the mobile version does save anytime, then it might use a different technology to do that. Not sure if it does and how it differs.

    Just some thoughts about this subject. I personally find it totally normal and acceptable that games save on specific times only. In some cases not being able to save anytime is part of the gameplay experience and games are designed with that in mind.

    • Gabadabs@lemmy.blahaj.zone
      link
      fedilink
      arrow-up
      2
      ·
      14 hours ago

      In the case of dark souls, you can quit out at any time and your progress is saved. If you’re in a boss fight, it’ll just put you in front of the boss door when you reload your save. It’s saving automatically constantly. Bonfires are more for setting your respawn point when you die, and fast travel, among other features that vary from game to game. That level of tension can absolutely be done without forcing you to lose progress if say, your power goes out or you have to go.

  • iamthetot@piefed.ca
    link
    fedilink
    English
    arrow-up
    9
    ·
    22 hours ago

    I actually find that the save methods of a game can influence its vibe. It might sound really dumb to everyone else here, but I don’t think Stardew would be quite the same game if you could save at any time. I think that’s true of some other games, too.

  • FishFace@piefed.social
    link
    fedilink
    English
    arrow-up
    13
    ·
    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. Blue Prince doesn’t allow you to save except between days - and a game day can last a couple of hours. To me that’s far from acceptable. Hades which I just got only allows you to save at the end of a chamber, but tbh each chamber is short and fairly frantic so that seems OK. I’ve been playing Superliminal and that has extremely weird, seemingly arbitrary save points, which can lose you several minutes of game time. That and the fact that where I am now is less a puzzle and more a matter of clicking on the exact pixel which will convince the shitty physics to not fuck up while also allowing me to traverse the room means I’ve given up on that particular game.

    Superliminal though is a good example of how arbitrary save would be more complicated: I imagine it only lets you save when you go between doors which prevent you from carrying items through them. This separates the game world into areas within which there are a known set of items, and moreover, on your entry into each area, the items in that area start off in known places. That means the save format doesn’t have to store the location of items in new areas, and indeed could discard the locations of items in old areas too (it could set their locations to some hard-coded “solved” locations for consistency, or it could just leave them in their initial locations if backtracking is not important).

    • justdaveisfine@piefed.social
      link
      fedilink
      English
      arrow-up
      15
      ·
      23 hours ago

      This is it. Saving and loading anywhere is actually a difficult thing to get right as its easy to exploit and/or break. Depending on the game’s design it could be a real nightmare to solve.

      • IamSparticles@lemmy.zip
        link
        fedilink
        English
        arrow-up
        3
        ·
        17 hours ago

        Yup. And games that save more state-based data often have another problem: when the game gets updated, it can render old save files no longer compatible. There were several games over the years that I never finished because I didn’t want to start over from the beginning after a major update released.

    • TheRealKuni@piefed.social
      link
      fedilink
      English
      arrow-up
      1
      ·
      22 hours ago

      Unrelated, isn’t Superliminal cool? I discovered that one on Game Pass back when that service was good and I loved it. Reminded me of Portal, which it is very much trying to channel.

      • FishFace@piefed.social
        link
        fedilink
        English
        arrow-up
        1
        ·
        21 hours ago

        It’s cool but so far I’m not really that impressed. It has had one interesting idea, employed in an often frustrating way, and now its frustrating implementation and glitchiness mean I’m probably not going back to it.

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

  • Dariusmiles2123@sh.itjust.works
    link
    fedilink
    arrow-up
    6
    ·
    20 hours ago

    While I share your grippes, I would want to add two different ones:

    -Auto saves are great, but not when the game doesn’t allow you to restart a level.

    For instance, late in Metro 2033, I had almost no more air to go further. I was lucky enough to just have enough to keep going. Had it not been the case, I’d have probably had to start the game from scratch again as you can’t just restart a level or load a previous « safe » save

    -Cross platform saves and achievements

    My gaming PC is a Steam Deck, so it doesn’t have much power. That’s why I still buy my demanding games on Playstation 5 with the intent of getting them on Linux in the future. I fully understand, why I’d need to rebuy a copy of these games to play them on PC, but I don’t understand why it’s not possible to share a save between different systems. Same for the linked achievements.

  • SkaveRat@discuss.tchncs.de
    link
    fedilink
    arrow-up
    8
    ·
    24 hours ago

    yeah, it absolutely annoys me in stardew. made me stop playing the game after a while.

    only thing that saved it (pun inteded) for me was that I was playing on a steamdeck, and I could just turn it off when I needed to do something else

    • mctoasterson@reddthat.com
      link
      fedilink
      arrow-up
      7
      ·
      23 hours ago

      Yeah, OP, based on my experience with the Deck, for a vast majority of games you can just go to the ingame pause screen, press power button to “sleep” the Deck, and then resuming later has no impact.

      There are a few games that maybe had audio issues or something after resume but nothing major if your main concern was simply avoiding losing progress.

      • bonenode@piefed.socialOP
        link
        fedilink
        English
        arrow-up
        1
        ·
        21 hours ago

        True, but then you have to keep playing the same game in order to do that. Doesn’t work all the time either, at least for me. I do appreciate everyone does this their own way so I think it is great that this works comparatively well.

  • Kühlschrank@lemmy.world
    link
    fedilink
    arrow-up
    2
    ·
    edit-2
    20 hours ago

    It would be really cool if they could expand on the sleep/wake save state to work if you leave the game completely too. Maybe a lot more work than I am imagining.

  • Björn@swg-empire.de
    link
    fedilink
    arrow-up
    2
    ·
    22 hours ago

    I think there’s a Decky plugin that allows you to save the whole state of a game and suspend it. Kind of like save states for emulators. i never needed it but from what I hear it works well.