Rune Central

The Official Rune Quake Message Board
It is currently Thu Mar 28, 2024 8:10 pm

All times are UTC - 5 hours [ DST ]




Post new topic Reply to topic  [ 11 posts ] 
Author Message
 Post subject: Lag Command?
PostPosted: Sun Jan 13, 2008 8:14 pm 
Offline

Joined: Sun Mar 09, 2003 10:47 pm
Posts: 1612
Location: Ohio
Slot,

Bam has become a big fan of the lag command engine modification you made. Bam lags in CAx when someone gets gibbed and nail guns also lag him as well.

If you are interested, I'd really like to add this modification to the new ProQuake I've been working on. I have a pretty good idea on how it works, but I don't want to reinvent wheel and have to go through all the testing/debugging necessary.

If interested, you wouldn't need to explain it to me, I'd just need the handful of changed source files and could extrapolate it from that.

/Hehe, I wish Bam could get true broadband and then this would solve itself :D :D He DOES have satellite broadband, but although satellite internet has fast downloads, the ping times are horrendous. I've tried satellite firsthand and the ping is literally 1200, so Bam still must use dialup for Quake.


Top
 Profile  
Reply with quote  
 Post subject: Re: Lag Command?
PostPosted: Sun Jan 13, 2008 11:14 pm 
Offline
Site Admin
User avatar

Joined: Fri Mar 07, 2003 7:41 pm
Posts: 1255
Location: New Jersey, USA
In SV_WriteEntitiesToClient() of sv_main.c
Code:
         // JPG 3.30 - don't send updates if the client doesn't have the map
         if (nomap)
            continue;

         // Find code above and then add this (2 lines)
         if ((int)clent->v.flags & FL_LOW_BANDWIDTH_CLIENT && (int)ent->v.effects & EF_MAYBE_DRAW)
            continue;


In server.h add
Code:
// You might want to change these to values that don't conflict with other popular engines (QSG).
#define   FL_LOW_BANDWIDTH_CLIENT         8192
#define   EF_MAYBE_DRAW         32768


For those items you want to filter out in the QC code, add the EF_MAYBE_DRAW (.effects) flag to the entity. Then use the FL_LOW_BANDWIDTH_CLIENT (.flags) flag as a toggle for the client.

_________________
Slot Zero
Image


Top
 Profile  
Reply with quote  
 Post subject: Re: Lag Command?
PostPosted: Mon Jan 14, 2008 2:33 am 
Offline

Joined: Sun Mar 09, 2003 10:47 pm
Posts: 1612
Location: Ohio
Thanks.

/Bam will have to get busy on the QuakeC aspect of this modification. :D :D :D


Top
 Profile  
Reply with quote  
 Post subject: Re: Lag Command?
PostPosted: Mon Jan 14, 2008 4:52 pm 
Offline
User avatar

Joined: Mon Oct 13, 2003 11:01 pm
Posts: 99
Location: Iowa
Does it have to be done this way (using it with a mod)?

It'd be nice if the command could be a completely client side feature that can be used on any server without quakec modification. Can it be done this way?

_________________
BAM!!


Top
 Profile  
Reply with quote  
 Post subject: Re: Lag Command?
PostPosted: Tue Jan 15, 2008 1:18 am 
Offline
Site Admin
User avatar

Joined: Fri Mar 07, 2003 7:41 pm
Posts: 1255
Location: New Jersey, USA
You could prevent drawing gibs from the client, but the server would still send updates every tick. As for the other entities, the client wouldn't know what entities should be displayed and what shouldn't (for example, hook links).

_________________
Slot Zero
Image


Top
 Profile  
Reply with quote  
 Post subject: Re: Lag Command?
PostPosted: Tue Jan 15, 2008 7:06 pm 
Offline
User avatar

Joined: Mon Oct 13, 2003 11:01 pm
Posts: 99
Location: Iowa
Ok, so there's no way to block out the incoming updates for the selected entities? That needs to be done serverside?

How about this: The server client recognizes <edict 3> has the lag cvar enabled, and, according to a predetermined list of entities to ignore, it should know which entities not to update for <edict 3>, right?

This of course would require the same client on both sides, or at the very least on the player's side his client would need a lag cvar.

_________________
BAM!!


Top
 Profile  
Reply with quote  
 Post subject: Re: Lag Command?
PostPosted: Sat Jan 19, 2008 12:28 pm 
Offline

Joined: Sun Mar 09, 2003 10:47 pm
Posts: 1612
Location: Ohio
Bam wrote:
Ok, so there's no way to block out the incoming updates for the selected entities? That needs to be done serverside?


