Difference between revisions of "Talk:Damaging floor"

From DoomWiki.org

(Radiation suit penetration)
(Inaccurate vis-a-vis lumping together all games under statements only true about Doom)
 
(8 intermediate revisions by 3 users not shown)
Line 1: Line 1:
==Radiation suit penetration==
+
== Radiation suit penetration ==
 +
 
 
FYI: The [[Doom source code|code]] for 20% damage reads "P_Random()<5" but the actual chance of this being true is 6/256 rather than 5/256. This is because the [[pseudorandom number generator|random number table]] has two 0's, no 1's, two 2's, one 3, and one 4 for a total of six values less than 5. [[User:Radius|radius]] 02:46, 7 Mar 2005 (GMT)
 
FYI: The [[Doom source code|code]] for 20% damage reads "P_Random()<5" but the actual chance of this being true is 6/256 rather than 5/256. This is because the [[pseudorandom number generator|random number table]] has two 0's, no 1's, two 2's, one 3, and one 4 for a total of six values less than 5. [[User:Radius|radius]] 02:46, 7 Mar 2005 (GMT)
  
Line 15: Line 16:
  
 
I have now experienced leaks in both vanilla and doom95 (on E3M6, and it <i>was</i> a "cheat" suit!).  Not sure why I couldn't see them before -- goes to show you can't prove a negative. [[User:Radius|radius]] 12:22, 26 Jun 2005 (UTC)
 
I have now experienced leaks in both vanilla and doom95 (on E3M6, and it <i>was</i> a "cheat" suit!).  Not sure why I couldn't see them before -- goes to show you can't prove a negative. [[User:Radius|radius]] 12:22, 26 Jun 2005 (UTC)
 +
 +
:Well, I tried this again, and I swear I can't get the "cheat" suit to leak in vanilla.&nbsp; But, as you say, that doesn't prove much.&nbsp; :>&nbsp;&nbsp; If it leaks for you, the article (and [[Cheat code]]) should stay the way it is.&nbsp; [[User:Ryan W|Ryan W]] 07:16, 26 Sep 2005 (UTC)
  
 
== Radioactive rock vs red slime ==
 
== Radioactive rock vs red slime ==
Line 22: Line 25:
  
 
:OK, good suggestion. [[User:Radius|radius]] 02:42, 11 Jun 2005 (UTC)
 
:OK, good suggestion. [[User:Radius|radius]] 02:42, 11 Jun 2005 (UTC)
 +
 +
== Radiation suit penetration, revisited ==
 +
 +
This may be a dubious statement: ''Testing seems to show that a single suit rarely "leaks" more than once.''&nbsp;&nbsp; What happens if this testing is performed without monsters (so that the 60 calls to the generator are very nearly consecutive), by repeatedly reloading the same game and jumping into the same slime?&nbsp; [[User:Radius|radius]] is correct that m_random.c contains six numbers below 5, but four of them occur within a span of only 57 entries.&nbsp; If I avoid that span the first time, I probably avoid it every time.&nbsp; Thoughts?&nbsp;&nbsp;&nbsp; [[User:Ryan W|Ryan W]] 09:32, 2 November 2006 (UTC)
 +
 +
== Hysteresis on "exit" floor? ==
 +
 +
''Correction about 11% exit type: Your health cannot drop below 1%, ever. while in this sector type.''&nbsp;&nbsp; Even if you get shot during the same tic?&nbsp; I swear I've seen it happen on E1M8 and Plutonia 11.&nbsp;&nbsp;&nbsp; [[User:Ryan W|Ryan W]] 18:53, 10 November 2006 (UTC)
 +
 +
: Addendum: no, actually it doesn't.&nbsp; See [[Health percentage hysteresis in sector type 11]].
 +
 +
: But what on earth does "strange consequences" mean?&nbsp;&nbsp;&nbsp; [[User:Ryan W|Ryan W]] 00:59, 17 January 2007 (UTC)
 +
 +
: Regarding "The player's health cannot drop below 1% while within this type of sector, a fact that has strange consequences when the player is not touching the sector floor." Can somebody elaborate on the latter half of this sentence or should it just be deleted? Does this perhaps mean that the level will not end unless the player is touching the floor, so the player is un-killable? If so, how can the player remain above the sector floor in Vanilla Doom for more than a split second? Also I seem to recall dying in the exit sector on Plutonia Map11, then advancing to the readme screen and then starting Map12 with 100% Health and only a pistol. Could be poor memory though. [[User:68.37.180.226|68.37.180.226]] 23:25, 19 January 2007 (UTC)
 +
 +
== again with the radsuit leakage ==
 +
 +
