Throwing debate

So one of the blockers for version .D is throwing being op, and the debate got mired down on tangents about slings and so forth. So, let’s take this one step at a time and start with how much damage a thrown object can do when thrown unassisted and work from there. The upper limit for a throw ing would probably be an mba baseball player, able to throw at 90 to 100 miles an hour. This might kill an average person if it hits them in the throat(aka a crit headshot). If I recall correctly, a player’s head with no buffs has around 98? Hitpoints(regardless, the amount of damage the ball should do should not exceed that amount on a crit with max skill and the headshot modifier in place.). This would also apply for rocks and similar objects, hopefully preventing rock spam from killing hordes.
Also, perhaps rocks could have a penalty to be thrown accurately on account of their irregular shape, unless there already is one and I don’t know about it.

I’d have no objections to a MLB pitcher (throwing 10, str/dex 14 or so) being able to one shot a regular zombie with a thrown rock at moderate range (MLB mound-to-plate distance is roughly 20 tiles), though I would be interested in some numbers for how long such pitches take to execute. The problem is the level of lethality with rocks with no skills and poor stats.

I think a MLB pitcher is a reasonable model for rock throwing, the tricky thing IMO is turning that kind of stats into a damage formula.

I think javelin throwing is a lot easier actually, there are a number of resources on determining effectiveness of broadheads on big game for arrows, javelins should be pretty similar in broad strokes, just with a larger projectile and less velocity. The tricky thing there is accuracy, there are tens of resources for javelin distance, but not so much for accuracy.

a very fair rule for throwing, is even with great skill and strength, with archery at the same skill, a bow with a good arrow should never have worse range and power+accuracy at high range than a thrower.

Throwing should be a valid play-style, but have disadvantages over conventional ranged weapons due to it’s versatility, anything can be a weapon!

One thing to take into account is that gun ranges work a lot better now than they did before, which makes it viable to play with ranges with throwing weapons as a form of balance.

Regarding the MLB player, I saw it brought up last time, and my issue with the argument then was that it was used as a top end of accuracy, distance and power.
Power, I can believe, but accuracy? a regular highschool player can still reliably hit the same target, they are just significantly behind in throwing power. Distance? that may be the arbitrary range that was picked for the sport, but I’m sure they can nail something with a straight throw that is a bit farther away than that.

I believe we could use their throwing speed to get a ballpark of their real distance ability on a straight throw while still retaining decent impact strength, but this doesn’t answer the question about accuracy. I can’t think from the top of my head something that would answer that not just for balls, but for any random thrown object.

That’s the simulationist approach at least, from a gut feeling point of view, I think they should be behind bows on range. Light objects should do less damage than them, while heavy ones might do more, but reduce the range even further.

Improvised objects would, in turn, suffer from both range and accuracy penalties in comparison to something made to be thrown.

Things like being grabbed should also mess with it, or throwing it in melee.

Regarding the MLB player, I saw it brought up last time, and my issue with the argument then was that it was used as a top end of accuracy, distance and power.
Power, I can believe, but accuracy?

Let Per govern accuracy more than Str or Dex, so that weak/slow throwers still hit targets, and the inverse. Cardinals pitcher was throwing 90-100mph last night and hit two batters doing it. One hit was mid-body, at the elbow.

I believe we could use their throwing speed to get a ballpark of their real distance ability

Necessarily, because thrown objects are ballistic (would probably just roleplay that fact; and use simpler linear travel). Let velocity be a function of Str, object mass, and volume. Then impact force is velocity and mass.

F = (0.5 * m * v^2) ÷ d

The MLB player model is just for sanity, to have ceiling values. The missing pieces now are the floor values. Can’t know how much energy to put in otherwise.

but this doesn’t answer the question about accuracy.

Make accuracy primarily a function of Per and Dex, and stack modifiers on it. Obviously, distance decreases accuracy.

I can’t think from the top of my head something that would answer that not just for balls, but for any random thrown object.

Weight and volume.

Improvised objects would, in turn, suffer from both range and accuracy penalties in comparison to something made to be thrown.

Throwing weapons appear to already be based on ammunition types, so they have values like damage, dispersion, damage type, etc. Improvised objects won’t have that, so they should inherently be less effective damage dealers unless it’s done all wrong.

