Inside3D!
     

Duration for gibs and bodies in Quake [using DP]

 
Post new topic   Reply to topic    Inside3d Forums Forum Index -> General Discussion
View previous topic :: View next topic  
Author Message
Seven



Joined: 06 Oct 2007
Posts: 19
Location: Germany

PostPosted: Thu Jul 22, 2010 6:28 pm    Post subject: Duration for gibs and bodies in Quake [using DP] Reply with quote

Dear all,

I have a question, which seems to be hard to answer.
Maybe this is the place, where somoene has a hint for me Smile


There is a really good page, which shows all DarkPlaces console variables:
Console Variables - DarkPlaces Wiki

Unfortunately I cannot find one which handles the:
duration time, before gibs and killed monsters fade away.

Is there a possibility to change this time (which is about 20 seconds
by default) with a command line / variable ?
(something similar like "cl_decals_fadetime" for decals)
Or do we have to go deeper into qc files to edit it ?
(which I dont want, cause I dont want to use a new progs.dat)

Thank you very much for your suggestions and hints.

Best wishes,
Seven

PS: I also asked Lord Havoc a couple of days ago, but he seems to be too busy with Nexuiz project.
Back to top
View user's profile Send private message
Spike



Joined: 05 Nov 2004
Posts: 944
Location: UK

PostPosted: Thu Jul 22, 2010 7:22 pm    Post subject: Reply with quote

gibs+dead monsters are controlled by qc, not the engine.
_________________
What's a signature?
Back to top
View user's profile Send private message Visit poster's website
Sajt



Joined: 16 Oct 2004
Posts: 1026

PostPosted: Thu Jul 22, 2010 7:24 pm    Post subject: Reply with quote

If it was possible without modifying the QuakeC, it would be an evil hack. By default, corpses never disappear, nor do head gibs (which are, for all effects and purposes, corpses). Only normal gibs. Some large maps with hundreds of monsters come with modified progs.dat including corpse removal. If you want this in your own map or coop server or whatever you're trying to do, you'll have to modify the QuakeC... or sin against humanity and hack the engine.
_________________
F. A. Špork, an enlightened nobleman and a great patron of art, had a stately Baroque spa complex built on the banks of the River Labe.
Back to top
View user's profile Send private message
frag.machine



Joined: 25 Nov 2006
Posts: 728

PostPosted: Thu Jul 22, 2010 8:23 pm    Post subject: Reply with quote

QuakeC is the way to go, isn't worth the hassle to treat this engine side.
_________________
frag.machine - Q2K4 Project
http://fragmachine.quakedev.com/
Back to top
View user's profile Send private message Visit poster's website
mh



Joined: 12 Jan 2008
Posts: 909

PostPosted: Thu Jul 22, 2010 9:44 pm    Post subject: Reply with quote

(ahem) - from DirectQ:

Code:
void PF_Remove (void)
{
   edict_t   *ed;
   
   ed = G_EDICT(OFS_PARM0);

   if (sv_permagibs.value)
   {
      // permanent gibs
      model_t *mod = sv.models[(int) ed->v.modelindex];

      if (mod)
         if (mod->type == mod_alias)
            if (!strnicmp (mod->name, "progs/gib", 9))
               return;
   }

   ED_Free (ed);
}


Very Happy

Note that it's a server cvar so if you're in a MP game (1) it must be available on the server, and (2) the server admin (or someone else with the necessary authority) must have enabled it. It's good fun for SP though.

A better alternative would be to convert the edict to a static entity and remove it from the server. Would need more code, but not much more.
_________________
DirectQ Engine - New release 1.8.666a, 9th August 2010
MHQuake Blog (General)
Direct3D 8 Quake Engines
Back to top
View user's profile Send private message Visit poster's website
Sajt



Joined: 16 Oct 2004
Posts: 1026

PostPosted: Fri Jul 23, 2010 4:33 am    Post subject: Reply with quote

Oh, duh, that's what he was after. I thought he wanted everything to disappear, but it makes more sense that he'd want gibs to stay. It is an evil hack, but not too bad I guess.
_________________
F. A. Špork, an enlightened nobleman and a great patron of art, had a stately Baroque spa complex built on the banks of the River Labe.
Back to top
View user's profile Send private message
Seven



Joined: 06 Oct 2007
Posts: 19
Location: Germany

PostPosted: Fri Jul 23, 2010 7:31 am    Post subject: Reply with quote

Thank you very much for all your answers.
I knew, this is the best place to ask Wink

First of all, I am sorry if I described my question not clear enough.
English is not my mother tounge.

This is what I wanted:
I ONLY play single player Quake with DarkPlaces engine.
So there is no server problem. I only play SP maps / episodes.

Secondly, Sajt said, that corpses never disappear by default (nor head gibs).
Well this must be different in DarkPlaces:
When I kill or when I gib a monster. All body parts fade away after 20 seconds.
And this is excatly what I wanted to change.
I want them to stay a little longer. Lets say 1 Minute.
It can be done with trhe blood decals (which also fade away in DP after 20 secdonds) with "cl_decals_fadetime"

