okay, this is more of a kvetch than an actual question, but is there any difference between bash, blitz, cuff, headbutt, elbow, jab, kick, knee, leap, lunge, punch, punt, pummel, roundhouse, shoulder, spinkick, spurn, strike, swat, swipe, uppercut, and vault?

do we really need 22 ways to strike someone who you are already swinging your sword at five times per second?

I think it had to do with wanting different and better skills as you advanced through levels, and it was (for whatever reason, perhaps technical) decided that this should be done with different skills instead of making a given skill progress with levels (for example having damage be a function of level).

That said, some differences can actually matter; you could imagine not being able to use hand techniques if you're wielding weapons, for instance. KaVir's GWII game does things with different techniques being interesting due to what can be followed up with what, what an attack's relative speed is, etc.

okay, this is more of a kvetch than an actual question, but is there any difference between bash, blitz, cuff, headbutt, elbow, jab, kick, knee, leap, lunge, punch, punt, pummel, roundhouse, shoulder, spinkick, spurn, strike, swat, swipe, uppercut, and vault?

Depends on the implementation, but from a design perspective I'd certainly hope so (even if it's just a case of scaling damage with progression, as suggested by David).

okay, this is more of a kvetch than an actual question, but is there any difference between bash, blitz, cuff, headbutt, elbow, jab, kick, knee, leap, lunge, punch, punt, pummel, roundhouse, shoulder, spinkick, spurn, strike, swat, swipe, uppercut, and vault?

bash lags the opponent, which only works on players, but is vastly different than all the other skills. The others are basically just the same cookie-cutter attack skill with different damages/levels. Unrelatedly, I think having attacks that are only useful for certain levels is stupid. Just make them all useful in different situations, and hand them out at different levels, if you really need such a thing.

do we really need 22 ways to strike someone who you are already swinging your sword at five times per second?

5 sword-swings a second is dumb, you may as well just make it one and do 5x damage. And to answer your previous questions, YES, you need 22 to ways to strike someone, but they should all do different things, not be the same skill. You can do some very interesting things with short-duration effects too. Here's some ideas:

These are all off the top of my head and quite a few of them aren't meant seriously, but you get the idea. If skills all react to subtle changes in the user and defender's stats and also AFFECT those stats, even temporarily, you can get some interesting combinations of skills that become useful. And if you're anything like me, the more options you have during a fight, the less likely you are to get pissy and complain on channels for 2 years.

My five-times-per-second comment was about the skills:* second attack* third attack* fourth attack* fifth attack

which I believe are SMAUG stock and if I understand correctly are additional attacks per round. Of course a round is a little longer than one second.

If anything I say sounds ignorant it's because I've been building and implementing (but not coding) on SMAUG derivatives for about 8 years but have probably only played a stock smaug for about 10 minutes total.

I don't have all the skills mentioned, otherwise I'd post examples for all of them (too lazy to make them up). There are a lot of potential variations that are either strategic or situational, and not solely statistical variants. It depends a lot on the available infrastructure of the game, though. I'm not sure I understand the rationale behind this post…

My five-times-per-second comment was about the skills:* second attack* third attack* fourth attack* fifth attack

which I believe are SMAUG stock and if I understand correctly are additional attacks per round. Of course a round is a little longer than one second.

To be clear, I understood what you meant and was commenting about 2nd/3rd/4th/5th attack in my previous post. A round is really more like 3 seconds, supposedly, although it never seems that way to me. I just went with the X attacks a second because that is what your post said. 2nd/3rd/4th/5th attack are one of the things that I absolutely loathe about Smaug. Let's take for example a pk fight with two people against another two. Each person in the fight has 4 (maybe even 5) attacks. Assuming 4 attacks, that's 16 attacks a round, not counting mid-round murders, which would boost it another 4 for each murder. If no one is murdering now, we also have between 1/2 and 1 skill-based attack each round by each non-tank individual, so we'll say 1 extra, and if the tanks are taking sufficient damage, they'll be healing as fast as they can, which is either 4 or 8 potions a round, not bothering with springs and other such things. So that's either 8 or 16 possible actions. So we end up with 25 (or 33) actions occurring every 3 seconds, with up to 39 (or 47) with extra murders. In a 2 on 2. It's been a while since I pked, and I'm distracted while writing this, so I may be exaggerating things a bit. At any rate, the only way I was ever able to pk in such a setting was to use massive amounts of highlights and use echo triggers to say things like SANC 30 times on 3 lines if my sanc fell. There is a stock setting you can use to avoid seeing misses, but then you can't distinguish misses from attacks you simply didn't make. I don't know about you, but I can't read that fast, and there's no real point in having such a system. It also does nothing to make the game more interesting. Experienced pkers would always tell me that after a while you learn to ignore all the spam and only pick out the interesting parts. If something like 80% of what you are displaying isn't interesting, why even display it?