Isn't what causes the lag for dialup when the SNG is used a whole bunch of extra nails being sent to the client? Nothing the client does by itself could prevent that, if true.

Bam, I've added this to 3.99b and there aren't very many mods that are very relevant (RuneQuake, CAx, CRMOD, CTF).

This is already in RQ. If you add this or work with Rook to get it added into CAx, then 2/3 of your problems are solved, leaving only CRMOD and CTF. But I've never seen you play CTF and 26002 is about the equivalent of CRMOD anyway.

Add: Bam, Rook's modified anti-wallhack code may make a MAJOR difference for low bandwidth connections. It checks every single entity (except doors/lifts) for whether or not it is visible and if not, doesn't send it. Maybe this could help you as well. Like player-only anti-wallhack, this is all server side. This is running at Rage/Dredd and the HDZ CTF servers right now.


Top
 Profile  
Reply with quote  
 Post subject: Re: Lag Command?
PostPosted: Sun Jan 20, 2008 5:48 pm 
Offline
User avatar

Joined: Mon Oct 13, 2003 11:01 pm
Posts: 99
Location: Iowa
Baker wrote:
Isn't what causes the lag for dialup when the SNG is used a whole bunch of extra nails being sent to the client? Nothing the client does by itself could prevent that, if true.


If the server knew the client has the lag command enabled, (and this is the part I was inquiring about:) can the server use a predefined list of entities to ignore, say, all spike models, all gibs, or all bubbles. I know that doing it this way would leave no exceptions for a specific model to show up.

Baker wrote:
Add: Bam, Rook's modified anti-wallhack code may make a MAJOR difference for low bandwidth connections. It checks every single entity (except doors/lifts) for whether or not it is visible and if not, doesn't send it. Maybe this could help you as well. Like player-only anti-wallhack, this is all server side. This is running at Rage/Dredd and the HDZ CTF servers right now.


The reason I never play CTF is party because I ping 300 on the server but mainly because once the player is in view, I lag terribly. This has always been the case, I can play fine until a fight erupts in my line of sight.


Slot, can you shed some light on this?
Thanks, Bam

_________________
BAM!!


Top
 Profile  
Reply with quote  
 Post subject: Re: Lag Command?
PostPosted: Sun Jan 20, 2008 6:33 pm 
Offline

Joined: Sun Mar 09, 2003 10:47 pm
Posts: 1612
Location: Ohio
Bam wrote:
If the server knew the client has the lag command enabled, (and this is the part I was inquiring about:) can the server use a predefined list of entities to ignore, say, all spike models, all gibs, or all bubbles. I know that doing it this way would leave no exceptions for a specific model to show up.


I don't see why not. In fact, until Slot revealed his method, I thought this was what he was doing.

But Slot's way is better and appropriate and isn't a "hack".

But Bam, this leads to a new problem if your idea is done. The client would have to be modified to send the command to the server. Slot's way is ALL server-side and doesn't require modified clients.


Top
 Profile  
Reply with quote  
 Post subject: Re: Lag Command?
PostPosted: Mon Jan 21, 2008 8:34 pm 
Offline
User avatar

Joined: Mon Oct 13, 2003 11:01 pm
Posts: 99
Location: Iowa
Isn't a client-side modification required to use your new proquake features? The client used for the lag command server-side would be the same as client-side.

I'm thinking I'll get visual basic working to make this lag command.

_________________
BAM!!


Top
 Profile  
Reply with quote  
 Post subject: Re: Lag Command?
PostPosted: Mon Jan 21, 2008 9:57 pm 
Offline

Joined: Sun Mar 09, 2003 10:47 pm
Posts: 1612
Location: Ohio
Bam, Bomber is running ProQuake 3.99c with Slot's anti-lag modification.

All you would need to do, as far as I know [since I'm not Mr. QuakeC], is mark the gibs and nails the way Slot does in RuneQuake and add the lag command functionality, [i.e. send the alias and if used, flag the player as low bandwidth] and recompile CAx and reboot Bomber.

If it is stable and works well, we ask Dreadful to update Speaknow with your new CAx and get Rook to add Slot Zero's anti-lag modification into his pqcaxsvr and update Rage.

/This shouldn't be done in a non-standard way if it can be avoided. People would have to update clients, Slot's method is mature and tested, doing a whole ton of work for a non-standard way for the very limited number of dialup users left. Remember, it takes a request to FatPipes [1 or 2 day turnaround sometimes] to even update an .exe with Bomber (for example), but updating the progs.dat can be done superfast.


Top
 Profile  
Reply with quote  
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 11 posts ] 

All times are UTC - 5 hours [ DST ]


Who is online

Users browsing this forum: No registered users and 35 guests


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 post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB® Forum Software © phpBB Group