Improved Gibbable Corpses Tutorial, and "Semisolid"

Discuss programming in the QuakeC language.
Seven
Posts: 301
Joined: Sat Oct 06, 2007 8:49 pm
Location: Germany

Post by Seven »

Lightning Hunter wrote:I just came across another minor bug, although this one isn't absolutely terrible. If you leave a corpse on an elevator, and it's on the edge near a button, the corpse can interfere with the button. For example: on e1m1, if you frag the soldier on the edge of the first elevator and go down the elevator, the corpse will trigger the button - making the elevator go back up. Like I said, not the worst bug ever, but just thought I'd mention it.
Maybe I misunderstood you words, but the elevator will always go back up.
Doesnt matter if you kill the soldier or go through with "noclip" or anything.
Thats why you have a button on the outside area to call the elevator back down.


Thank you Wazat for your new "void() InitBodyQue = " code ! :)

That was the last issue for me.

Best regards,
Seven
Lightning Hunter
Posts: 169
Joined: Wed Nov 28, 2007 6:15 am

Post by Lightning Hunter »

Maybe I misunderstood you words, but the elevator will always go back up.
Doesnt matter if you kill the soldier or go through with "noclip" or anything.
Thats why you have a button on the outside area to call the elevator back down.
No, I mean the gibbable corpse will actually stop the elevator halfway down, making it go up before you have a chance to get off. Basically, I think the corpse can interfere with the button on top, meaning it can interfere with buttons on any elevator.
Wazat
Posts: 771
Joined: Fri Oct 15, 2004 9:50 pm
Location: Middle 'o the desert, USA

Post by Wazat »

LightningHunter:
I can't get GLQuake to run. The one that came with steam insists it cannot *find* steam... O_o Winquake crashes hard, too. Got a download location?