So, is it true, that DarkPlaces handles the corpses "fade away" behaviour different than other engines ?
Because DarkPlaces does not touch the original Quake qc files.
If so, then there must must be a way to change the fade time with a console variable.

What do you think ? Am I completely wrong ?

Thank you again for all your replies.

Best wishes,
Seven
Back to top
View user's profile Send private message
mk



Joined: 04 Jul 2008
Posts: 94

PostPosted: Fri Jul 23, 2010 8:27 am    Post subject: Reply with quote

As mh said, the most network-friendly solution would be to make all gibs static when they stop moving, but makestatic only works during map startup. However, this would probably prevent stopped gibs on the top of moving platforms from following them, since static entities are never updated by the server.

Using CSQC could probably be the best answer then.
_________________
Makaqu engine blog / website.

Ph'nglui mglw'nafh Cthulhu R'lyeh wgah'nagl fhtagn.
Back to top
View user's profile Send private message
mh



Joined: 12 Jan 2008
Posts: 909

PostPosted: Fri Jul 23, 2010 9:03 am    Post subject: Reply with quote

Even if you're only playing SP, a Quake server is still running. It just happens to be running on the same machine as the Quake client, and switched into SP mode, but it's running all the same, so server matters are relevant.

The default Quake behaviour is to fade away all gibs after a short time, 20 seconds sounds about right. This happens in DOS Quake, it happens in WinQuake, it happens in Linux Quake, it happens in GLQuake. There's no different behaviour in different Quake engines.

Heads and full bodies stay, that has also always been the way things happen.

Now, the hack I did above is quite evil - if nothing else there will be hundreds more models (and entities) on the server taking up memory and processing time. This explains why they need to fade out.

So you want to change how long they stay. There are two ways - the right way and the wrong way. The right way is to modify the QuakeC and change their nextthink, the wrong way is to do something like my evil hack above.

If DarkPlaces has implemented something different as a cvar you would need to wait until LordHavoc shows up (if he ever does; he's busy at the moment and might not even see this thread) for a definitive answer.
_________________
DirectQ Engine - New release 1.8.666a, 9th August 2010
MHQuake Blog (General)
Direct3D 8 Quake Engines
Back to top
View user's profile Send private message Visit poster's website
Seven



Joined: 06 Oct 2007
Posts: 19
Location: Germany

PostPosted: Fri Jul 23, 2010 9:28 am    Post subject: Reply with quote

Thank you mh for your clear statement. Now its clear to me.

EDITED
Failure was on my side.
EDITED

Thank you again. I will not bother you more.

Best wishes,
Seven


Last edited by Seven on Sat Jul 24, 2010 12:30 pm; edited 1 time in total
Back to top
View user's profile Send private message
Sajt



Joined: 16 Oct 2004
Posts: 1026

PostPosted: Fri Jul 23, 2010 5:45 pm    Post subject: Reply with quote

Are you sure you're playing id1 (no mod), and not DPMod?
_________________
F. A. Špork, an enlightened nobleman and a great patron of art, had a stately Baroque spa complex built on the banks of the River Labe.
Back to top
View user's profile Send private message
mh



Joined: 12 Jan 2008
Posts: 909

PostPosted: Sat Jul 24, 2010 12:55 am    Post subject: Reply with quote

Sajt wrote:
Are you sure you're playing id1 (no mod), and not DPMod?

Question Good question, never thought of that. Question
_________________
DirectQ Engine - New release 1.8.666a, 9th August 2010
MHQuake Blog (General)
Direct3D 8 Quake Engines
Back to top
View user's profile Send private message Visit poster's website
Sajt



Joined: 16 Oct 2004
Posts: 1026

PostPosted: Sat Jul 24, 2010 1:54 am    Post subject: Reply with quote

mk wrote:
Using CSQC could probably be the best answer then.


You shouldn't worry too much about network bandwidth if you're using DarkPlaces, because of the optimized protocol. If the gibs aren't moving, they'll only be networked when they come into your PVS. Of course, if you have a TON of gibs in one area this could still create some stutters in entity updating (hopefully the gibs are prioritized at the bottom of everything though), but it should be sufficient. Anyway, Seven said he only plays singleplayer...
_________________
F. A. Špork, an enlightened nobleman and a great patron of art, had a stately Baroque spa complex built on the banks of the River Labe.
Back to top
View user's profile Send private message
Seven



Joined: 06 Oct 2007
Posts: 19
Location: Germany

PostPosted: Sat Jul 24, 2010 12:09 pm    Post subject: Reply with quote

Thank you very much for your question Sajt !

I must tell you, that basically I dont use dpmod. I only start Darkplaces.exe without extentions.

BUT:
You are absolutely right.
I added 3 years ago one additional dpmod qc file because I wanted the nice torchlight sprite from dpmod in "normal" Darkplaces Quake.
So I created a new progs.dat, wich I added into my pak0.pak !

Today, because of your question, I restored the original "progs.dat" and viola: The corpses stay.
Just like you and mh describe it.

So the mistake was on my side.

Thank you for this important question, which helped me to find the solution for my problem.

Best regards,
Seven
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Inside3d Forums Forum Index -> General Discussion All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2004 phpBB Group