Jump to content
The Dark Mod Forums

Re-did Broadhead....again


Recommended Posts

Ah, that's good to know. Carry on then. :)

 

So, erm, is someone to actually go and modify the AI, the arrow or whatever is nec. to make it stick in more in straw/flesh/cloth? (Just asking :)

 

In related news, I tried shooting rope arrows into a dead body (he died by accident, I swear!) but the rope arrow just broke regardless of where it hit the body. I think the rope arrow should actually stick, just like if you hit a crate or a sack of flour :)

 

And another thing that I noticed is that the rope on the rope arrow only looks good if you shoot the rope arrow overhead. If you hit something straigh on or shoot down (like into a body :), the rope "floats" a bit away from the arrow. Is this supposed to be that way?

"The reasonable man adapts himself to the world; the unreasonable one persists in trying to adapt the world to himself. Therefore, all progress depends on the unreasonable man." -- George Bernard Shaw (1856 - 1950)

 

"Remember: If the game lets you do it, it's not cheating." -- Xarax

Link to post
Share on other sites
So, erm, is someone to actually go and modify the AI, the arrow or whatever is nec. to make it stick in more in straw/flesh/cloth? (Just asking

 

I was going to, but I have lots of other stuff to keep me busy if you'd like to do it. :)

Link to post
Share on other sites
I was going to, but I have lots of other stuff to keep me busy if you'd like to do it. :)

 

by the time somebody would have modifed it, I only managed to find the definition *sigh*

 

		"push_in"			   "4"
	"push_in_cardboard"	 "10"
	"push_in_sand"		  "10"
	"push_in_snow"		  "18"
	"push_in_straw"		 "10"
	"push_in_flesh"		 "10"
	"push_in_mud"		   "24"
	"push_in_grass"		 "18"
	"push_in_dirt"		  "18"
	"push_in_twigs"		 "18"

	"snd_active"			"arrow_broadhead_wood" // Everything sounds like wood
	"snd_active_flesh"	  "arrow_broadhead_flesh" // ...except for flesh

 

(But also notice that everything sounds like wood, or flesh. Hm.)

 

I have no idea what the values should be, tho, probably needs experimenting in game. Shooting an arrow into snow looks ok to me, so it seems the only "problematic" case seems to be wood. Now, with hardened oak, you might get that little push in, but if you shoot a crate, one would expect the arrow to go actually through the wood.

 

However, we only have one "wood" material and no way to specify a difference between a hardened oak table plate, and a small plywood crate wall.

"The reasonable man adapts himself to the world; the unreasonable one persists in trying to adapt the world to himself. Therefore, all progress depends on the unreasonable man." -- George Bernard Shaw (1856 - 1950)

 

"Remember: If the game lets you do it, it's not cheating." -- Xarax

Link to post
Share on other sites
However, we only have one "wood" material and no way to specify a difference between a hardened oak table plate, and a small plywood crate wall.

 

Maybe we can add a new material definition called "hardwood". It would be just inherit from wood, and the only difference would be:

 

* certain materials get tagged with it

* arrows push in less into hardwood

 

How feasible is adding a new material (which is just a 99% clone of an already existing material, so it doesn't need new sounds etc)

"The reasonable man adapts himself to the world; the unreasonable one persists in trying to adapt the world to himself. Therefore, all progress depends on the unreasonable man." -- George Bernard Shaw (1856 - 1950)

 

"Remember: If the game lets you do it, it's not cheating." -- Xarax

Link to post
Share on other sites

It's not hard to add a material, but I'm not sure it would be worth hand-selecting all the materials as hard or soft wood for this relatively minor point. We have larger problems right now than an arrow not pushing in enough to something that some would judge as softer/thinner wood. :)

 

I did notice some problems with making an arrow stick into cloth though. I think they are mostly fixable through AI setup:

 

1. AI such as the builder guard, some of the city watch are wearing cloth over chain mail. IMO that surface type should really be set to chain mail, not cloth. As is, you can shoot him on the cloth over his chest and the arrow sticks in and does damage as if it hit an unarmoured target, I'm guessing because that submesh has surface type cloth.

 

2. There are some parts on the AI like the bottom a tunic, where it's not supported by anything, it just hangs down between the legs. For example, bottom of the tunic on the builder guard and pagan warrior. Right now, the arrow sticks in there as if it hit cloth with flesh behind it, which looks pretty silly, both on impact and afterward with the arrow stuck in the ragdoll. I know we have no way of telling what's behind a surface, but isn't there a way to just set these parts nonsolid where there is nothing behind the cloth? Would that require an additional submesh with a material that's set nonsolid, or could you just directly set the poly of the model to nonsolid?

Link to post
Share on other sites
It's not hard to add a material, but I'm not sure it would be worth hand-selecting all the materials as hard or soft wood for this relatively minor point. We have larger problems right now than an arrow not pushing in enough to something that some would judge as softer/thinner wood. :)

 