Well, if some professional player is the top end, I probably represent the opposite one. That means, if given a rock, or a ball, or a snowball, I might hit a freighter truck to its side after some trials. Seriously, how are you supposed to train your throwing, when you can’t hit anyone? Or does one get exp from simply executing throws, not hitting or dealing damage?
A second thing is that many objects are very poorly suited for throwing. I don’t know how a baseball acts or how much it weighs, but a rock might be better, since it does not compress upon a hit, making it sort of more solid. As for other objects… Well, I’ve tried throwing knives, and I’ve managed to land some nice hits upon a tree… with a handle.
And even if a thrown object hits a Z, then what? I can’t really see any way to damage a living creature larger than a dog to the point where it’s at least knocked out, with some random stuff that’s lying around being thrown at it. That means, throwing knives… maybe that Z you’re throwing at IS going to go down, after it’s been turned into a hedgehog, but what can those knives do, when they hit the limbs?
So the question that I personally have is the real damage a thrown object can deal outside of lucky one-hit kills to the throat or through the eye right into the brain with a knife blade. I don’t really think that someone is going to die after getting his limbs attacked by a pro player (even by a pro player!). This question goes well alongside the fact that zombies can stand up after some time, even after headshots.

Currently, throwing skill increases on successful hits.

dealt_projectile_attack player::throw_item

Looks to me, at first glance, that the chance to hit is done before the object being thrown is ever examined.

Obviously. The question is not that they should govern it, but how accurate a ‘good thrower’ should be, and how accurate a newbie should be.

I’d use a more accurate formula to help get an idea of where the ceiling is. IE: feed the pitching stats into a formula to see how strongly they threw, feed that into a formula that takes into account air resistance and the like, produce a rough table of ‘ball is hitting with x amount of force at y distance’, then cut off at the point where it’s still doing enough damage to be dangerous.
Once you have the ceilings, you can just grab the existing formulas for ranged attacks and tweak the numbers fed into them until they produce something relatively close.

Should they play a factor? sure.
But by how much? Where is the ceiling for the MLB player for accuracy? Where is the floor for the newbie limp-wristed thrower?
Should the game take into consideration that a shirt or a corpse would make a worse projectile than something sturdier and rigid even if it weights the same and occupies the same amount of space? Should the formula consider object material in regards to damage dealt? Or should it just simplify things and treat all objects the same?

That’d be a bit dangerous, it might make throwing bullets far more effective than they should be, for example.


Not even a flower pot? a smoothing iron? A turned-on circular saw? A chair?

The problem with using that logic is that then daggers would be plain useless against zombies, ditto for arrows, and, well, bullets are not too far from that in terms of damage.

Also, how about throwing axes? That’s a bit deadlier than a thrown knife.


On an unrelated note, it would be, hmm, ‘fun’, if at the extreme end of strength, throwing overly heavy thing becomes a very good tactic. I mean, throwing cars is a no-go, but I wouldn’t mind flattening a zombie with an engine block.
Similarly, it might be ‘fun’ for Brutes to be able to do the same.

// Perfect situation gives us 1000 dispersion at lvl 0
// This goes down linearly to 250  dispersion at lvl 10
int Character::throwing_dispersion( const item &to_throw, Creature *critter ) const

Apparently that’s OP?

ball is hitting with x amount of force at y distance

You’ll want this, then.

Should the game take into consideration that a shirt or a corpse would make a worse projectile than something sturdier and rigid even if it weights the same and occupies the same amount of space?

Probably a source of throwing being OP right now. It’s only checking material for CBM railgun and glass shatters.

Throwing weapons appear to already be based on ammunition types, so they have values like damage, dispersion, damage type, etc. Improvised objects won’t have that, so they should inherently be less effective damage dealers unless it’s done all wrong.

That’d be a bit dangerous, it might make throwing bullets far more effective than they should be, for example.

I mean that the current code already splits the two types of throwing.

Well, try throwing a basketball at a Z. Probably won’t hurt even point blank. Too light, too large.
Try a microwave. Is going to hurt point blank, won’t hurt at a distance. Heavy enough, too large to be thrown normally. Generally you’d be better off with smashing a Z with a microwave than throwing the poor oven.
Try an inflatable beach ball (or how do you call it?). Too large and light to even hit reliably. Won’t hurt even a rat.
Try a 2x4. Heavy enough, thin enough (read: small even though it’s not really). Will hurt even at some distance.
And so on and so forth. So a general formula won’t perform well just because it’s too general and modded items are not going to work properly if the formula gets replaced with manually assigning values for effective throw distances and according damage.

