View Issue Details

IDProjectCategoryView StatusLast Update
0003485The Dark ModCodingpublic23.04.2014 20:24
ReporterSpringheel Assigned ToSpringheel  
PrioritynormalSeveritynormalReproducibilityalways
Status resolvedResolutionfixed 
Product VersionTDM 2.00 
Target VersionTDM 2.00Fixed in VersionTDM 2.00 
Summary0003485: Landing when crouched makes no noise
DescriptionWhen the player is crouched, they seem to make no noise at all when falling from heights. If I jump into the air in a tile room, I alert every guard in the room. But if I jump and crouch before I land, guards will not notice.

This allows a huge exploit, as the player can crouch, walk off a ledge and land right behind an AI without making a sound. I first noticed this in Too Late, where I was able to drop from a stack of four crates right behind a guard without him noticing.

Landing while crouched should be a little more quiet than regular landing, but not by this much.

I assume this is handled in the 'collide' code somewhere.

(note that no sound is made for the player, either)
TagsNo tags attached.

Relationships

related to 0003716 resolvedSteveL Bunny Hop Exploit 

Activities

grayman

grayman

12.07.2013 02:48

viewer   ~0005706

Note to self, for when I get around to this:

idPlayer::CrashLand() uses this code to play the landing footstep:

------------------

if (result.hasLanded && ( (!AI_CROUCH && savedVelocity.z < -300) || savedVelocity.z < -600) )
{
  hasLanded = true;
  PlayFootStepSound();
}
else
{
  hasLanded = false;
}

--------------

So it looks like the player has to have a downward velocity larger than 600 before we hear a footstep when crouched. Will need to test jumping and dropping off things to see how fast we're going when we hit. Apparently the original designers intended for some landings to be silent.
Springheel

Springheel

14.07.2013 14:40

administrator   ~0005721

I have no idea what the thinking was behind that system.

I think what would make the most sense would be to use the default method of creating a crashland footstep sound, but reduce the volume by 5 (the same amount walking is reduced) if the player is crouched.
grayman

grayman

18.07.2013 01:59

viewer   ~0005757

Code said you had to be traveling faster than 600 downward before making a landing sound when crouched. When standing, you only had to be traveling faster than 300. Changed it so you’ll make a sound crouching or standing when traveling faster than 300, but when crouched, the sound volume is decreased by 7dB. (2dB was already there, and I added 5dB.)

I also reduced the volume of the propagated sound by 5dB.

Rev. 5829:

Player.cpp
Springheel

Springheel

18.07.2013 14:30

administrator   ~0005764

Last edited: 18.07.2013 14:31

I cannot confirm this fix. When I jump into the air and land on stone, I hear player landing sound and nearby AI is alerted. When I jump into the air and crouch before landing, no sound is propogated to nearby AI, and I don't hear a player landing sound either.

When I climb onto the 5' ledge in Sound/Blackjack Training Map and crouchwalk off the edge, I hear a small footstep sound on landing, but no sound propogates to AI even when directly behind him.

grayman

grayman

18.07.2013 15:00

viewer   ~0005765

Last edited: 18.07.2013 15:01

I tried this in the sound trainer.

The first case worked fine.

The second case worked fine when jumping on wood or metal. Didn't try others.

You don't happen to have an old gamex86.dll lying around, do you?

What surface type were you landing on in the second case?

Springheel

Springheel

18.07.2013 15:01

administrator   ~0005766

Last edited: 18.07.2013 15:05

I was testing in the stone hallway. I thought I deleted the .dll but I'll double-check.

edit: no go. Still no sound when jumping up and landing crouched on stone.

grayman

grayman

18.07.2013 15:13

viewer   ~0005767

I tested on stone, and he was able to hear a crouchwalk/drop from the ledge when I was close to him (alert level went to 3.66), and a ways away (alert level went to 1.18).

I redelivered tdm_game01.pk4 (rev 13556).

If that still doesn't work for you, I'll have to send you a DLL with debug printouts in it so I can see what's going on.
Springheel

Springheel

18.07.2013 15:30

administrator   ~0005769

Latest revision works.
grayman

grayman

18.07.2013 16:08

viewer   ~0005772

Okay, good.
Springheel

Springheel

13.08.2013 23:52

administrator   ~0006015

Are there any values in this that are exposed in def files? I'd like to test some different settings here, to see how slightly quieter landing sounds feel.
grayman

grayman

14.08.2013 00:09

viewer   ~0006016

The audible sound and propagated sound math uses the volumes given in the sound shader and the tdm_propagated_sounds.def files, respectively. Look for the matching "sprGS_*" sound in the def file.
Springheel

Springheel

14.08.2013 00:18

administrator   ~0006017

Which sound do they use though? I would guess one of the following, but I don't know how to determine which:


