• 0 Posts
  • 297 Comments
Joined 3 years ago
cake
Cake day: July 1st, 2023

help-circle


  • 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 our time. They just need to log all the changes that happen and play them backwards. Every engine supports that!



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




  • Half-Life was the same. The game doesn’t spoon feed you a narrative, the same way real life doesn’t have a narrator (at least one outside of your head).

    You need to pay attention to your surroundings, listen in to NPCs talking, read posters on the wall, etc to piece together the story.

    It was and is one of the cooler ways to do storytelling in my opinion. Cutscenes etc are fine but for a first person game, I love the immersion of the story happening around you rather then being loredumped on you while your agency is taken away from you.






  • Hey sunshine. It makes me so proud you want to attempt to fix something rather than throw it out.

    When my computerybox did a whoopsie (which had nothing to do with me spilling coffee over it), I used this great website to find out how to take it apart. Might not be helpful this time but perhaps for the next thing that does or does not get offered an unexpected and undesired cup of Joe.

    Those little screws might be a pain with your dyspraxia so maybe take it apart on a tray or something so nothing rolls under the couch.

    And if you can’t fix it, that’s okay! You tried, that’s all that matters. I’m sure there’s a local repair person out in your neck of the woods. Failing that, I’m sure there’s a witch in those woods with a broom you can borrow hurhurhur.

    Keep being you, sunshine.





  • Stallman would disagree with you, I believe. The Free Software Moment has never been about not making money, it’s about liberty with the software you use. Free as in freedom, not free as in beer; free as in libre, not free as in gratis.

    Quote from FSF:

    Many people believe that the spirit of the GNU Project is that you should not charge money for distributing copies of software, or that you should charge as little as possible—just enough to cover the cost. This is a misunderstanding.

    Actually, we encourage people who redistribute free software to charge as much as they wish or can.