It looks to me like everyone has overlooked a factor in calculating the leak probability tables. The timing of damage events is controlled by '''if (!(leveltime&0x1f))''' in p_spec.c, meaning damage occurs once every 32 tics, meaning there are either 65 or 66 opportunities (60*35/32=65.625) for the radsuit to leak, depending on how the initial pickup time aligns with that 32-tic timer. The standard descriptions "X% damage per second" appear to be only approximations of the true "X% per 32 tics". I did my own calculations using 66 instead of 60 as the number of potential leaks in the lifetime of a radsuit, and these are my results:
 +
 +
  With truly random selection from rndtable
 +
  0 damage events: 0.209027228260842
 +
  1 damage events: 0.331099129565173
 +
  2 damage events: 0.258257321060835
 +
  3 damage events: 0.132227748383148
 +
  4 damage events: 0.0499820888888298
 +
  5 damage events: 0.0148746696533157
 +
  6 damage events: 0.00362941939540904
 +
  7 damage events: 0.000746623418484146
 +
  8 damage events: 0.000132152345071694
 +
  9 damage events: 2.0439562704422e-05
 +
  10 damage events: 2.79613217796493e-06
 +
 +
  With sequential selection from rndtable
 +
  0 damage events: 13/256 = 0.05078125
 +
  1 damage events: 153/256 = 0.59765625
 +
  2 damage events: 37/256 = 0.14453125
 +
  3 damage events: 43/256 = 0.16796875
 +
  4 damage events: 10/256 = 0.0390625
 +
 +
Am I nuts? [[User:69.246.218.176|69.246.218.176]] 03:55, 19 December 2007 (UTC)
 +
 +
: Not nuts at all.&nbsp; I'll change the tables in the article.&nbsp;&nbsp;&nbsp; [[User:Ryan W|Ryan W]] ([[User talk:Ryan W|talk]]) 14:55, 10 August 2014 (UTC)
 +
 +
: For the record, when I tried this 100 times (PrBoom+ 2.5.1.0 -complevel 4), using a map with about 1200 monsters of varying frame sequences to scramble the RNG between hits, I got these results:
 +
 +
      0 damage events: 24
 +
      1 damage events: 28
 +
      2 damage events: 32
 +
      3 damage events: 10
 +
      4 damage events: 4
 +
      5 damage events: 2
 +
 +
: [[User:Ryan W|Ryan W]] ([[User talk:Ryan W|talk]]) 15:55, 10 August 2014 (UTC)
 +
 +
== Timing information insufficient ==
 +
Not all damaging floors hurt every 32 tics, in Heretic and Strife. In Heretic, some types do damage every 16 tics (gametic & 15 check). In Strife, sector type 15 does a constant 999 damage per tic, every tic. So, by lumping all the games together with one timing explanation, this article has become inaccurate. --[[User:Quasar|Quasar]] ([[User talk:Quasar|talk]]) 21:01, 29 April 2015 (UTC)

Latest revision as of 16:01, 29 April 2015

Radiation suit penetration[edit]

FYI: The code for 20% damage reads "P_Random()<5" but the actual chance of this being true is 6/256 rather than 5/256. This is because the random number table has two 0's, no 1's, two 2's, one 3, and one 4 for a total of six values less than 5. radius 02:46, 7 Mar 2005 (GMT)

Is this comment about the suit penetration not occurring in vanilla doom actually correct? Examining the source to prboom 2.2.6 reveals that it still has the behavior from the original Doom source code. The call to P_Random means that any 1.9 demo featuring a player walking through slime while wearing a radiation suit should go out of sync. Prboom is renowned for its demo backwards compatibility. Fraggle 11:13, 9 Mar 2005 (GMT)