fteqw ignores my -game command. :(

Corpses on platforms: I've not seen this on DP, so I'll have to find a GLQuake variant I can run for testing purposes. My suspicion is that the platform is somehow thinking the corpse is in its way (like a door closing on the player). It's dealing minor damage to it, then reversing its movement.

A cheap solution is to have platforms instagib corpses, but that's not very good. I'll need to find time and an engine that runs for me to look into it more.

To fix the bodies falling through the floor when you're standing in them... hrm. Again, I cannot reproduce because I'm using DP for now. You could possibly prevent the body you're in from turning solid again until you're out of it...?
When my computer inevitably explodes and kills me, my cat inherits everything I own. He may be the only one capable of continuing my work.
Lightning Hunter
Posts: 169
Joined: Wed Nov 28, 2007 6:15 am

Post by Lightning Hunter »

Well, you can download GLquake here, although I'm not sure it will help if you can't run it already:
http://www.oocities.org/timessquare/for ... lq1114.zip

Alternatively, you can try downloading the latest version of Qrack here if that doesn't work:
http://quakeone.com/qrack/dist/qrack2011_3299.zip

Personally, I don't think the elevator bug I mentioned is nearly as bad as some of the others I've mentioned, so I wouldn't worry as much about that one. The most distracting bug by far is the body hopping, since it seems to happen almost every time for me. I guess 2nd place would be the bodies falling through the floor when the player stands inside them, although that one isn't absolutely horrible.
leileilol
Posts: 2783
Joined: Fri Oct 15, 2004 3:23 am

Post by leileilol »

i'd like to refer to this post.

Wazat may be using a computer with a very bad GL icd

I should also mention that Darkplaces recently has Direct3D support
i should not be here
Lardarse
Posts: 266
Joined: Sat Nov 05, 2005 1:58 pm
Location: Bristol, UK

Post by Lardarse »

Lightning Hunter wrote:Indeed, this is at least a temporary solution to this problem. Should I expect nasty side effects if I increase the body limit to 200 and play on a large map? It would be nice if all the bodies stayed.
Assuming the map doesn't give you a no free edicts error when you load it, there's no guarantee that it won't while you are playing.

Wazat: Yes, LTNS. I've been lurking a lot. I still think it's not worth using the bodyque, but yes, it probably does need a re-write of parts.
Roaming status: Testing and documentation
Wazat
Posts: 771
Joined: Fri Oct 15, 2004 9:50 pm
Location: Middle 'o the desert, USA

Post by Wazat »

LightningHunter: I tried both GLQuake and Qrack. Any idea where to get the missing glide2x.dll?

Update: Installed the engines leileilol suggested. DirectQ needed glide2x.dll, but Qbism worked. Though for some reason I can't turn off transparency in every model (monsters, my weaponmodel, etc are all transparent and barely visible). Eng205 also runs, but it seems to ignore my autoexec that turns on mouselook automatically. It starts out in left/right mouse look but not up/down.

I am indeed able to reproduce monsters falling through the floor when the player is inside of them in their last death frame. This happened in both Eng205 and Qbism. I have yet to see bodyhopping in either of the engines I tried.

If you weren't running in GLQuake, I'd say the bodyhopping was the result of interpolation. If the engine interpolates between frame 0 and the new frame for the corpse, then it would produce that effect. If I do as LH says and stop using the bodyque, that might be resolved...? But I don't think GLQ has interpolation anyway.
Last edited by Wazat on Sun Apr 17, 2011 1:43 am, edited 1 time in total.
When my computer inevitably explodes and kills me, my cat inherits everything I own. He may be the only one capable of continuing my work.
leileilol
Posts: 2783
Joined: Fri Oct 15, 2004 3:23 am

Post by leileilol »

From a 3dfx Voodoo driver. Otherwise, delete opengl32.dll (in your quake folder) if you don't have a 3dfx card. (If you have a 3dfx Voodoo Banshee, 3, 4, or 5 you should nuke it anyway)

then all those GL ports will magically start working again!
i should not be here
Wazat
Posts: 771
Joined: Fri Oct 15, 2004 9:50 pm
Location: Middle 'o the desert, USA

Post by Wazat »

Leileilol: Thanks, killing opengl.dll did it.

So... fascinating. DirectQ had no problems, reproduced the falling through floor bug but not bodyhopping. However, glQrack DID have bodyhopping. Every time. Plain GLQuake crashes on me still, but I suspect it would have the same problem. This may be a bug in GLQuake that some engines fixed.

I'm still suspecting interpolation or something similar. If so, then skipping the bodyque and using a becomeCorpse function would resolve the issue, most likely. Possibly fix the fall through floor bug too.

Curious... LightningHunter, when you play with bots without this corpse mod, do you ever see bodyhopping when they respawn and leave a corpse behind?
When my computer inevitably explodes and kills me, my cat inherits everything I own. He may be the only one capable of continuing my work.
Lightning Hunter
Posts: 169
Joined: Wed Nov 28, 2007 6:15 am

Post by Lightning Hunter »

Curious... LightningHunter, when you play with bots without this corpse mod, do you ever see bodyhopping when they respawn and leave a corpse behind?
Now that you mention it, I do! I guess I've just never noticed before, because I'm always killing the bots and running away in a hurry. In SP, it's obviously more noticeable, since I take my time and enjoy the scenery. Interesting.

Oh, and I can guarantee the same bugs appear in GLQuake. I've definitely tested that. If you modify the code, I'll test it in both GLQuake and Qrack for you to make sure they are both fixed!
Wazat
Posts: 771
Joined: Fri Oct 15, 2004 9:50 pm
Location: Middle 'o the desert, USA

Post by Wazat »

So..... I have good news, and I have bad news. And then some freakish good news.

I've implemented the changes so that it's just calling a BecomeCorpse function now. I've tested in directq and other engines, and bodyhopping and corpses falling through the floor both seem to be fixed. Huzzah!

However, Darkplaces was no longer happy. Corpses could be destroyed with explosions, but nails/shotguns/etc no longer hit them... ever. I had to disable semisolid on corpses to make them hittable, which kinda misses the point of the tutorial. Monster corpses suddenly had the problem that player corpses had (only explosions hit them).

In other engines this didn't happen... to monsters. However, player corpses were no longer killable AT ALL, yet in DP they were still killable with explosions. I didn't get it.

Then, out of whimsy and a bit of desperation, I did this:
ent.solid = SOLID_SLIDEBOX;
becomes
ent.oldSolid = ent.solid = SOLID_SLIDEBOX;

Resetting .oldsolid did it. Suddenly everything worked again, and more. Both player and monster corpses could be killed with shotguns, nailguns, etc again. In DP (but not DirectQ) I could kill corpses with the axe, which hasn't worked in some time.

And the bodyhopping and fall-through-floor bugs stayed dead.

I'll post the changes for your testing pleasure later tonight or tomorrow (going to go play Starcraft2 with friends first).

Edit: FYI, this fix has serious implications. .oldSolid should never have had this problem, and it confuses me that this happens at all... it will take some investigation.
When my computer inevitably explodes and kills me, my cat inherits everything I own. He may be the only one capable of continuing my work.
Lightning Hunter
Posts: 169
Joined: Wed Nov 28, 2007 6:15 am

Post by Lightning Hunter »

That sounds like great news! Does the axe now work in GLQuake/Qrack as well? How about the corpse limit? Has that been fixed as a side effect?

Can't wait to test this out again. :D
Wazat
Posts: 771
Joined: Fri Oct 15, 2004 9:50 pm
Location: Middle 'o the desert, USA

Post by Wazat »

Corpse limit doesn't exist, since they no longer use the bodyque. If there are 200 monsters in the level, there could be up to 200 corpses when you kill them all, provided you don't pop any along the way.

Axe only worked in DP during testing, and sadly I think it was a fluke (see below). Tried it in dquake tpp, to no effect (same as always). Lightning start gibs them, but aiming lightning at them while holding the button doesn't. The reason for this is player frames (player_axe1 etc) are run between the prethink and post think, while corpses are non-solid.

Qrack for some reason had a weird FOV issue (had to change resolution to fix it)... very disorienting, so I hadn't been using it. Same deal as dquake. I cannot test glquake because it enjoys crashing more than it enjoys life itself.

Bad news about axe & lightning:
Now that I changed something though, axe no longer works in DP. I had an if statement from some previous experimentation that was preventing the SemisolidPreThink function from running. So bodies were not becoming non-solid in DP during prethink.

The reason it was DP only is because for some reason different engines were doing different player colors, and DP wasn't going with red or blue while the others were (like they were grabbing different config files). My team semisolid test code hadn't been disabled, and so it was returning out of the function because in DP I wasn't red or blue team. Now that I'm paying attention, I can see the player actually step onto the corpse and walk across it in DP, instead of walking through it.

So it was a fluke -- axe and lightning are still broken, even in DP.

BUT the corpse limit, body hopping and falling through floor issues are still fixed.

Now I need to assemble a new tutorial out of this madness. That will have to wait though. I apologize, it's 1:00 am and I'm going to be hurting tomorrow if I don't get some sleep. :)
When my computer inevitably explodes and kills me, my cat inherits everything I own. He may be the only one capable of continuing my work.
Lightning Hunter
Posts: 169
Joined: Wed Nov 28, 2007 6:15 am

Post by Lightning Hunter »

Wazat wrote: BUT the corpse limit, body hopping and falling through floor issues are still fixed.
Ah, well at least the most critical bugs are fixed now! It's a shame we can't gib corpses without wasting ammo in SP (I.E., the axe). I guess a few wasted shotgun shots here and there for corpses of monsters that really tick me off will have to do. :P
Seven
Posts: 301
Joined: Sat Oct 06, 2007 8:49 pm
Location: Germany

Post by Seven »

Lightning Hunter wrote:It's a shame we can't gib corpses without wasting ammo in SP (I.E., the axe). I guess a few wasted shotgun shots here and there for corpses of monsters that really tick me off will have to do. :P
Thats exactly why I kept the 30 for all monsters health :)
It would take too much ammo if I would have to "kill" a shamblers corpse with 150 health "again" just for fun.
So why not give his corpse the same health as the dogs corpse ? :wink:
Post Reply