3.0.9b initial questions

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • zaimoni
    Knight
    • Apr 2007
    • 590

    #31
    Originally posted by takkaria
    I'm interested in improving the V monster AI but right now am pretty clueless about it. I've been having a scan through Zaiband to see what you're doing there but given I've not really looked into AI much before I'm a little lost. I would be interested in where I could remove adult_ai_smart checks, though.
    At absolute minimum, I'd make the "possible summons" and "do bolts hit monsters rather than player" checks independent of adult_ai_smart. Recall that this is a one-line change in make_attack_spell().

    The AI in Zaiband 3.0.8 alpha is a work in progress. The damage metaknowledge code is decidedly immature, and the pathfinding needs a severe rewrite (although the minor tweaks I have already done do keep the AI from cheating when moving non-randomly, and solve non-door openers trying to flee through doors.)
    * The breath weapon selector is working considerably better, but the game's metaknowledge of resistances is not really there yet.
    * Checking for one-spell kills (with the player health bar, whose meaning is changed by smart_cheat i.e. adult_ai_smart) is not fully there yet. Some sort of comparison against melee damage is needed.
    * Probability-weighted Magic Missile vs Curse selection is stable.
    * Monster fear is not properly rewritten yet. I haven't worked out a proper non-cheating way of handling damage projection from either player missile weapons, or spells/wands/staves/rods.
    * It does look like I'll have to adjust the monster move rate display on the sidebar before implementing the triple-speed ghost AI. (I hope this will close a really bad abuse : ambling around at -3 to -6 speed at DL20 and lower. I really should not be able to survive that at all.)

    Eradicating the case statement in favor of an array of structs whose initialization is controlled by the preprocessor is a questionable decision at this point. I'm hoping that it'll make later changes to the AI easier.
    Zaiband: end the "I shouldn't have survived that" experience. V3.0.6 fork on Hg.
    Zaiband 3.0.10 ETA Mar. 7 2011 (Yes, schedule slipped. Latest testing indicates not enough assert() calls to allow release.)
    Z.C++: pre-alpha C/C++ compiler system (usable preprocessor). Also on Hg. Z.C++ 0.0.10 ETA December 31 2011

    Comment

    • takkaria
      Veteran
      • Apr 2007
      • 1951

      #32
      Originally posted by zaimoni
      At absolute minimum, I'd make the "possible summons" and "do bolts hit monsters rather than player" checks independent of adult_ai_smart. Recall that this is a one-line change in make_attack_spell().
      That much is now done. I'm still digesting the rest of your post (and code).
      takkaria whispers something about options. -more-

      Comment

      • Big Al
        Swordsman
        • Apr 2007
        • 327

        #33
        Well, the new Mr. Att looks great on white backgrounds:



        ...but not so good on black ones:



        I'd suggest putting a thin white border around the @, just like the black border around the equipment. I'd do it myself but I don't have any of my photo editing software installed on my laptop...
        Come play Metroplexity!
        Un, V MX H- D c-- f- PV s- d+ P++ M+
        c-- S I++ So+ B+ ac- !GHB SQ RQ+ V+

        Comment

        • roustk
          Adept
          • Dec 2007
          • 167

          #34
          Originally posted by Big Al
          ...but not so good on black ones:
          Eh -- Mr. Att is just really stealthy. If only he could find non-elven armor...

          Comment

          • ajps
            Apprentice
            • May 2007
            • 50

            #35
            Originally posted by Big Al
            Well, the new Mr. Att looks great on white backgrounds:
            ...but not so good on black ones:
            I'd suggest putting a thin white border around the @, just like the black border around the equipment. I'd do it myself but I don't have any of my photo editing software installed on my laptop...
            Well, I've got a few variations on trying to make it show up better, against an off-white, a photographic, and an off-black background. The problem with a thin white border around the black is that it tends to look quite jagged at small sizes, but anyway - any thoughts?



            (Note that these are all from the SVG source rendered in Inkscape against the various backgrounds, so anti-aliasing, etc, might be done better or worse with other tools)

            Comment

            • ChodTheWacko
              Adept
              • Jul 2007
              • 155

              #36
              Originally posted by takkaria
              That much is now done. I'm still digesting the rest of your post (and code).
              idle thought:
              Even though monsters shooting other monsters is dumb, I always liked the fact that a monster would shoot a sleeping monster to wake it up.

              As a mage player, it makes fighting packs of certain monsters tougher as it's harder to sleep & run.

              - Frank

              Comment

              • zaimoni
                Knight
                • Apr 2007
                • 590

                #37
                Originally posted by ChodTheWacko
                idle thought:
                Even though monsters shooting other monsters is dumb, I always liked the fact that a monster would shoot a sleeping monster to wake it up.

                As a mage player, it makes fighting packs of certain monsters tougher as it's harder to sleep & run.

                - Frank
                Monsters shouting to wake up sleeping monsters is more elegant, though.
                Zaiband: end the "I shouldn't have survived that" experience. V3.0.6 fork on Hg.
                Zaiband 3.0.10 ETA Mar. 7 2011 (Yes, schedule slipped. Latest testing indicates not enough assert() calls to allow release.)
                Z.C++: pre-alpha C/C++ compiler system (usable preprocessor). Also on Hg. Z.C++ 0.0.10 ETA December 31 2011

                Comment

                • Lebannen
                  Apprentice
                  • Apr 2008
                  • 61

                  #38
                  Originally posted by ajps
                  Well, I've got a few variations on trying to make it show up better, against an off-white, a photographic, and an off-black background. The problem with a thin white border around the black is that it tends to look quite jagged at small sizes, but anyway - any thoughts?

                  <snip>

                  (Note that these are all from the SVG source rendered in Inkscape against the various backgrounds, so anti-aliasing, etc, might be done better or worse with other tools)
                  Of your options, I like the fourth column best. I don't however think the additional white border is needed around the armour, as that's already two-tone - perhaps just make Mr Att (and his legs!) glow?

                  Full transparency is supported for OS X icons, so could easily make it a magical-looking glow, or fire brand appearance, or...

                  Comment

                  • Lebannen
                    Apprentice
                    • Apr 2008
                    • 61

                    #39
                    Originally posted by zaimoni
                    Mmm, I like this - it also makes more sense, and makes packs far more dangerous to stealthy players.

                    Comment

                    • Big Al
                      Swordsman
                      • Apr 2007
                      • 327

                      #40
                      Originally posted by zaimoni
                      FYI: Unangband already has this, as well as the ability for certain monsters to talk to each other. So, if eg. a monster tries to paralyze you and you resist, he'll say something along the lines of "Alex resists paralyzation." to all the other monsters in the area. Then they'll all know not to waste their mana trying to paralyze you. If you attack one member of a pack, they'll say "Alex has attacked me" and wake everyone else up.

                      Originally posted by Lebannen
                      Of your options, I like the fourth column best. I don't however think the additional white border is needed around the armour, as that's already two-tone - perhaps just make Mr Att (and his legs!) glow?
                      This was almost exactly what I was going to write before I saw that you wrote it...

                      PS. Where did Mr. Att get his name from?
                      Come play Metroplexity!
                      Un, V MX H- D c-- f- PV s- d+ P++ M+
                      c-- S I++ So+ B+ ac- !GHB SQ RQ+ V+

                      Comment

                      • zaimoni
                        Knight
                        • Apr 2007
                        • 590

                        #41
                        Originally posted by Big Al
                        FYI: Unangband already has this, as well as the ability for certain monsters to talk to each other. So, if eg. a monster tries to paralyze you and you resist, he'll say something along the lines of "Alex resists paralyzation." to all the other monsters in the area. Then they'll all know not to waste their mana trying to paralyze you. If you attack one member of a pack, they'll say "Alex has attacked me" and wake everyone else up.
                        I already lifted the pack part from Unangband into Zaiband. (More precisely, I was taking notes when UnAndrew was reviewing Unangband's AI on Usenet.)

                        I thought about the resistance communication, but wasn't able to decide at the time which monsters could communicate with whom.
                        Zaiband: end the "I shouldn't have survived that" experience. V3.0.6 fork on Hg.
                        Zaiband 3.0.10 ETA Mar. 7 2011 (Yes, schedule slipped. Latest testing indicates not enough assert() calls to allow release.)
                        Z.C++: pre-alpha C/C++ compiler system (usable preprocessor). Also on Hg. Z.C++ 0.0.10 ETA December 31 2011

                        Comment

                        • ajps
                          Apprentice
                          • May 2007
                          • 50

                          #42
                          Originally posted by Big Al
                          This was almost exactly what I was going to write before I saw that you wrote it...

                          PS. Where did Mr. Att get his name from?
                          Well, here's the not-wholly white outlined version:



                          I didn't include it because I thought it looked rather unbalanced on a dark background, particularly where the legs join the shoes. Looking now, I think I was maybe being over fusssy. The simplicity of the outline probably makes up for it anyway.

                          As for the name, he's always been called Mr Att - I think the name even came before the drawings. Have you seen the original Mr Att "cartoons"? I can't remember if I've ever plugged them on the forums: http://ajps.mine.nu/angband/mratt/

                          Comment

                          • Lebannen
                            Apprentice
                            • Apr 2008
                            • 61

                            #43
                            I think that one works for me, especially if combined with roustk's trick for a larger clickable target.

                            I like the "cartoons" (and have never seen them before) - I think small versions in the vein of the armour ones would be great for spicing up the Help 2.0 once it becomes available!

                            Comment

                            • Big Al
                              Swordsman
                              • Apr 2007
                              • 327

                              #44
                              Looks perfect, thanks!

                              And yes, I've seen the Mr. Att originals before - I like them.
                              Come play Metroplexity!
                              Un, V MX H- D c-- f- PV s- d+ P++ M+
                              c-- S I++ So+ B+ ac- !GHB SQ RQ+ V+

                              Comment

                              • pesachyonah
                                Rookie
                                • Jan 2008
                                • 11

                                #45
                                Originally posted by zaimoni
                                I thought about the resistance communication, but wasn't able to decide at the time which monsters could communicate with whom.
                                You've probably thought about this, but you could add a language field to the monster data files, with some monsters speaking multiple languages just like having multiple resistances. And communications in each language could be represented by different noise types, so that the player would perceive that the monsters were talking to one another but wouldn't know exactly what they were telling each other, e.g. Canine/Hound speakers would "growl" and "howl", Kobold/Orc/Ogre/Troll (i.e. "cave dwellers") speakers would "grunt" or the player would "hear guttural noises", Dragons would "hiss" or "roar", Undead would "gibber" and "wail", etc.

                                It occurs to me as well that monsters learning from their mistakes and remembering player resistances were game-play or birth options. Perhaps those options ought to be consolidated into a single "monsters communicate with each other intelligently" option?

                                Comment

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