Depends. A solid rubber hockey puck is going to hurt really bad if it hits the face, while a rubber tire will not. A glass jar is going to hurt a little, but a solid glass ball of the same weight is going to hurt more. You get the point.

Too difficult to throw, really. Too difficult to throw a circular saw without killing myself, actually. A flower pot is better for hitting heads directly wielding it. Same for the chair. An iron… No idea. Can’t even imagine.
Now, a hammer could do the job…

Yes. That’s right, I don’t really see why they should kill Zeds. But they do. Somehow. How do you even kill something that’s already dead? Probably only by hitting the heart, brain, or smashing the Z so hard that it just gets torn to gory shreds, e.g., with a morning star.

Probably, if you have enough STR. And skill. I don’t. And even if I knew how to, I’m still too weak to throw them. The general conclusion from this is that without proper STR you’d be better off with melee than throwing.

A rubber tire WILL hurt very much thrown at your face, assuming you mean a car tire and not something from a toy.

The point here is in relative strength needed to throw a puck and a tire to achieve the same levels of suffering. Of course a tire thrown by a hulk will break one’s nose and make him cry, but an average person is too weak to even throw a tire properly.

That’s a fair point, but if you spin it around you can throw them pretty well, if not overly accurately. It might be that the weight and volume of an object should also impact how long it takes to throw an object.

That said, your maximum exert-able effort is the same in both cases. If you have something capable of reliably transferring force, it doesn’t matter how big or heavy it is (ignoring air resistance and shit like that). In fact, the heavier tire is going to allow you to put more energy into it since it takes longer to accelerate. That assumes that you’re strong enough to throw it in the first case, of course.

I’m pretty sure a tire thrown by a hulk would destroy you. So would a puck, just it would make a smaller hole.

If one were determined to simulate it, then you’d have to presume that skill growth would allow effective tire throwing. There’s two ways to get some distance on a tire throw. Both ways defeat the relative weight and volume of the object, because they take advantage of the object’s shape.


Just understand that it isn’t plausible to deeply simulate this level of detail. Could do it case-by-case, but it won’t solve the total problem. That’s why I was pointing toward simplifying rather than expanding the complexity further. Source code and its comments show that this conversation went similarly last time, and much of what we’ve said is already in code.

PS: I’ll half take back “isn’t plausible”. I’m just not convinced that Havok et. al. needs to be used or replicated here. :slight_smile:

Well, at low levels perhaps the object does strength damage. In fact, for objects like rocks and pool balls why not just have the damage be strength plus skill and decrease the damage the further the object is thrown, increasing range with skill and strength. (No clue if this is implemented already). In fact, the size of the object should not matter for damage unless it is very large or very light, because a larger object is going to be thrown slower and impact a larger area and thus do about the same amount of damage or less because of wind resistance slowing it down. Balance that out with larger objects having a chance to knock over zombies or stun them and that seems reasonable. Also, give many thrown objects a debuff against armor. After all, a throwing knife will do jack against a robot or zombie soldier, and even jalvilans are going to issues against metal. And of course, slings. They should not let you do more damage than the MBA player because a sling does not let you hurl a rock at over 100 miles an hour. A sling makes it easier to hit stuff and increases the damage a low skill player can do, so it’s like a handicap until you get good.

Essentially, that seems to be in now. Haven’t (and can’t) follow all the code, but most of throwing is apparently handled in ranged.cpp while the function “dealt_projectile_attack” that does this is in both ranged.cpp and balistics.cpp. In ranged.cpp it looks to be going to great lengths to do a lot of what is said in this thread; accounting for the object’s physical properties.

However, that’s just generic objects being thrown. “Throwing weapons” are specifically marked as “ammo” in their JSON definitions, so I don’t think they’re going through any of the generic thrown object code.

Volume of object shouldn’t be in the damage calculation whatsoever. It should be in the velocity calculation. That’s where resistance is simulated, however that can be done, and velocity is what must be deciding impact force. Volume should also be a primary factor in deciding if the object is throwable at all. I haven’t looked to see if it’s already in place on deciding if an object can be wielded, but it should be.