Since there is a lot of wood in the TDM world, I think it would be worthwhile. (other problems non-withstanding)

 

As for your other points, that was what I wanted to ask next :)

 

As for the rope arrow: it says "active surface" "wood", I would like to change that to include "flesh" so you can shoot the arrow into bodies. It probably should also include "cloth", but I am not sure what happens if you shoot a rope arrow into a banner.

 

Plus, I think it should be possible to set the arrow-reacts-to-material type in the editor,

and the arrow should react to this if set, instead of the normal material.

 

This way a rug is always set to "rug" for material (footstep sounds etc), but can be set as "underneath: wood" for a rug on wood floor, and "underneath: tiles" for a rug on tiles. And the arrows would then correctly either stick in, or break. Right now you can shoot an arrow into a razor thin rug on tiles and it sticks out.

 

(Alternatively, the engine could figure outhow "thick" the material is that is hit by the arrow (in the direction of the flight of the arrow) and check what's underneath - but this will not work if whatever surface is underneath is not rendered at all like if the rug isn't a decal, but just part of the floor.

 

The same dual-material definition would also solve the AI problem (cloth over chain mail vs cloth over flesh) you described.

"The reasonable man adapts himself to the world; the unreasonable one persists in trying to adapt the world to himself. Therefore, all progress depends on the unreasonable man." -- George Bernard Shaw (1856 - 1950)

 

"Remember: If the game lets you do it, it's not cheating." -- Xarax

Link to post
Share on other sites
As for the rope arrow: it says "active surface" "wood", I would like to change that to include "flesh" so you can shoot the arrow into bodies. It probably should also include "cloth", but I am not sure what happens if you shoot a rope arrow into a banner.

It's been tried, rope arrows sticking in living AI didn't look too good. Also they wouldn't really support the player's weight unless the arrow happened to drill into some large bone; it would likely just come out when you pulled on it. I think the design doc actually calls for the arrow to go in, but not deploy the rope if it hits these kinds of materials. That way you don't lose a rope arrow if you shoot it into soft material, but you don't get the ridiculous situation of a rope anchored in a soft material. That's planned but not implemented.

 

Plus, I think it should be possible to set the arrow-reacts-to-material type in the editor,

and the arrow should react to this if set, instead of the normal material.

 

This way a rug is always set to "rug" for material (footstep sounds etc), but can be set as "underneath: wood" for a rug on wood floor, and "underneath: tiles" for a rug on tiles. And the arrows would then correctly either stick in, or break. Right now you can shoot an arrow into a razor thin rug on tiles and it sticks out.

That's an interesting idea, that way it could play the sounds of walking on a rug, but otherwise have the collision physics of stone. The problem is, how are you going to set it in the editor? If it's a brush, it dosn't have individual spawnargs, it's part of the worldpsawn. You would need a way to edit meta-properties for individual primitives in the editor, and then before runtime, the editor would have to generate a new material file that's the same as the old material, but has a new "description" for that particular permutation of top surface and bottom surface, then change the primitive to that new material. It's possible, but sounds like a lot of work.

 

Again, we've talked about this and decided it was not high enough priority to worry about, but you're welcome to look into it if you have time. We had decided that we'll just be nice to the player and let arrows stick into a thin rug over stone. Otherwise, a rug may completely cover the thing under it, and the player would have no idea what's under it and whether their arrow will stick in or not (IRL you'd get tactile feedback and maybe a subtly footstep sound, but we don't have the former and we don't have the SFX resources for the latter).

 

For AI, we have complete control over the submesh texture, so it's not an issue to make cloth over chainmail be chainmail. With your solution, you would still need to make two separate submeshes for cloth over chainmail and cloth over flesh, because the surface property is still shared over the entire submesh.

 

We've also talked about using surface map images (i.e., an additional greyscale image the same extent as diffuse map, each pixel value is mapped to a surface type) which would be a better way to do this, but again that takes a lot of work, adds performance load, and there are higher priority issues.

Link to post
Share on other sites
It's been tried, rope arrows sticking in living AI didn't look too good. Also they wouldn't really support the player's weight unless the arrow happened to drill into some large bone; it would likely just come out when you pulled on it. I think the design doc actually calls for the arrow to go in, but not deploy the rope if it hits these kinds of materials. That way you don't lose a rope arrow if you shoot it into soft material, but you don't get the ridiculous situation of a rope anchored in a soft material. That's planned but not implemented.

 

I was more talking about dead AI as in dead-bodies. As for "pulling out" the arrow, there are these things:

 

http://de.wikipedia.org/wiki/Widerhaken

 

God, people in the stone age knew about them, how came humankind forgot so easily? :D

 

That's an interesting idea, that way it could play the sounds of walking on a rug, but otherwise have the collision physics of stone. The problem is, how are you going to set it in the editor? If it's a brush, it dosn't have individual spawnargs, it's part of the worldpsawn. You would need a way to edit meta-properties for individual primitives in the editor, and then before runtime, the editor would have to generate a new material file that's the same as the old material, but has a new "description" for that particular permutation of top surface and bottom surface, then change the primitive to that new material. It's possible, but sounds like a lot of work.

 

Couldn't you make the rug be a func_static and then set some property? I am imaging this maybe too simple :)

 

Again, we've talked about this and decided it was not high enough priority to worry about, but you're welcome to look into it if you have time. We had decided that we'll just be nice to the player and let arrows stick into a thin rug over stone. Otherwise, a rug may completely cover the thing under it, and the player would have no idea what's under it and whether their arrow will stick in or not (IRL you'd get tactile feedback and maybe a subtly footstep sound, but we don't have the former and we don't have the SFX resources for the latter).

 

For AI, we have complete control over the submesh texture, so it's not an issue to make cloth over chainmail be chainmail. With your solution, you would still need to make two separate submeshes for cloth over chainmail and cloth over flesh, because the surface property is still shared over the entire submesh.

 

We've also talked about using surface map images (i.e., an additional greyscale image the same extent as diffuse map, each pixel value is mapped to a surface type) which would be a better way to do this, but again that takes a lot of work, adds performance load, and there are higher priority issues.

 

Ah yes, I see that again I come way too late to the discussion and bring up stuff that has already been debated :(

"The reasonable man adapts himself to the world; the unreasonable one persists in trying to adapt the world to himself. Therefore, all progress depends on the unreasonable man." -- George Bernard Shaw (1856 - 1950)

 

"Remember: If the game lets you do it, it's not cheating." -- Xarax

Link to post
Share on other sites
I was more talking about dead AI as in dead-bodies. As for "pulling out" the arrow, there are these things:

I don't think that would support a person hanging from a rope attached to it though. It might pull out some flesh/bones along with the arrow, but it would still come out I think. :)

 

Our rope arrows are "psuedo-realistic" in that there's a realistic explanation where they use gas jets on the arrow head to drill deep into the wood. Of course this would make it extremely loud in reality, but they uh... figured out how to make it quiet. :) Side Note: As for the rope weight issue, they first spool out a thin, light wire that would not support the player's weight, but the thin wire can then be used to pull up a heftier rope after the arrow is anchored. That's assumed but not shown. Or, you can just think that it's magic, it's up to the player.

 

Couldn't you make the rug be a func_static and then set some property? I am imaging this maybe too simple :)

You could, but then you'd have to repeat this procedure every single time you wanted a rug on something hard, which could be pretty often if you have a huge mansion with stone floors and rugs. Then you still have the task of creating the material copy, editing "description" and pasting it in to the material on primitives used by the rug (plus, how do you know which faces to paste it in to? I think it might be more clear if the info was actually associated with the primitive face instead of an entity, which also makes it easier for the mapper and doesn't generate a lot of unnecessary entities).

 

Ah yes, I see that again I come way too late to the discussion and bring up stuff that has already been debated :(

No problem. I'd try searching for stuff as much as possible, but I know it's often hard to find. We had a "design docs" section that we were originally using to summarize established designs and the arguments behind them, but have kind of slacked off on that.

Link to post
Share on other sites
I don't think that would support a person hanging from a rope attached to it though. It might pull out some flesh/bones along with the arrow, but it would still come out I think. :)

 

Our rope arrows are "psuedo-realistic" in that there's a realistic explanation where they use gas jets on the arrow head to drill deep into the wood. Of course this would make it extremely loud in reality, but they uh... figured out how to make it quiet. :) Side Note: As for the rope weight issue, they first spool out a thin, light wire that would not support the player's weight, but the thin wire can then be used to pull up a heftier rope after the arrow is anchored. That's assumed but not shown. Or, you can just think that it's magic, it's up to the player.

 

Gosh, I just figured the are magic anyway, because there is no way the player can have with him all that rope :-P

 

You could, but then you'd have to repeat this procedure every single time you wanted a rug on something hard, which could be pretty often if you have a huge mansion with stone floors and rugs.

 

No, you either have prefabs, or in-editor support for tagging any surface with additional info. Doing that manual would be ..insane :D

 

But it would be a lot of work, thats true.

"The reasonable man adapts himself to the world; the unreasonable one persists in trying to adapt the world to himself. Therefore, all progress depends on the unreasonable man." -- George Bernard Shaw (1856 - 1950)

 

"Remember: If the game lets you do it, it's not cheating." -- Xarax

Link to post
Share on other sites
1. AI such as the builder guard, some of the city watch are wearing cloth over chain mail. IMO that surface type should really be set to chain mail, not cloth. As is, you can shoot him on the cloth over his chest and the arrow sticks in and does damage as if it hit an unarmoured target, I'm guessing because that submesh has surface type cloth.

 

Yes, this is a known issue. The submeshes for some AI are not correct atm.

 

I know we have no way of telling what's behind a surface, but isn't there a way to just set these parts nonsolid where there is nothing behind the cloth? Would that require an additional submesh with a material that's set nonsolid, or could you just directly set the poly of the model to nonsolid?

 

At a minimum it would require an additional submesh, and then a separate material, which would increase the work needed to create alternate skins (since you couldn't use generic materials). It's worth thinking about though.

Link to post
Share on other sites
At a minimum it would require an additional submesh, and then a separate material, which would increase the work needed to create alternate skins (since you couldn't use generic materials). It's worth thinking about though.

Hmm, maybe it's not worth it then. It's not that big a deal for the arrow to stick in the hanging down tunic/skirt IMO. For the builder guard though, it seems like everywhere he's got tunic, he's got chainmail underneath, so can't we just set that to chainmail? Maybe we could do a couple different versions of the generic tunic materials, all sharing the same image: one with just cloth (implying skin is underneath), one chain and one plate? Then you could put them on different AI and just make sure you pick the right one for the armor underneath.

Link to post
Share on other sites
For the builder guard though, it seems like everywhere he's got tunic, he's got chainmail underneath, so can't we just set that to chainmail

 

Yes, that does need to be addressed.

 

Maybe we could do a couple different versions of the generic tunic materials, all sharing the same image: one with just cloth (implying skin is underneath), one chain and one plate? Then you could put them on different AI and just make sure you pick the right one for the armor underneath.

 

Actually, it's not so much the materials as the texture files themselves that get swapped. You keep the same normal-map (with an addnormals if the new material has its own texture) and just swap in a new diffusemap.

Link to post
Share on other sites

Btw, I still want the rope arrow to go into flesh. The point about the flesh not supporting it is a bit moot IMHO because the current crates wouldn't support the player either unless the crate is filled with either instant-glue or something solid like wood.

 

And even if the cratewall or whatever you shoot the arrow into supports the player, there is still the issue of the arrow itself - it must be made from some REAL strong wood or steel :)

 

So, you already have to suspense your belief a bit for rope arrows, anyway, so I think making them stick into flesh adds a new "oh cool" factor and more variety to the game - and I bet nobody will complain that it is unrealistic once they dragged the first zombie down from a ledge :-P

 

(in my case, I was actually trying to drag down a corpse as I couldn't grab and move him over some tiny wooden beam at the edge, so I thought maybe I just stick a rope in him and hang on...and then wondered why I keept "missing" him :)

 

Should I try to add "flesh" (and cloth?) as active surface for rope arrows so we can toy around with it?

"The reasonable man adapts himself to the world; the unreasonable one persists in trying to adapt the world to himself. Therefore, all progress depends on the unreasonable man." -- George Bernard Shaw (1856 - 1950)

 

"Remember: If the game lets you do it, it's not cheating." -- Xarax

Link to post
Share on other sites
That's only a legitimate question if you intend to commit to SVN. You muck about as much as you want on your own end. ;)

 

Of course I am asking about commiting it. Why would I make changes only on my end, then nobody would benefit from them. :D

 

I wouldn't have brought the issue up if I didn't think it was a positive change :P

"The reasonable man adapts himself to the world; the unreasonable one persists in trying to adapt the world to himself. Therefore, all progress depends on the unreasonable man." -- George Bernard Shaw (1856 - 1950)

 

"Remember: If the game lets you do it, it's not cheating." -- Xarax

Link to post
Share on other sites
Btw, I still want the rope arrow to go into flesh.

 

We did already discuss this and decide against it. We can't reopen every decision just because someone new joins the team and has a different opinion.

Link to post
Share on other sites
We did already discuss this and decide against it. We can't reopen every decision just because someone new joins the team and has a different opinion.

 

OK. I won't bother to bring up old topics anymore.

"The reasonable man adapts himself to the world; the unreasonable one persists in trying to adapt the world to himself. Therefore, all progress depends on the unreasonable man." -- George Bernard Shaw (1856 - 1950)

 

"Remember: If the game lets you do it, it's not cheating." -- Xarax

Link to post
Share on other sites

There are lots of things that *haven't* been totally decided yet, but there are more that have, which you would hope is the case when we're 3 years into a 4 year project. :)

Link to post
Share on other sites

I thought we actually had decided to stick it in flesh and other soft materials, but not deploy the rope? I remember discussing how it would be lame for the rope arrow to break on snow or grass, and thought we all agreed on that. I had that on my TODO list, but hadn't had time yet to update the projectile result code/script to allow for that.

 

If you're talking about sticking into living AI, that we had agreed not to do, except maybe in some exceptional cases like zombies or animals with thick skin.

 

(in my case, I was actually trying to drag down a corpse as I couldn't grab and move him over some tiny wooden beam at the edge

Picking up AI and putting them on your shoulder ala Thief2 is planned, so don't worry about not being able to drag them up stairs for now.

Link to post
Share on other sites
I thought we actually had decided to stick it in flesh and other soft materials, but not deploy the rope? I remember discussing how it would be lame for the rope arrow to break on snow or grass, and thought we all agreed on that. I had that on my TODO list, but hadn't had time yet to update the projectile result code/script to allow for that.

 

If you're talking about sticking into living AI, that we had agreed not to do, except maybe in some exceptional cases like zombies or animals with thick skin.

 

The arrow going in/hurting live AI (except maybe zombies) but not deploying is fine by me (I think it would indeed look silly and cruel if a guard runs around with several ropes tailing behind. Makes me think of "tie him to the pole" :)

 

(Despite me reading a lot of forum posts going back a year or two, I am not familiar with every decision reached. Most of the stuff is probably not really summarized anywhere anyway making it harder to track stuff, esp. if you are new like me)

 

Picking up AI and putting them on your shoulder ala Thief2 is planned, so don't worry about not being able to drag them up stairs for now.

 

Ah, that's good to know, I always loved to carry guards around :)

"The reasonable man adapts himself to the world; the unreasonable one persists in trying to adapt the world to himself. Therefore, all progress depends on the unreasonable man." -- George Bernard Shaw (1856 - 1950)

 

"Remember: If the game lets you do it, it's not cheating." -- Xarax

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...