As a codebase, Smaug has a great deal of potential and some very great features. As an example of game design, though, stock Smaug is pretty brain-damaged.

5 sword-swings a second is dumb, you may as well just make it one and do 5x damage.

Five attacks per second plus extra skill-based attacks is indeed rather odd, but it is certainly not the same thing as just one with five times the damage. Five attacks means that many more chances to land a hit – and sometimes landing a hit can be more important than dealing damage [1] – whereas one attack means you get one chance and that's it. If the "five per second" frequency bugs you, think of it as "five per ten seconds" (one per two seconds) – this is certainly not exactly the same as one per ten seconds with five times the damage.

[1] e.g., when using poison, using some special attack that blinds (or whatever) the opponent, trying to disrupt a spell, trying to disrupt concentration in general, and so forth.

5 sword-swings a second is dumb, you may as well just make it one and do 5x damage.

Five attacks per second plus extra skill-based attacks is indeed rather odd, but it is certainly not the same thing as just one with five times the damage. Five attacks means that many more chances to land a hit – and sometimes landing a hit can be more important than dealing damage [1] – whereas one attack means you get one chance and that's it. If the "five per second" frequency bugs you, think of it as "five per ten seconds" (one per two seconds) – this is certainly not exactly the same as one per ten seconds with five times the damage.

[1] e.g., when using poison, using some special attack that blinds (or whatever) the opponent, trying to disrupt a spell, trying to disrupt concentration in general, and so forth.

With the possible exception of wimpy (ugh), it's the same as one attack with 5 chances to hit, each increasing the current damage. To avoid the line noise, you may as well just display something like:

Bob hits scratch, wound, disorient, miss, and aggravate Fred!

(for the same amount of damage, instead of seeing all the spam)

For reference, I think the damage is too high too, but I suppose that's another argument.

Just another suggestion for different effects of punch. If you've ever been punched in the nose really hard you know that it can make it difficult to see for a while afterward. Perhaps you could add in a chance for blinding for 1 - 3 rounds depending on the attacking char's proficiency with the punch skill. A player with 20% punch would get a 2% chance of blinding for 1 round. A player with 50% would get a 5% chance for 2 rounds, a player with 75% or higher would get a 10% chance of blinding for 3 rounds. I toyed around with the idea of totally re-doing all of the warrior-type skills in this manner when I was tinkering with a rom a while back. I only got a few of them done before I realized how big the job was and that my skills weren't quite up to doing some of the things I wanted to do, but the punch modification was fairly easy to do even for me. If you want further ideas for modifications lemme know and I'll throw them your way, this offer is open to anybody. I'm full of ideas but my skills aren't quite up to the job.

[edit to add] You could also make the victim have a chance to not be affected depending on their con stat or add a new toughness stat for the purpose of resistance to these type of attacks.

With the possible exception of wimpy (ugh), it's the same as one attack with 5 chances to hit, each increasing the current damage.

Except, as David pointed out, each hit may cause other effects (which could be cumulative). Also, if you implement armour as damage soak, it would apply against each attack separately. You might also have other features that respond differently to multiple attacks, such as a 'parry' skill which only works against the first attack each round, or a 'counterattack' which gains a bonus for every blow that misses, etc.

With the possible exception of wimpy (ugh), it's the same as one attack with 5 chances to hit, each increasing the current damage. To avoid the line noise, you may as well just display something like:

Bob hits scratch, wound, disorient, miss, and aggravate Fred!

