Question about Death

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • jellobrain23
    Rookie
    • Apr 2014
    • 4

    Question about Death

    Hello everyone, I've been playing Angband on Ubuntu for several years, and I have a question. Recently, I discovered that it is possible for me to "cheat death" by just closing the window when I get the tombstone screen. As long as I don't type "q", I can just reopen the game and restart from the beginning of the level / save point. I can also do this if I can tell that I'm about to die.

    This is too tempting! When my high level character dies, I just can't let him go. But I also believe that this "immortality" takes some of the fun away - I don't get that thrill that I used to get while running away from a monster. I don't have as much awe for the deep levels of the dungeon as I used to. I wish that I had never discovered this trick.

    My question is this: Is there some option that I can enable to save more frequently? Ideally, I'd like it to autosave right after I die, and also every time I close the program (by clicking the X). I would also be ok with auto-saving every couple turns or something like that. I believe that doing this would restore some of the original thrill of the game, and alleviate my temptation to "cheat".

    Thanks in advance!
  • kaypy
    Swordsman
    • May 2009
    • 294

    #2
    The game keeps backup saves in case something out of game destroys the session. It assumes that if you are going to abuse the savefiles, then you will find ways to abuse the save files regardless (what is it going to do- scan your entire hard drive looking for anywhere you might have stashed a copy of the save?). Instead, it offers the Avoid Death cheat option to make cheating so easy that fiddling with the files is pointless.

    Still, it may be possible to raise the cheating hurdle a bit, but you will need to hack it in to your own copy. Are you willing to compile your own executable?

    If so, then adding in a
    Code:
    save_game();
    to spells1.c at about line 586 (just before the
    Code:
    msgt(MSG_DEATH, "You die.");
    )

    will cause the game to save at the appropriate point. But it will also scramble some of the messaging and is generally not at all tested...

    Comment

    • jellobrain23
      Rookie
      • Apr 2014
      • 4

      #3
      Thanks, this is exactly what I was hoping for!

      If it's not too much, could you also point me to a method that executes each turn (or something similar)? I'd like to also add save_game() to that.

      Thanks again.

      Comment

      • fizzix
        Prophet
        • Aug 2009
        • 3025

        #4
        Originally posted by jellobrain23
        Thanks, this is exactly what I was hoping for!

        If it's not too much, could you also point me to a method that executes each turn (or something similar)? I'd like to also add save_game() to that.

        Thanks again.
        If it is executed each turn, you would definitely see a hit in gameplay speed.

        I'm not sure what the reasoning is. Is it because when something bad happens on the level, you feel the need to copy a save-file and replay from the beginning. If so, how will you prevent yourself from just copying the savefile at the start of the level?

        Comment

        • chris
          PosChengband Maintainer
          • Jan 2008
          • 702

          #5
          Originally posted by kaypy
          It assumes that if you are going to abuse the savefiles, then you will find ways to abuse the save files regardless (what is it going to do- scan your entire hard drive looking for anywhere you might have stashed a copy of the save?).
          I think this showed that it is quite possible and even desirable for the game to prevent savefile abuse! Of course, there might have been a few minor side effects

          Comment

          • debo
            Veteran
            • Oct 2011
            • 2402

            #6
            Not sure how it's implemented, but the gcu version of sil definitely saves after each turn. I'm guessing this is from NPP and not sil-specific??
            Glaurung, Father of the Dragons says, 'You cannot avoid the ballyhack.'

            Comment

            • jellobrain23
              Rookie
              • Apr 2014
              • 4

              #7
              Thanks for all the replies, everyone.

              To clear things up, I'm not worried about backing up the save file. I'm more worried about being tempted to just close the game (by clicking the X on the window) if my death is imminent. My version, at least, does not seem to save if I close the game in that way. The next time I open the game, I am located safely at the beginning of that level.


              Ideally, I'd like to find a method that executes on program close (even if by clicking the X on the window) and add save_game() there. However, I realize this might not be possible, so a hack solution would be just to save every 10 turns or something similar.

              Comment

              • fizzix
                Prophet
                • Aug 2009
                • 3025

                #8
                Originally posted by jellobrain23
                Thanks for all the replies, everyone.

                To clear things up, I'm not worried about backing up the save file. I'm more worried about being tempted to just close the game (by clicking the X on the window) if my death is imminent. My version, at least, does not seem to save if I close the game in that way. The next time I open the game, I am located safely at the beginning of that level.


                Ideally, I'd like to find a method that executes on program close (even if by clicking the X on the window) and add save_game() there. However, I realize this might not be possible, so a hack solution would be just to save every 10 turns or something similar.
                I believe this already occurs. The game should auto-save on program close.

                Comment

                • jellobrain23
                  Rookie
                  • Apr 2014
                  • 4

                  #9
                  Hmm, very strange... Maybe this is a small bug in my particular version (X11 on Ubuntu)?

                  Actually, after starting Angband from the command line, I believe this is the case. Quitting normally (via keyboard commands like pressing "q" after I die) works fine. But if I quit it by clicking the X on the window, I get the following error message:

                  XIO: fatal IO error 11 (Resource temporarily unavailable) on X server ":0.0"
                  after 33052 requests (32169 known processed) with 0 events remaining.

                  Seems like pressing the X causes Angband to crash and skip the auto-save. I just never noticed it before when I started it from the launcher. But it could also be a bug in my graphics driver or something similar. Unless anyone has an idea, I'll try fiddling around with some stuff - I'll report back if I find anything.

                  Comment

                  • ThunderToads
                    Scout
                    • Jun 2008
                    • 46

                    #10
                    Originally posted by jellobrain23
                    This is too tempting! When my high level character dies, I just can't let him go. But I also believe that this "immortality" takes some of the fun away - I don't get that thrill that I used to get while running away from a monster. I don't have as much awe for the deep levels of the dungeon as I used to. I wish that I had never discovered this trick.
                    Just use a bit of willpower. Even if you end up savescumming on autopilot, you can always conciously suicide the character when you reload.

                    Comment

                    • kaypy
                      Swordsman
                      • May 2009
                      • 294

                      #11
                      I'll leave close-on-exit to the experts, but would it help to add a save just before
                      Code:
                      bell("Low hitpoint warning!");
                      about a page after the other one? That will get you an autosave at about the point you know things are going badly.

                      If you need to go to extremes you might find where the normal autosave is and have it mark the autosave as 'dead', so if you crash out (deliberately or accidently), your character is lost.

                      Comment

                      • nppangband
                        NPPAngband Maintainer
                        • Dec 2008
                        • 926

                        #12
                        Originally posted by debo
                        Not sure how it's implemented, but the gcu version of sil definitely saves after each turn. I'm guessing this is from NPP and not sil-specific??
                        I don't recall npp ever doing anything like this with the GCU port. Of course, I have been tinkering with NPP for over 10 years, so I may have forgotten that I did it.

                        I am guessing here, but perhaps somebody was trying to capture a crash bug by saving after every turn, and forgot to disable it after the bug was trapped?
                        NPPAngband current home page: http://nppangband.bitshepherd.net/
                        Source code repository:
                        https://github.com/nppangband/NPPAngband_QT
                        Downloads:
                        https://app.box.com/s/1x7k65ghsmc31usmj329pb8415n1ux57

                        Comment

                        Working...
                        😀
                        😂
                        🥰
                        😘
                        🤢
                        😎
                        😞
                        😡
                        👍
                        👎