Flying through transparent lava hurts too much by 6x-9x factor
#1
7/30/2017 nightly build

When flying through lava (either an illusion or a lava fall), I lose nearly 10% shields (on Hotshot). In Dos (i.e. retail), crossing such lava only deducts 1%-2% shields.

I don't know if the problem is related only to crossing lava, or if the hitbox in Rebirth is too big. Flying into solid lava (i.e. not a fall or illusion) seems to do damage that is more consistent with Dos, and splash damage from bullet explosions hitting lava also seems to be fairly consistent. Perhaps slightly more than Dos, but it isn't nearly as far off as flying through transparent lava.

You can test this simply by loading up Level 9 of Counterstrike! and going to the right. This is clearly a bug, and it makes it far more punishing to cross transparent lava.
Reply
#2
I very consistently lose ~4 shield points in the suggested test. As best I recall, flythrough lava and wall lava use the same implementation. You should be getting equal results for both.

There are approximately 9000 commits between here and DOS. Could you be a bit more specific about when this changed?
Reply
#3
It changed since v0.58.1, that's all I know. Load in DosBOX and go to the right in D2 Level 9. Then load in Rebirth and go to the right in the same level. Count your shields after passing the lava fall. (Do it on Hotshot.) Should be clear as day. It's less than 4 shields in Dos and it's more than that in Rebirth now. And it's much more damaging in Rebirth (but not in DosBOX) than wall or floor lava. I suspect the hitboxx may be too big? That is serious as it might affect how easily robots can hit you as well. It's only a guess though.
Reply
#4
There are only ~6400 commits between here and 0.58.1. Ignoring broken revisions, that should only take 12-13 steps for git bisect to traverse. However, as I said, I lose ~4 shields per pass using current code on Hotshot on that level. If I can't reproduce the problem, I can't bisect to find when it happened, nor debug to step through to find it.

I haven't messed with the hitbox or lava. Zico tinkered with the lava code a bit, but that was to reduce damage, not increase it.
Reply
#5
Here's demos for Dos, v0.58.1, and the latest build (7/30/2017). All are recorded on Hotshot and have been tested to play back correctly with either v0.58.1 or the latest build.

https://www.sendspace.com/filegroup/YZun...QUinubFCBk

EDIT: Some potentially useful information, as for where this issue appeared, it is in the nightly/weekly builds back at least as far as 6/14/2017 but it is NOT in the v0.60.1 beta from 12/11/2016 (this version here: http://www.dxx-rebirth.com/download/dxx/...00-win.zip).
Reply
#6
Interesting. Thanks. I will investigate.
Reply
#7
I can confirm that in cooperative play the lavafall does more DPS than in previous versions of Rebirth. This is based on knowledge of testing a few weeks ago but I assumed someone else already reported it. I have yet to try in single player.
Reply
#8
I tested in Cooperative Hotshot on level 9 of Descent 2: Counterstrike and again observed a very consistent ~4 point shield loss. I cannot reproduce this failure, and I cannot download the demos linked above due to a broken captcha implementation. (Aside: I despise captchas because they're designed to be obnoxious to read. Please don't hide files behind them at all, even when they actually work.)

If you can bisect this down more precisely, I will look at the code for what changes could have caused this. Otherwise, barring a working reproduction or downloadable demos, there's nothing I can do for you.
Reply
#9
This bug is easier to observe if you stop your ship inside a lavafall rather than flying through it quickly. The damage rate of lavafalls is correct in 0.59.100 and extremely high in the latest development version. It also varies with the frame rate in the latest development version. I took some demos to compare 0.59.100 against commit "Make g3_draw_sphere pnt argument const (for OGL only)" at 200 FPS and 30 FPS, both on Insane difficulty:

lavafall.zip

I had an old build from the last time I tested Rebirth, so I found that commit "Fix label truncation when strlen(hats) + 1 < strlen(buttons)" also has this bug. Unfortunately, as usual, I'm a bit too short on time to bisect ... :-\
Reply
#10
The original report said to fly through quickly, which is what I tested. If you're set up to test, try zico's commit Made scrape_player_on_wall() based on a timer. ... That commit was meant to modify how lava interacts with the player, so testing before/after it would be a good starting point. It is before the commit Ryusei cites as bad, so it's at least plausible.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)