Get rid of the current system of one save per character

Discussion in 'Suggestions' started by Bohandas, May 28, 2014.

  1. Bohandas

    Bohandas Member

    Please get rid of the current system of one save per character.

    I get that its a common part of the genre, but as it is now the game corrupts and/or deletes the active save so often (even with SteamCloud turned off) that you kind of need to have a backup copy of any character that you make.
  2. Wolg

    Wolg Member

    Workaround: make your own backup copies through the filesystem.
  3. Kaidelong

    Kaidelong Member

    Just fix the save system. It shouldn't be hard. If there are good virtual filesystem libraries for C++ it would require a minimal amount of change to the current code (albeit another dependency). Write to some zipped virtual filesystem with some mangled name, if the write completes successfully, modify some "saves.xml" to say "character Xyzzy last successfully written to dl399fjj1.dredmorsave". If the write doesn't complete successfully, don't change saves.xml. Also track the last save successfully read; if reading fails, offer to load the last successfully read save. If it succeeds, mark the previously read save for deletion and record the save you just read as being the last successful save read.
    Exile and TJSlipperman like this.
  4. Haldurson

    Haldurson Member

    I used to love when people would tell me what should be easy or what should be difficult when I was a programmer without actually having looked at the code. It was more fun when they would say that they were afraid to ask for a feature because they thought it would be difficult when it was literally 5 to 10 minutes to make the change and compile it. It was a lot less fun when they would tell me that something should be easy when it was LITERALLY impossible (like the clients who were confused when I told them that you can't solve a pair of linear equations with 3 or more unknowns, which was equivalent to what they were telling me was easy).
  5. Loerwyn

    Loerwyn Member

    It's common knowledge, at least among Dredmor fans, that the coding is a mess. Nothing is easy with Dredmor.
  6. Wolg

    Wolg Member

    "Succeeded" is also a flexible term in code (S_FALSE in COM, anyone?).
  7. Wootah

    Wootah Member

    Doesn't multiple saves kind of violate the whole roguelike model? Sure you can back up your saves, but why bother putting in the dodge anyway?
  8. Bohandas

    Bohandas Member

    Because the game accidentally deletes saves so often that backing them up is an absolute necessity (and doubly so if you're running any mods), and therefore should be built into the game.

    Also: screw the roguelike model, I'll play the game how I want to play it.
  9. Arron Syaoran

    Arron Syaoran Member

    I just find it annoying that when I put my Last of the Lemkes Backup(from another folder) into the saves Directory, Steam Automatically deletes the folder when I run Dredmor through Steam(only through steam), with cloud turned off even. If I run Dredmor through it's own client, it doesn't delete the save.
  10. Wolg

    Wolg Member

    From what I remember you have to turn cloud off both in steam's UI and dredmor's config file...
  11. Kaidelong

    Kaidelong Member

    Yeah that's a nasty one, took me a while to figure out. It's in config.xml in your Documents\Gaslamp Games\Dungeons of Dredmor folder.
    Exile likes this.
  12. Bohandas

    Bohandas Member

    And even something that CAN be easily done can become hard to do if the preexisting part of the code lacks the proper sufficient annotations to let the programmer keep track of what does what.
  13. Bohandas

    Bohandas Member

    If fixing the save system was easy to do 'dd have done it already
  14. Wolg

    Wolg Member

    I'm afraid that's often not how development works, especially when multiple projects are involved.
  15. Kaidelong

    Kaidelong Member

    It really depends on library support. It might be incredibly hard in practice, especially cross platform. However you'd have noticed that I qualified my statement with "if the library support exists".

    I have worked with virtual file systems like this before, they're quite nice if you want atomic transactions.

    Also, like Haldurson said, I don't know anything about the state of the code base of Dungeons of Dredmor. It might in fact be incredibly hard due to the amount of refactoring that would be needed. I'm making an optomistic assumption about that.

    However I suggested using a virtual filesystem exactly because that'll probably not require much refactoring. You just change calls to the operating system to do file IO to calls to the library to do it instead for the virtual volume. Hopefully all these OS calls are in the same place...

    Looking at the state of the art though, it doesn't look like much exists here, so I'm thinking library support is not here anyway. Also I'm not sure "virtual file system" is the right term.
    Last edited: Jun 10, 2015
    Exile likes this.