In my little test level, ZDoom behaved as expected from the source code (very occasional 20% damage), but using doom.exe and doom95.exe I never got any damage while wearing the suit. (Maybe the latter have the P_Random call but don't do the damage correctly? Just speculating...) radius 04:48, 10 Mar 2005 (GMT)

I don't want to change the article yet if everybody's getting different results, but here's what happened when I tested this again yesterday:

PrBoom 2.2.6 -complevel 1: leaky suits.

Doom95: no leaky suits. (At least, no damage through 8 times the duration of a suit. Assuming I wasted 2 seconds per suit hopping in and out of the lava, the odds are 60,000 to 1 in favor of non-leaking suits.)

Vanilla (E3M6): real suits leak, but not suits obtained with IDBEHOLD. (Note to self: don't use cheat codes when testing levels, even in vanilla.  :>    So the compatibility of PrBoom is intact. Ryan W 04:25, 25 Jun 2005 (UTC)

I have now experienced leaks in both vanilla and doom95 (on E3M6, and it was a "cheat" suit!). Not sure why I couldn't see them before -- goes to show you can't prove a negative. radius 12:22, 26 Jun 2005 (UTC)

Well, I tried this again, and I swear I can't get the "cheat" suit to leak in vanilla.  But, as you say, that doesn't prove much.  :>   If it leaks for you, the article (and Cheat code) should stay the way it is.  Ryan W 07:16, 26 Sep 2005 (UTC)

Radioactive rock vs red slime[edit]

"These include nukage, lava, blood, radioactive rock,
two kinds of brown slime, and red slime."

When I read "red slime", I couldn't think what it referred to. It would make more sense to refer to both flats as radioactive rock. I know the flat names are RROCK for the radioactive rock and SLIME for the red slime, but they're still practically the same thing. - DooMAD 18:50, 10 Jun 2005 (UTC)

OK, good suggestion. radius 02:42, 11 Jun 2005 (UTC)

Radiation suit penetration, revisited[edit]

This may be a dubious statement: Testing seems to show that a single suit rarely "leaks" more than once.   What happens if this testing is performed without monsters (so that the 60 calls to the generator are very nearly consecutive), by repeatedly reloading the same game and jumping into the same slime?  radius is correct that m_random.c contains six numbers below 5, but four of them occur within a span of only 57 entries.  If I avoid that span the first time, I probably avoid it every time.  Thoughts?    Ryan W 09:32, 2 November 2006 (UTC)

Hysteresis on "exit" floor?[edit]

Correction about 11% exit type: Your health cannot drop below 1%, ever. while in this sector type.   Even if you get shot during the same tic?  I swear I've seen it happen on E1M8 and Plutonia 11.    Ryan W 18:53, 10 November 2006 (UTC)

Addendum: no, actually it doesn't.  See Health percentage hysteresis in sector type 11.
But what on earth does "strange consequences" mean?    Ryan W 00:59, 17 January 2007 (UTC)
Regarding "The player's health cannot drop below 1% while within this type of sector, a fact that has strange consequences when the player is not touching the sector floor." Can somebody elaborate on the latter half of this sentence or should it just be deleted? Does this perhaps mean that the level will not end unless the player is touching the floor, so the player is un-killable? If so, how can the player remain above the sector floor in Vanilla Doom for more than a split second? Also I seem to recall dying in the exit sector on Plutonia Map11, then advancing to the readme screen and then starting Map12 with 100% Health and only a pistol. Could be poor memory though. 68.37.180.226 23:25, 19 January 2007 (UTC)

again with the radsuit leakage[edit]

It looks to me like everyone has overlooked a factor in calculating the leak probability tables. The timing of damage events is controlled by if (!(leveltime&0x1f)) in p_spec.c, meaning damage occurs once every 32 tics, meaning there are either 65 or 66 opportunities (60*35/32=65.625) for the radsuit to leak, depending on how the initial pickup time aligns with that 32-tic timer. The standard descriptions "X% damage per second" appear to be only approximations of the true "X% per 32 tics". I did my own calculations using 66 instead of 60 as the number of potential leaks in the lifetime of a radsuit, and these are my results:

 With truly random selection from rndtable
 0 damage events: 0.209027228260842
 1 damage events: 0.331099129565173
 2 damage events: 0.258257321060835
 3 damage events: 0.132227748383148
 4 damage events: 0.0499820888888298
 5 damage events: 0.0148746696533157
 6 damage events: 0.00362941939540904
 7 damage events: 0.000746623418484146
 8 damage events: 0.000132152345071694
 9 damage events: 2.0439562704422e-05
 10 damage events: 2.79613217796493e-06
 With sequential selection from rndtable
 0 damage events: 13/256 = 0.05078125
 1 damage events: 153/256 = 0.59765625
 2 damage events: 37/256 = 0.14453125
 3 damage events: 43/256 = 0.16796875
 4 damage events: 10/256 = 0.0390625

Am I nuts? 69.246.218.176 03:55, 19 December 2007 (UTC)

Not nuts at all.  I'll change the tables in the article.    Ryan W (talk) 14:55, 10 August 2014 (UTC)
For the record, when I tried this 100 times (PrBoom+ 2.5.1.0 -complevel 4), using a map with about 1200 monsters of varying frame sequences to scramble the RNG between hits, I got these results:
     0 damage events: 24
     1 damage events: 28
     2 damage events: 32
     3 damage events: 10
     4 damage events: 4
     5 damage events: 2
Ryan W (talk) 15:55, 10 August 2014 (UTC)

Timing information insufficient[edit]

Not all damaging floors hurt every 32 tics, in Heretic and Strife. In Heretic, some types do damage every 16 tics (gametic & 15 check). In Strife, sector type 15 does a constant 999 damage per tic, every tic. So, by lumping all the games together with one timing explanation, this article has become inaccurate. --Quasar (talk) 21:01, 29 April 2015 (UTC)