Generally speaking, any volume + low weight = low damage; any volume + high weight = high damage if thrown at a damaging velocity. Per-object debuff isn’t necessary. Armor is simply taking damage on behalf of the target. Just how it works.

If you hit him, it’ll hurt. Something that heavy will carry a lot of kinetic energy and air resistance is not going to reduce it appreciably over the short distance you could hope to aim in.
(I’ve heard apocryphal legends of the “old-fashioned Missouri brick fight” from Midwestern relatives, supposedly it was popular as a handy weapon back in the days before guns were easily obtained)

1 Like

At the end of the day it’s about mass and speed, isn’t it? The non-sharp throwing objects in game (I’ve been thinking about throwing sticks throughout while observing this discussion) wouldn’t be enough to kill most people, even with repeated blows.

Stoning someone to death, for instance – If you’ve ever seen videos of it, it’s obvious that the victim lives through quite a lot of abuse and time. Throwing rocks, even head-sized rocks, aren’t really enough to kill a person. Without a blow to the skull, it takes hundreds of rocks to finish the deed. The reality is that small mass on a rock means it can be thrown faster, but the blow is really only like a wasp sting. A larger mass to the rock means it can’t go as fast, it might deal more damage but the range is severely limited.

Until you walk up and drop a giant rock on someone’s head, or deal them hundreds of impacts with smaller rocks, they’ll still be moving.

The throwing stick frustrates me. I know that people hunt with them, I know they were a thing once upon a time, but not really to kill a creature. Even a rabbit, when struck with a throwing stick, is most often just disoriented, allowing you to grab it and break it’s neck. I’m not saying it couldn’t kill a rabbit or squirrel, I’m just saying it mostly just wounds and confuses them.

So I find throwing sticks and rocks at zombies to be pretty stupid. Just my opinion, don’t hate me.

Knives, though bladed, are wildly unlikely to kill a human being, even when thrown by an expert. You’d need superhuman strength to throw at such a speed they’d penetrate into the vital organs, or you’d need a lucky throw (a critical hit) to hit something in the neck or similar. This is obviously less than ideal when fighting the undead because their vital bits aren’t particularly vital.

Larger thrown weapons, spears and axes and the like, are really the only lethal thrown objects around and even then the likelihood of killing something human-sized outright is slim, even at close range. And again, with the additional mass of an axe, you can’t impart as much speed as you could on something else. Absolutely could be lethal, I’m sure a lumberjack could throw an axe and put me down no problem, but they’ve got the practiced skill and above-average strength to make it happen. The average person could wound with such a weapon, if they were able to throw it at all, but probably still would require multiple throws to down a human or larger creature.

So, in my opinion, thrown weapons in the game are OP compared to real life counterparts (IE: Killing zombies by throwing sticks and rocks wouldn’t be feasible if they were real creatures) and can be used with basically no skill to kill basic enemies. I think that it should be nerfed, but I think that nerfing it would make throwing weapons so impractical that no one would use them.

Some of this stuff was rehashing what’s already been said, but I’ve been watching the conversation and thought I’d offer my opinions.

This still applies to other forms of combat tough. Killing with a knife isn’t that easier in close range, and we can put zombies down with staves and bats just fine. Arrows and small caliber guns would also be pretty nerfed if this kind of stuff was taken into account.

My issue with damage ingame in general is that if we assume we have to destroy the body itself rather than actually destroy/impair important functions, like with a living human, then an arrow or a javelin is actually going to do a lot more damage than a bullet, ignoring headshots.

Shoot an arrow through someone’s shoulder and now they have an arrow embedded in it, which is going to do a lot towards jamming things up, so to speak. A bullet embedded isn’t going to make that much difference towards the actual working of the arm, since zombies apparently aren’t worried about blood loss or pain.

I’d like to see a “crippled” effect on zombies, that rises in severity as they get hit with javelins and arrows or get things cut off. It could generally reduce their speed, damage, dodge ability, etc and would make combat a lot more strategic. At least, I think so. It would even apply to smaller throwing weapons, since having a throwing knife lodged in your hip is going to make walking significantly more difficult.

That way throwing knives can be useful in a strategic manner rather than just having massive damage.

3 Likes