Now you're just talking about compressing output, not making it just one attack. Your previous statement was saying that 5 hits at damage X was the same as 1 hit at damage 5X, which is what I was disagreeing with. This new statement I have little issue with, except that it's about output control and not attack control. That said, I think KaVir's point (that some players like the output) is worth considering.

That code is doing one roll and multiplying by the number of hits, as opposed to doing one roll per hit. Was that intentional?

Probabilistically speaking, this makes it easier to inflict maximum possible damage, in addition to reducing the number of possible damage amounts. Consider damage in range 1-2, and 3 attacks. Assume that all hits land.

Normally the probability of inflicting six points of damage is 1/2 * 1/2 * 1/2 = 1/8. (Because you have to roll 2 three times.)Using your method, it's simply 1/2. (Because you have to roll 2 simply once.)Furthermore, your method removes the damages in between.

For example, the normal way allows damages:3 with probability 1/8 (only one way to get 3: 1/1/1)4 with probability 3/8 (the three ways to get 4 are 1/1/2, 1/2/1, 2/1/1)5 with probability 3/8 (the three ways to get 5 are 1/2/2, 2/1/2, 2/2/1)6 with probability 1/8 (only one way to get 6: 2/2/2)

whereas your method only allows damages:3 with probability 1/2 (1/2 chance to get 1, times 3)6 with probability 1/2 (1/2 chance to get 2, times 3)

So, you have not only reduced the output, but you have also changed the combat rules.

The first solution we implemented to reduce combat spam (and we've since moved onto better things) was to add two variables multi_hit, num_hits and total_damage. When it called one_hit, it did it something to the tune of if ((dam_swing = one_hit(ch, vict, blah blah blah)) > 0) {dam_total += dam_swing; num_hits++;}. The damage func was then called with those variables, which in turn called the dam message stuff. We had to do a fair share of code acrobatics to make sure everything worked as intended.

That seemed the simplest solution, but it definitely wasn't the best one. We've since revamped combat (more than once, actually) to include more complicated mechanics. In the process we also removed multi hits. It makes things much simpler to work with and is far easier (for me, at least) to understand at a glance.

The take-away from this is what David's getting at: stock combat systems are complicated and thus easy to mess up.

As far as the OP goes, I would say that it's silly to have a huge list of skills that all do the same thing, especially if they all belong to the same class. There are some good suggestions in this thread for minor variation. Those are excellent starting points. Go from there.

Actually i had not thought about this, it would make sense to roll damage for each successful attack and sum up the results (adding this to todo list), thus keeping closer to what smaug did originally, however i do not think it really makes much of a difference as everyone gets to play by the same rules, and apart from a few minor tweaks here and there, players have not really noticed the difference at all. BTW i did not write the code, it was given to me from the original author to use, also the author has made the snippet public domain, so anyone can use it.

On the subject of Smaug combat spam reduction, I had had an idea on how to handle it the last time I was messing with Smaug. I never got around to writing it, so (like many of my ideas) it's probably either a really great idea or a really dumb one, I'm not much for middle ground.

Anyway, the idea was to add static variables to damage(), last_victim and last_attacker. I think I'd probably need about 5 (10) other static variables, for the damage (and type) of up to 5 attacks. Then I planned to add an extra damage at the end of each multi_hit and melee_hit where it would pass some magic number and a bunch of nulls. I think that's how it was going to work, I forget. Anyway, the gist is that as long at the attacker and the defender were the same, damage() would just keep track of the numbers, when they differed, it would display all the damage messages at once on one line.

The trouble with this is that you'd have to basically tell damage to "flush" and just display what it has without waiting around anymore. I wouldn't think that'd be a terribly big deal, but it would involve some busy-work in going through the skills/spells.

okay, this is more of a kvetch than an actual question, but is there any difference between bash, blitz, cuff, headbutt, elbow, jab, kick, knee, leap, lunge, punch, punt, pummel, roundhouse, shoulder, spinkick, spurn, strike, swat, swipe, uppercut, and vault?

do we really need 22 ways to strike someone who you are already swinging your sword at five times per second?

No. Personally I have a distaste for games that use multiple skills that do the same thing. As I do for games where a bunch of spells named different things do the same thing.