What Eddie Plays

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • PowerDiver
    Prophet
    • Mar 2008
    • 2820

    #76
    I think V combat is fine if you just use a decent blows function. Blows = min {f(str, weight) , g(dex)} should be the format IMO. 3.1+ took the worst parts of the 3.0 blows calculation and then emphasized them some more. Ugh.

    It's a shame I haven't released a playable version of "What Eddie Plays", but I felt it necessary to play a game through first clearing levels, and tweak it for the masses. A certain recent event led to playing while angry and YASD. It may be a while.

    Here's the blows code I use.
    Code:
    #define MAX_TYPICAL_BLOWS 5
            double blows;
            double str_blows;
            int weight;
            u32b f1, f2, f3;
    
            /* stat_ind of 0 corresponds to real value of 3 */
            str += 3;
            dex += 3;
    
            /*
             * We could subtract off current weapon str and dex bonuses, then
             * add bonusus from o_ptr, but for now o_ptr is guaranteed to
             * be the wielded item in calc_bonuses(...)
             */
    /*
            printf("str %d, dex %d", str, dex);
    */
    
            /* give full benefits to 18/200 stats */
            if (str > 37)
                    str = 40;
            if (dex > 37)
                    dex = 40;
    
            weight = o_ptr->weight;
            /* baseline no weight penalty with dagger */
            weight -= 12;
            if (weight < 0)
                    weight = 0;
    
            blows = 1.0 + ((MAX_TYPICAL_BLOWS - 1.0) * dex / 40.0);
            str_blows = (3.75 + (str * str / 40.0))/(3.0 + efg_sqrt(weight/10.0));
            if (str_blows < blows)
                    blows = str_blows;
    
            /* adjust 20% if not a mixed caster */
            if (cp_ptr->max_attacks > MAX_TYPICAL_BLOWS)
                    blows = 1.2 * blows;
            else if (cp_ptr->flags & CF_ZERO_FAIL)
                    blows = 0.8 * blows;
    
            object_flags(o_ptr, &f1, &f2, &f3);
            if (f1 & TR1_BLOWS)
                    blows += o_ptr->pval;

    Comment

    • Derakon
      Prophet
      • Dec 2009
      • 9022

      #77
      Originally posted by PowerDiver
      Here's the blows code I use.
      Interesting. If I read that correctly, everyone uses the same blows calculations, but warriors just get 20% more blows/round, flat out? That's a neat way to make them better at melee.

      I like the idea of "you need to be strong enough to swing this weapon effectively, but once you hit that threshold DEX is what limits your attack speed." Conceptually it makes sense, which is always nice. It'd be nice if the f(str, weapon_weight) function were a straightforward formula, but I haven't done the analysis to see how feasible that is.

      Comment

      • PowerDiver
        Prophet
        • Mar 2008
        • 2820

        #78
        Originally posted by Derakon
        Interesting. If I read that correctly, everyone uses the same blows calculations, but warriors just get 20% more blows/round, flat out? That's a neat way to make them better at melee.

        I like the idea of "you need to be strong enough to swing this weapon effectively, but once you hit that threshold DEX is what limits your attack speed." Conceptually it makes sense, which is always nice. It'd be nice if the f(str, weapon_weight) function were a straightforward formula, but I haven't done the analysis to see how feasible that is.
        Right about simple +/- 20% compared to half-casters.

        The problem is the weapon weights. I didn't want to go fiddling, and I wanted to roughly match the old progression as implied by the tables. You have to go quadratic in str divided by square root of weight, and then it's lots of hard work play testing to get the constants to work pretty well. Hopefully it also works out to a str 3 mage getting 1.0 blow per round with a dagger. I might have had to fiddle further after getting that, don't remember if it is still true. That's also not the entire code, there is some rounding elsewhere I think to convert to tenths of blows instead of full floating point.

        Another big difference not in that code snip is that I treat partial blows differently at a macro level. Consider 1.8 blows per round. 3.1+ treats that as a series of attacks using (100/1.8) energy each. I treat it as 80% likelihood of two 50-energy blows, and 20% chance of one 100-energy blow ,each turn independently. If you don't kill your opp with the first blow, your turn takes precisely 100 energy, the way it should be. This generalizes to even 0.3 blows per round for a weak char with an overly heavy weapon, where 70% of the time "You fail to swing your heavy weapon this round.", still at the standard cost of 100 energy.

        Comment

        • Derakon
          Prophet
          • Dec 2009
          • 9022

          #79
          Originally posted by PowerDiver
          Another big difference not in that code snip is that I treat partial blows differently at a macro level. Consider 1.8 blows per round. 3.1+ treats that as a series of attacks using (100/1.8) energy each. I treat it as 80% likelihood of two 50-energy blows, and 20% chance of one 100-energy blow ,each turn independently.
          I've gradually become convinced that your way is the right way here. I liked the reduced-energy-cost approach from a mathematical standpoint, but it's not what players expect -- we've had multiple people ask "if I'm getting 3.5 blows/round, how come I never get 4 attacks in one go?" Plus having your turn take only 80 energy (or whatever) is kind of weird. Turns should take 100 energy.

          On a related note, I've been quietly agitating for the removal of extra shots modifiers as being too hard to balance. Give rangers +1/+2 on their launcher multiplier instead.

          Comment

          • fph
            Veteran
            • Apr 2009
            • 1030

            #80
            Originally posted by Derakon
            I've gradually become convinced that your way is the right way here. I liked the reduced-energy-cost approach from a mathematical standpoint, but it's not what players expect -- we've had multiple people ask "if I'm getting 3.5 blows/round, how come I never get 4 attacks in one go?" Plus having your turn take only 80 energy (or whatever) is kind of weird. Turns should take 100 energy.
            I don't see an easy way to account for speed in this framework, though. Both movement speed and attack speed, if you plan to split them.
            --
            Dive fast, die young, leave a high-CHA corpse.

            Comment

            • Nick
              Vanilla maintainer
              • Apr 2007
              • 9647

              #81
              OK, it's clear to me yet again why I'm leaving combat system changes to last.

              Clearly all that I need to do is design a combat system which combines all the best aspects of V, O, v4 and Sil combat (and I nearly forgot Ey - how could I?) which removes all the properties which annoy anyone, is simple to explain, and actually makes the game play exactly as it currently does, only better in some indefinable way.

              Of course once I do this, someone will point out that their Kobold Mage wielding Narthanc and a Ring of Damage (+11) used to be able to kill an Uruk in three rounds, and now it's taking four or even five. The game has been ruined and it should be reverted back to 2.6.2 with the named slime molds patch.

              I feel better now
              One for the Dark Lord on his dark throne
              In the Land of Mordor where the Shadows lie.

              Comment

              • fizzix
                Prophet
                • Aug 2009
                • 3025

                #82
                Originally posted by Nick
                OK, it's clear to me yet again why I'm leaving combat system changes to last.
                I don't think you need to make a perfect system up front. But I do think we need to know where we're headed towards for good design decisions as far as monsters and gear are concerned. A rough framework choice is what I'm asking for.

                Comment

                • Bogatyr
                  Knight
                  • Feb 2014
                  • 525

                  #83
                  Originally posted by Derakon
                  Random silly idea: reduce all monster damage values by a factor of 5, but make all player spells that aren't immediate offensive actions take 5 turns to go off. Want to phase door? Cast it 5 turns in advance. One turn from death? You should've drunk a healing potion five turns ago.
                  Mage non-attack escapes are in fact part of their "offense". If you do this, then you must make warriors swing 5 turns in advance, too, which would be pretty ridiculous.

                  Comment

                  • Derakon
                    Prophet
                    • Dec 2009
                    • 9022

                    #84
                    Originally posted by fph
                    I don't see an easy way to account for speed in this framework, though. Both movement speed and attack speed, if you plan to split them.
                    The only way speed currently touches on turns is that it dictates how much energy you get per game turn. You still use 100 energy for all turns, except for edge cases like not using all of your blows in one round, or having a bow of extra shots.

                    If I were to split movement speed from combat speed, though, then I think I'd do it by having your "movement speed modifier" divide the amount of energy it takes to move one tile. So a +1 mod means you move twice as fast (it takes half the time to move one tile), +2 three times as fast, etc. That might be too powerful, I don't know, but it's a nice, simple system, and it should be easy to implement without ripping out the existing speed system (just make movement take less energy).

                    Combat speed can just stay with the "how many blows do you get in one round?" system.

                    Originally posted by Bogaytr
                    Mage non-attack escapes are in fact part of their "offense". If you do this, then you must make warriors swing 5 turns in advance, too, which would be pretty ridiculous.
                    You laugh, but I'm actually considering trying to build a game that basically works something like this. It'll probably never happen, considering my track record with game development, but I'm having fun thinking about it at least. Have you ever played Frozen Synapse?

                    Comment

                    • PowerDiver
                      Prophet
                      • Mar 2008
                      • 2820

                      #85
                      Originally posted by fph
                      I don't see an easy way to account for speed in this framework, though. Both movement speed and attack speed, if you plan to split them.
                      This combat works perfectly with speed in a turn-based game. You accumulate energy according to your speed, and when you get 100+ energy you spend 100 energy doing something, which should include 1 round of attacks. That's how the entire rest of the game works. The only difference with the melee attack system is in charging less than 100 energy if you have multiple blows, and achieve a kill before the last blow. I think this is an improvement worth the inconsistency, especially as I wanted other actions such as wield and unwield to take less than 100 energy [50 each in my code].

                      Comment

                      • Estie
                        Veteran
                        • Apr 2008
                        • 2347

                        #86
                        What exactly are you hoping to achieve by splitting the speeds ? Currently, the stable endgame setup most meleers end up with a speed boots, speed ring and damage ring. If you split speed, maybe it will be something like speed boots, speed ring and attack speed ring instead of damage ring, but you still end up playing the same game.
                        There are already enough different modifiers to have overflow; wouldnt it be more interesting to try to get away from that stable sink everyone ends up with, by distributing the mods differently over the item types, than adding new ones with the only effect being to change the shape of the sink ?

                        Currently speed +10 is the most important property and tops everything else; but from 10 -> 20, you already have competition, from stats and even damage alternatives. Also, recent changes (including Fizzix´s patch to make speed values dependant on dlvl) mean you dont normally get +10 speed in one swoop, usually you start with less from your first items. So, by splitting speed, you dont even gain more relevant choices in the mid game.

                        What am I missing ? To me, it seems splitting speeds is just like pouring water into the soup. More, but not better.

                        Comment

                        • Derakon
                          Prophet
                          • Dec 2009
                          • 9022

                          #87
                          Originally posted by Estie
                          What exactly are you hoping to achieve by splitting the speeds ?
                          The hope is to bring some degree of balance to the different modifiers in the game. Speed is, by a gigantic margin, the most important modifier the player can have on a piece of gear. It remains as such until you hit +20 at least and is still pretty competitive above that. It's such that there's absolutely no question that you wear every piece of speed gear you can until you start hitting those higher levels.

                          This distorts game balance badly and removes choice from the player. It's certainly nice to get a new speed item and suddenly be much more powerful than you used to be, but it'd also be nice if speed wasn't such a hugely dominant part of the "equipment equation".

                          I think it's at least worth examining, even if we ultimately decide it's not worth implementing in the "final version".

                          Also, remember, there are no bad ideas when brainstorming! You too, Bogatyr, don't think I didn't notice when you poo-poo'd my 5-turns idea!

                          Comment

                          • Estie
                            Veteran
                            • Apr 2008
                            • 2347

                            #88
                            I was just wondering if I am missing something. Apparently I am not

                            Comment

                            • TJS
                              Swordsman
                              • May 2008
                              • 473

                              #89
                              Originally posted by Derakon
                              The hope is to bring some degree of balance to the different modifiers in the game. Speed is, by a gigantic margin, the most important modifier the player can have on a piece of gear. It remains as such until you hit +20 at least and is still pretty competitive above that.
                              This is true, but I don't think that making it more complex and unintuitive by splitting up the speeds is the answer.

                              But yes speed is ludicrously overpowered. Two possible solutions I can think of, one is make monsters either normal speed or fast and give the player access to temporary speed boosts only.

                              Or less controversial just reduce the speed boosts on equipment to smooth out the bumps in speed increases. Also reduce the need to have +20/30 to even survive instakill monsters.

                              Comment

                              • Pete Mack
                                Prophet
                                • Apr 2007
                                • 6883

                                #90
                                "Smoothing things out" turns out you be a mistake, usually. The bumps make the game both more challenging and more exciting. Good gameplay requires imperfect balance.

                                Comment

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