Preparing for 4.2 release

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Gwarl
    Administrator
    • Jan 2017
    • 1025

    Originally posted by Pete Mack
    Yeah, that is sometimes a problem, too. But it was the illumination code that used to have "show reduced light radius while running" performance optimization. And it is running--and only runnning--where performance matters.
    Not quite true, resting near a pack of hounds that you can't see also take a while.

    But what you're saying makes sense and is interesting.

    Comment

    • Pete Mack
      Prophet
      • Apr 2007
      • 6883

      Fair enough. Running, resting and digging near a vault. They all share the same issue: multiple turns in a single command. Running is the one most used, and digging the one most likely to be slowed by monsters.

      Comment

      • Diego Gonzalez
        Adept
        • May 2007
        • 170

        Originally posted by Pete Mack
        Fair enough. Running, resting and digging near a vault. They all share the same issue: multiple turns in a single command. Running is the one most used, and digging the one most likely to be slowed by monsters.
        The amount of visible subwindows (monsters, objetcs) also affects the performance of running. Sometimes too many redraws is a problem. Perhaps this was solved long ago with an optimization. I don't remember.

        Comment

        • Pete Mack
          Prophet
          • Apr 2007
          • 6883

          Hmm. Redrawing subwindows when the command line is inactive seems particularly useless. Definitely worth checking.

          Comment

          • khearn
            Rookie
            • Jul 2007
            • 18

            Originally posted by Derakon
            It wouldn't surprise me if modern compilers are capable of saying "Ah, you're invoking this simple function here, we can just inline it" and get the same performance as a macro. In any case, the performance hit of invoking a function is miniscule in this day and age.
            Back in the early 90's, I was working in a group doing compiler optimization, and function inlining was definitely a thing way back then.

            Comment

            • Pondlife
              Apprentice
              • Mar 2010
              • 78

              Playing a gnome mage on latest nightly build (gbaacb2d0c) on Windows 10 x64.

              When my character dies and I select "n) new game" at the tombstone screen, sometimes the application dies immediately after displaying "Initialization complete" (or something similar - it only appears for a moment). The window just disappears. Re-starting the application works fine.

              This is not always reproducable though - sometimes it happens, and sometimes it doesn't.
              Playing roguelikes on and off since 1984.
              rogue, hack, moria, nethack, angband & zangband.

              Comment

              • Nick
                Vanilla maintainer
                • Apr 2007
                • 9647

                Originally posted by Pondlife
                Playing a gnome mage on latest nightly build (gbaacb2d0c) on Windows 10 x64.

                When my character dies and I select "n) new game" at the tombstone screen, sometimes the application dies immediately after displaying "Initialization complete" (or something similar - it only appears for a moment). The window just disappears. Re-starting the application works fine.

                This is not always reproducable though - sometimes it happens, and sometimes it doesn't.
                Thanks - I'm a bit surprised there haven't been more problems with this.
                One for the Dark Lord on his dark throne
                In the Land of Mordor where the Shadows lie.

                Comment

                • Nick
                  Vanilla maintainer
                  • Apr 2007
                  • 9647

                  Originally posted by PowerWyrm
                  It is indeed much nicer. I've updated my iterator to reflect on this, keeping pointers instead of structures because I don't like passing structs to functions.
                  On reflection, I think the best way to handle this whole idea is to create a point_set of the relevant grids (probably by making a new create_rectangle_point_set(), or something), and then iterate across the point_set.
                  One for the Dark Lord on his dark throne
                  In the Land of Mordor where the Shadows lie.

                  Comment

                  • clouded
                    Swordsman
                    • Jun 2012
                    • 268

                    Originally posted by Pete Mack
                    Yeah, that is sometimes a problem, too. But it was the illumination code that used to have "show reduced light radius while running" performance optimization. And it is running--and only runnning--where performance matters.
                    Just started up a 4.1.3-nightly game on angband.live and movement is noticably laggy. Even moving singular tiles takes more time than it should (and does in old variants) and running down a winding corridor takes seconds. I read phase door and my @ changed position, seeing a kobold in the darkness and then the (newly found) room appeared a few ms later, it was quite delayed. Similarly moving in and out of a lit room I can see the game updating the wall lighting in a very delayed fashion. This is with base delay 10 and movement delay 0.

                    Downloaded a local version and it seemed totally fine there though.

                    Edit: A couple things while playing necromancer: wielding a light should give a message saying it impacts spellcasting I think. Firing nether bolt at an undead produces no message and upon inspecting it (in this case a zombie kobold) it says that it "does not resist nether" despite being immune.
                    Last edited by clouded; August 3, 2019, 03:59.

                    Comment

                    • takkaria
                      Veteran
                      • Apr 2007
                      • 1951

                      Originally posted by Nick
                      On reflection, I think the best way to handle this whole idea is to create a point_set of the relevant grids (probably by making a new create_rectangle_point_set(), or something), and then iterate across the point_set.
                      But... code golfing aside, does it actually make the code more comprehensible? Seems like two loops, an inner and an outer, are really easy to understand...
                      takkaria whispers something about options. -more-

                      Comment

                      • Nick
                        Vanilla maintainer
                        • Apr 2007
                        • 9647

                        Originally posted by takkaria
                        But... code golfing aside, does it actually make the code more comprehensible? Seems like two loops, an inner and an outer, are really easy to understand...
                        Yeah, I'm thinking along those lines too (and Gwarl has been from the beginning). My basic guideline is "make the code look like it's describing the game world", and so I'm deciding which of the current two loops or "define this area, then do stuff to it" is more intuitive. And the fact that I'm still wondering probably means there's not enough difference to go through all the fuss
                        One for the Dark Lord on his dark throne
                        In the Land of Mordor where the Shadows lie.

                        Comment

                        • Sphara
                          Knight
                          • Oct 2016
                          • 504

                          Half-Troll Blackguard's regeneration consumes food even when you're not wounded. Resting with already full HP consumes 1% in precisely 30 turns, exactly the same time it takes to lose when resting wounded. Eating one food ration keeps you fed about 500 turns before hunger penalties kick in. This no good.

                          I guess this is because Blackguard's innate regeneration penalty overlaps with Half-Troll's own regen all the time? Innate impaired HP-regen and infravision both show non-highlighted gray plus in character sheet.

                          It kinda makes sense Trolls needing to eat much, but for me, it's too much. Let me know if this is a bug or not. I won't touch Half Troll-Blackguard, if this is intentional.

                          Comment

                          • Nick
                            Vanilla maintainer
                            • Apr 2007
                            • 9647

                            Originally posted by Sphara
                            Half-Troll Blackguard's regeneration consumes food even when you're not wounded. Resting with already full HP consumes 1% in precisely 30 turns, exactly the same time it takes to lose when resting wounded. Eating one food ration keeps you fed about 500 turns before hunger penalties kick in. This no good.

                            I guess this is because Blackguard's innate regeneration penalty overlaps with Half-Troll's own regen all the time? Innate impaired HP-regen and infravision both show non-highlighted gray plus in character sheet.

                            It kinda makes sense Trolls needing to eat much, but for me, it's too much. Let me know if this is a bug or not. I won't touch Half Troll-Blackguard, if this is intentional.
                            I don't think there are any bugs here, but let me clarify exactly what's happening:
                            • Half-trolls get regen, which means an added 15 (food bar is 10000) digested every game turn (usual digestion per game turn is roughly 10+speed, so at normal speed digestion is more than doubled);
                            • Blackguards get impaired HP regen, which stacked with Half-troll regen means a HT blackguard just gets normal speed regen;
                            • All characters regenerate hitpoints faster the fuller they are;
                            • HP makes no difference to digestion speed.


                            So HT blackguard gets fast digestion with no effect on regen. Slow digestion (which divides digestion by 5) is probably a good thing to have.
                            One for the Dark Lord on his dark throne
                            In the Land of Mordor where the Shadows lie.

                            Comment

                            • Sphara
                              Knight
                              • Oct 2016
                              • 504

                              Originally posted by Nick
                              I don't think there are any bugs here, but let me clarify exactly what's happening:
                              • Half-trolls get regen, which means an added 15 (food bar is 10000) digested every game turn (usual digestion per game turn is roughly 10+speed, so at normal speed digestion is more than doubled);
                              • Blackguards get impaired HP regen, which stacked with Half-troll regen means a HT blackguard just gets normal speed regen;
                              • All characters regenerate hitpoints faster the fuller they are;
                              • HP makes no difference to digestion speed.


                              So HT blackguard gets fast digestion with no effect on regen. Slow digestion (which divides digestion by 5) is probably a good thing to have.
                              Ok, thanks for the answer.
                              For slow digestion: I have sDigest and it CERTAINLY did not divide the characters hunger rate by 5. Did you mean 2? I lost 1% in about every 60 turns of waiting and 1%/30 turns without it. This was tested by resting at 32% satiation level.

                              Comment

                              • fph
                                Veteran
                                • Apr 2009
                                • 1030

                                I find out now that blackguards have ImpHP as an intrinsic. That seems an important drawback. Maybe it should be mentioned on the character creation screen?
                                --
                                Dive fast, die young, leave a high-CHA corpse.

                                Comment

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