sprGS_footstep_default
sprGS_footstep_default_walk
sprGS_footstep_default_jump
grayman

grayman

14.08.2013 00:46

viewer   ~0006018

sprGS_footstep_default_jump

If the player is crouched, I take 5dB off the propagated volume.
Springheel

Springheel

26.08.2013 18:59

administrator   ~0006082

I tested crouch-dropping on wood a bit more. I think the sound of falling is reasonable when compared to walking or running, but given that we don't have reverse mantling or any other way for players to drop quietly, I think reducing the volume of crouch-landing further is warranted. Perhaps -7dB?
grayman

grayman

26.08.2013 22:59

viewer   ~0006085

Rev 5874: Changed drop from -5 to -7.
grayman

grayman

28.08.2013 16:07

viewer   ~0006113

Need feedback on whether crouch-landing is better, or if we need to do more work.
Springheel

Springheel

29.08.2013 19:42

administrator   ~0006122

Last edited: 29.08.2013 20:26

I tested that spot in Betrayal again. Before the change I was getting a sound of about 27.5. Now I'm getting 26.75. Does that sound right for change of -2db? I thought there would be more of a reduction. It still sends him to Alert Level 3.

I'm hesitant to reduce it further...-10 is the default for a closed door, right?

edit: I'm testing reducing the alert_factor of jumping from 1 to .9. Jumping will still travel but won't cause quite as strong a reaction.

grayman

grayman

29.08.2013 20:25

viewer   ~0006123

-10 is the default for a closed door.
Springheel

Springheel

29.08.2013 20:26

administrator   ~0006124

Reducing the alert factor seems to work. The builder in Betrayal now goes to a level 2 alert, which seems about right.

Issue History

Date Modified Username Field Change
12.07.2013 01:54 Springheel New Issue
12.07.2013 01:54 Springheel Target Version => TDM 2.00
12.07.2013 01:55 Springheel Description Updated
12.07.2013 02:43 grayman Assigned To => grayman
12.07.2013 02:43 grayman Status new => assigned
12.07.2013 02:48 grayman Note Added: 0005706
14.07.2013 14:40 Springheel Note Added: 0005721
18.07.2013 01:59 grayman Note Added: 0005757
18.07.2013 01:59 grayman Status assigned => resolved
18.07.2013 01:59 grayman Resolution open => fixed
18.07.2013 01:59 grayman Fixed in Version => TDM 2.00
18.07.2013 14:30 Springheel Note Added: 0005764
18.07.2013 14:31 Springheel Note Edited: 0005764
18.07.2013 15:00 grayman Note Added: 0005765
18.07.2013 15:01 grayman Note Edited: 0005765
18.07.2013 15:01 Springheel Note Added: 0005766
18.07.2013 15:05 Springheel Note Edited: 0005766
18.07.2013 15:13 grayman Note Added: 0005767
18.07.2013 15:30 Springheel Note Added: 0005769
18.07.2013 16:08 grayman Note Added: 0005772
13.08.2013 23:52 Springheel Note Added: 0006015
13.08.2013 23:53 Springheel Status resolved => feedback
13.08.2013 23:53 Springheel Resolution fixed => reopened
14.08.2013 00:09 grayman Note Added: 0006016
14.08.2013 00:18 Springheel Note Added: 0006017
14.08.2013 00:18 Springheel Status feedback => assigned
14.08.2013 00:46 grayman Note Added: 0006018
15.08.2013 02:16 grayman Status assigned => feedback
26.08.2013 18:59 Springheel Note Added: 0006082
26.08.2013 18:59 Springheel Status feedback => assigned
26.08.2013 22:59 grayman Note Added: 0006085
28.08.2013 16:07 grayman Note Added: 0006113
28.08.2013 16:07 grayman Status assigned => feedback
29.08.2013 19:42 Springheel Note Added: 0006122
29.08.2013 19:42 Springheel Status feedback => assigned
29.08.2013 19:49 Springheel Note Edited: 0006122
29.08.2013 19:56 Springheel Note Edited: 0006122
29.08.2013 20:25 grayman Note Added: 0006123
29.08.2013 20:26 Springheel Note Edited: 0006122
29.08.2013 20:26 Springheel Note Edited: 0006122
29.08.2013 20:26 Springheel Note Added: 0006124
01.09.2013 19:40 Springheel Status assigned => feedback
01.09.2013 19:40 Springheel Assigned To grayman => Springheel
01.09.2013 19:40 Springheel Status feedback => assigned
01.09.2013 19:40 Springheel Status assigned => feedback
04.09.2013 18:39 Springheel Status feedback => resolved
04.09.2013 18:39 Springheel Resolution reopened => fixed
23.04.2014 20:24 SteveL Relationship added related to 0003716